curl --request PUT \
--url https://app.miget.com/api/v1/apps/{uuid}/deployment \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://app.miget.com/api/v1/apps/{uuid}/deployment"
payload = {}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://app.miget.com/api/v1/apps/{uuid}/deployment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.miget.com/api/v1/apps/{uuid}/deployment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.miget.com/api/v1/apps/{uuid}/deployment"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://app.miget.com/api/v1/apps/{uuid}/deployment")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.miget.com/api/v1/apps/{uuid}/deployment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"uuid": "<string>",
"name": "<string>",
"label": "<string>",
"state": "<string>",
"project_id": "<string>",
"deployment_method": "<string>",
"deployment_config": {},
"builder": "<string>",
"manage_dns_records": true,
"maintenance": true,
"private_access": true,
"service_name": "<string>",
"internal_url": "<string>",
"public_url": "<string>",
"allow_connections": true,
"basic_auth_enabled": true,
"quota": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"miget": {
"uuid": "<string>",
"name": "<string>",
"state": "<string>",
"labels": [
"<string>"
],
"total_disk_size": 123,
"total_ram_size": 123,
"total_cpu_size": 123,
"total_used_disk_size": 123,
"total_used_ram_size": 123,
"total_used_cpu_size": 123,
"available_cpu_size": 123,
"available_disk_size": 123,
"available_ram_size": 123,
"assigned": true,
"project_ids": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"plan": {
"name": "<string>",
"code_name": "<string>",
"description": "<string>",
"plan_type": "<string>",
"ram_size": 123,
"disk_size": 123,
"cpu_size": 123,
"unit_price": 123
},
"components": [
{
"name": "<string>",
"code_name": "<string>",
"unit_price": 123
}
]
},
"region": {
"id": 123,
"name": "<string>",
"code": "<string>"
},
"addons": [
{
"uuid": "<string>",
"name": "<string>",
"type": "<string>",
"label": "<string>",
"state": "<string>",
"quota": {},
"settings": {},
"var": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"connection_details": {
"internal": {
"hostname": "my-addon-xxx.internal",
"database": "db_name",
"port": 5432,
"username": "db_user",
"password": "db_password",
"connection_url": "postgres://db_user:db_password@my-addon-xxx.internal:5432/db_name"
},
"external": {
"external_connection_url": "postgres://db_user:db_password@my-addon-xxx.external:5432/db_name",
"psql_command": "PGPASSWORD=db_password psql -h my-addon-xxx.external -U db_user db_name"
}
}
}
],
"cronjobs": [
{
"uuid": "<string>",
"name": "<string>",
"type": "<string>",
"label": "<string>",
"state": "<string>",
"quota": {},
"settings": {},
"var": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"connection_details": {
"internal": {
"hostname": "my-addon-xxx.internal",
"database": "db_name",
"port": 5432,
"username": "db_user",
"password": "db_password",
"connection_url": "postgres://db_user:db_password@my-addon-xxx.internal:5432/db_name"
},
"external": {
"external_connection_url": "postgres://db_user:db_password@my-addon-xxx.external:5432/db_name",
"psql_command": "PGPASSWORD=db_password psql -h my-addon-xxx.external -U db_user db_name"
}
}
}
]
}Update application deployment configuration
Updates the deployment method and configuration of an existing application. Use this to switch between Git-based deployments, container registry deployments, parent image inheritance, or update Kamal SSH keys. deployment_config_attributes is applied as a patch: fields you omit keep their stored value, and a field sent as an empty string is cleared. Sending a different deployment_method builds the configuration from scratch, so every field that method needs must be supplied.
curl --request PUT \
--url https://app.miget.com/api/v1/apps/{uuid}/deployment \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://app.miget.com/api/v1/apps/{uuid}/deployment"
payload = {}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://app.miget.com/api/v1/apps/{uuid}/deployment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.miget.com/api/v1/apps/{uuid}/deployment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.miget.com/api/v1/apps/{uuid}/deployment"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://app.miget.com/api/v1/apps/{uuid}/deployment")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.miget.com/api/v1/apps/{uuid}/deployment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"uuid": "<string>",
"name": "<string>",
"label": "<string>",
"state": "<string>",
"project_id": "<string>",
"deployment_method": "<string>",
"deployment_config": {},
"builder": "<string>",
"manage_dns_records": true,
"maintenance": true,
"private_access": true,
"service_name": "<string>",
"internal_url": "<string>",
"public_url": "<string>",
"allow_connections": true,
"basic_auth_enabled": true,
"quota": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"miget": {
"uuid": "<string>",
"name": "<string>",
"state": "<string>",
"labels": [
"<string>"
],
"total_disk_size": 123,
"total_ram_size": 123,
"total_cpu_size": 123,
"total_used_disk_size": 123,
"total_used_ram_size": 123,
"total_used_cpu_size": 123,
"available_cpu_size": 123,
"available_disk_size": 123,
"available_ram_size": 123,
"assigned": true,
"project_ids": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"plan": {
"name": "<string>",
"code_name": "<string>",
"description": "<string>",
"plan_type": "<string>",
"ram_size": 123,
"disk_size": 123,
"cpu_size": 123,
"unit_price": 123
},
"components": [
{
"name": "<string>",
"code_name": "<string>",
"unit_price": 123
}
]
},
"region": {
"id": 123,
"name": "<string>",
"code": "<string>"
},
"addons": [
{
"uuid": "<string>",
"name": "<string>",
"type": "<string>",
"label": "<string>",
"state": "<string>",
"quota": {},
"settings": {},
"var": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"connection_details": {
"internal": {
"hostname": "my-addon-xxx.internal",
"database": "db_name",
"port": 5432,
"username": "db_user",
"password": "db_password",
"connection_url": "postgres://db_user:db_password@my-addon-xxx.internal:5432/db_name"
},
"external": {
"external_connection_url": "postgres://db_user:db_password@my-addon-xxx.external:5432/db_name",
"psql_command": "PGPASSWORD=db_password psql -h my-addon-xxx.external -U db_user db_name"
}
}
}
],
"cronjobs": [
{
"uuid": "<string>",
"name": "<string>",
"type": "<string>",
"label": "<string>",
"state": "<string>",
"quota": {},
"settings": {},
"var": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"connection_details": {
"internal": {
"hostname": "my-addon-xxx.internal",
"database": "db_name",
"port": 5432,
"username": "db_user",
"password": "db_password",
"connection_url": "postgres://db_user:db_password@my-addon-xxx.internal:5432/db_name"
},
"external": {
"external_connection_url": "postgres://db_user:db_password@my-addon-xxx.external:5432/db_name",
"psql_command": "PGPASSWORD=db_password psql -h my-addon-xxx.external -U db_user db_name"
}
}
}
]
}Authorizations
Bearer token for authentication. Format: 'Bearer {token}'
Headers
Workspace ID (uses default workspace if not provided)
Path Parameters
Application UUID
Body
Update application deployment configuration
Deployment method: 'git_push', 'public_git', 'github', 'container_registry', 'parent_image', or 'kamal'. 'container_registry' requires a paid plan on the app's resource; on a free plan the request is rejected with 422, including a configuration change on an app already deployed from a registry.
git_push, parent_image, container_registry, github, public_git, kamal, static_site Kamal deployment configuration
Show child attributes
Show child attributes
Response
Update application deployment configuration
Api_V1_Entities_App model
Unique application identifier
Server-assigned name: the name sent at creation plus a random suffix (my-api-x7k2p). Used in the public URL and the git_push repository path. Use this value verbatim, not the name you sent and not service_name
Display name
Current state. While provisioning: pending, assigned, start_scheduled, started, deploying, cloning, stop_scheduled, restart_scheduled, stopped, blocked. A free-plan app with no recent traffic: sleeping, until the next request wakes it. Once started, the live Kubernetes status: running, failed, or problem (pods failing while replicas are up)
Associated project UUID
Deployment method (git_push, public_git, github, container_registry, parent_image, kamal)
Deployment configuration (fields vary by deployment method)
Build strategy (auto, dockerfile, custom)
Auto DNS management enabled
Maintenance mode enabled
Private access only (no public ingress)
Unsuffixed name, used only in internal_url. Not valid in public URLs or git remotes — use name there
Internal service URL (host:port) for app-to-app connections
Platform-assigned public URL, built from the app name and the region of its compute resource. Not reachable when private_access is true. Custom domains are listed separately under /apps/{uuid}/domains
Allow internal connections
Whether HTTP Basic Auth is enforced on the ingress (credentials are never returned)
Resource quota configuration
Creation timestamp
Last update timestamp
Api_V1_Entities_Resource model
Show child attributes
Show child attributes
Api_V1_Entities_Region model
Show child attributes
Show child attributes
Attached add-ons
Show child attributes
Show child attributes
Scheduled cron jobs
Show child attributes
Show child attributes

