curl --request POST \
--url https://app.miget.com/api/v1/apps/{uuid}/clone \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "<string>",
"name": "<string>",
"project_id": "<string>",
"resource_id": "<string>",
"use_parent_image": false,
"parent_image_auto_sync": false,
"clone_variables": false,
"clone_secret_files": false,
"clone_scaling_settings": false,
"clone_health_checks": false,
"clone_security": false,
"addons": [
{
"uuid": "<string>",
"clone_data": false
}
],
"cronjobs": [
"<string>"
]
}
'import requests
url = "https://app.miget.com/api/v1/apps/{uuid}/clone"
payload = {
"label": "<string>",
"name": "<string>",
"project_id": "<string>",
"resource_id": "<string>",
"use_parent_image": False,
"parent_image_auto_sync": False,
"clone_variables": False,
"clone_secret_files": False,
"clone_scaling_settings": False,
"clone_health_checks": False,
"clone_security": False,
"addons": [
{
"uuid": "<string>",
"clone_data": False
}
],
"cronjobs": ["<string>"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
label: '<string>',
name: '<string>',
project_id: '<string>',
resource_id: '<string>',
use_parent_image: false,
parent_image_auto_sync: false,
clone_variables: false,
clone_secret_files: false,
clone_scaling_settings: false,
clone_health_checks: false,
clone_security: false,
addons: [{uuid: '<string>', clone_data: false}],
cronjobs: ['<string>']
})
};
fetch('https://app.miget.com/api/v1/apps/{uuid}/clone', 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}/clone",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'label' => '<string>',
'name' => '<string>',
'project_id' => '<string>',
'resource_id' => '<string>',
'use_parent_image' => false,
'parent_image_auto_sync' => false,
'clone_variables' => false,
'clone_secret_files' => false,
'clone_scaling_settings' => false,
'clone_health_checks' => false,
'clone_security' => false,
'addons' => [
[
'uuid' => '<string>',
'clone_data' => false
]
],
'cronjobs' => [
'<string>'
]
]),
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}/clone"
payload := strings.NewReader("{\n \"label\": \"<string>\",\n \"name\": \"<string>\",\n \"project_id\": \"<string>\",\n \"resource_id\": \"<string>\",\n \"use_parent_image\": false,\n \"parent_image_auto_sync\": false,\n \"clone_variables\": false,\n \"clone_secret_files\": false,\n \"clone_scaling_settings\": false,\n \"clone_health_checks\": false,\n \"clone_security\": false,\n \"addons\": [\n {\n \"uuid\": \"<string>\",\n \"clone_data\": false\n }\n ],\n \"cronjobs\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://app.miget.com/api/v1/apps/{uuid}/clone")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"<string>\",\n \"name\": \"<string>\",\n \"project_id\": \"<string>\",\n \"resource_id\": \"<string>\",\n \"use_parent_image\": false,\n \"parent_image_auto_sync\": false,\n \"clone_variables\": false,\n \"clone_secret_files\": false,\n \"clone_scaling_settings\": false,\n \"clone_health_checks\": false,\n \"clone_security\": false,\n \"addons\": [\n {\n \"uuid\": \"<string>\",\n \"clone_data\": false\n }\n ],\n \"cronjobs\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.miget.com/api/v1/apps/{uuid}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"<string>\",\n \"name\": \"<string>\",\n \"project_id\": \"<string>\",\n \"resource_id\": \"<string>\",\n \"use_parent_image\": false,\n \"parent_image_auto_sync\": false,\n \"clone_variables\": false,\n \"clone_secret_files\": false,\n \"clone_scaling_settings\": false,\n \"clone_health_checks\": false,\n \"clone_security\": false,\n \"addons\": [\n {\n \"uuid\": \"<string>\",\n \"clone_data\": false\n }\n ],\n \"cronjobs\": [\n \"<string>\"\n ]\n}"
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"
}
}
}
]
}Clone an application
Creates a copy of an existing application with optional cloning of environment variables, secret files, scaling settings, health checks, add-ons, and cron jobs. When the target resource is assigned to projects, the target project must be one of them.
curl --request POST \
--url https://app.miget.com/api/v1/apps/{uuid}/clone \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "<string>",
"name": "<string>",
"project_id": "<string>",
"resource_id": "<string>",
"use_parent_image": false,
"parent_image_auto_sync": false,
"clone_variables": false,
"clone_secret_files": false,
"clone_scaling_settings": false,
"clone_health_checks": false,
"clone_security": false,
"addons": [
{
"uuid": "<string>",
"clone_data": false
}
],
"cronjobs": [
"<string>"
]
}
'import requests
url = "https://app.miget.com/api/v1/apps/{uuid}/clone"
payload = {
"label": "<string>",
"name": "<string>",
"project_id": "<string>",
"resource_id": "<string>",
"use_parent_image": False,
"parent_image_auto_sync": False,
"clone_variables": False,
"clone_secret_files": False,
"clone_scaling_settings": False,
"clone_health_checks": False,
"clone_security": False,
"addons": [
{
"uuid": "<string>",
"clone_data": False
}
],
"cronjobs": ["<string>"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
label: '<string>',
name: '<string>',
project_id: '<string>',
resource_id: '<string>',
use_parent_image: false,
parent_image_auto_sync: false,
clone_variables: false,
clone_secret_files: false,
clone_scaling_settings: false,
clone_health_checks: false,
clone_security: false,
addons: [{uuid: '<string>', clone_data: false}],
cronjobs: ['<string>']
})
};
fetch('https://app.miget.com/api/v1/apps/{uuid}/clone', 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}/clone",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'label' => '<string>',
'name' => '<string>',
'project_id' => '<string>',
'resource_id' => '<string>',
'use_parent_image' => false,
'parent_image_auto_sync' => false,
'clone_variables' => false,
'clone_secret_files' => false,
'clone_scaling_settings' => false,
'clone_health_checks' => false,
'clone_security' => false,
'addons' => [
[
'uuid' => '<string>',
'clone_data' => false
]
],
'cronjobs' => [
'<string>'
]
]),
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}/clone"
payload := strings.NewReader("{\n \"label\": \"<string>\",\n \"name\": \"<string>\",\n \"project_id\": \"<string>\",\n \"resource_id\": \"<string>\",\n \"use_parent_image\": false,\n \"parent_image_auto_sync\": false,\n \"clone_variables\": false,\n \"clone_secret_files\": false,\n \"clone_scaling_settings\": false,\n \"clone_health_checks\": false,\n \"clone_security\": false,\n \"addons\": [\n {\n \"uuid\": \"<string>\",\n \"clone_data\": false\n }\n ],\n \"cronjobs\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://app.miget.com/api/v1/apps/{uuid}/clone")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"<string>\",\n \"name\": \"<string>\",\n \"project_id\": \"<string>\",\n \"resource_id\": \"<string>\",\n \"use_parent_image\": false,\n \"parent_image_auto_sync\": false,\n \"clone_variables\": false,\n \"clone_secret_files\": false,\n \"clone_scaling_settings\": false,\n \"clone_health_checks\": false,\n \"clone_security\": false,\n \"addons\": [\n {\n \"uuid\": \"<string>\",\n \"clone_data\": false\n }\n ],\n \"cronjobs\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.miget.com/api/v1/apps/{uuid}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"<string>\",\n \"name\": \"<string>\",\n \"project_id\": \"<string>\",\n \"resource_id\": \"<string>\",\n \"use_parent_image\": false,\n \"parent_image_auto_sync\": false,\n \"clone_variables\": false,\n \"clone_secret_files\": false,\n \"clone_scaling_settings\": false,\n \"clone_health_checks\": false,\n \"clone_security\": false,\n \"addons\": [\n {\n \"uuid\": \"<string>\",\n \"clone_data\": false\n }\n ],\n \"cronjobs\": [\n \"<string>\"\n ]\n}"
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
Source application UUID to clone from
Body
Clone an application
Human-readable display name for the cloned application
Unique service name for the cloned application (used in URLs and DNS)
UUID of the project to create the cloned application in
UUID of the compute resource (Miget) to assign to the cloned application
Use the source application as a parent image (inherits container image)
Automatically deploy when parent application's image is updated
Copy environment variables from source application
Copy secret files from source application
Copy auto-scaling configuration from source application
Copy health check configuration from source application
Copy security settings (allowed connections and basic auth) from source application
Add-ons to clone from source application
Show child attributes
Show child attributes
Array of cron job UUIDs to clone from source application
Response
Clone an application
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

