Reads a Coolify or Dokploy installation through its API, with a token
you give, and shows what importing would create: per project there, its
services (source, ports, domains, variable names, volumes), Compose
stacks and databases, each with what doesn't carry over. Nothing is
created and the token isn't kept. Things an earlier import made are
marked (existingId). Owners and admins.
API key access: full.
apiKeyAuthorizationBearer <pyo_…>An API key from the dashboard's API keys page: Authorization: Bearer pyo_…. Keys can expire, and an expired one gets a 401.
application/jsonteamId*stringplatform*Platform"coolify" or "dokploy".
"coolify""dokploy"url*stringThe platform's address, e.g. https://coolify.example.com.
token*stringAn API token of the platform's: Coolify's with read and read:sensitive, or a Dokploy API key. Used for this request only, never stored.
The plan. Variables have no values.
application/jsonWhat importing would create, project by project.
platform*string"coolify" or "dokploy".
host*stringThe platform's host, as given.
projects*array<>warnings*array<string>About the whole import, e.g. a token that can't read variables' values.
curl -X POST 'https://your-pyo.example.com/api/v1/platform-imports/preview' \
-H 'Content-Type: application/json' \
-d '{
"teamId": "string",
"platform": "coolify",
"url": "string",
"token": "string"
}'{
"platform": "string",
"host": "string",
"projects": [
{
"key": "string",
"name": "string",
"services": [
{
"key": "string",
"sourceName": "string",
"builder": "string",
"service": {
"name": "string",
"composeName": "string",
"source": {
"type": "string",
"image": "string",
"reference": "string",
"repoUrl": "string",
"branch": "string",
"buildContext": "string",
"dockerfilePath": "string",
"buildArgs": [
{
"key": "string",
"value": "string",
"secret": true
}
],
"installationId": 0,
"private": true
},
"ports": [
{
"name": "string",
"containerPort": 0,
"protocol": "string",
"public": true,
"publicPort": 0,
"domain": "string"
}
],
"env": [
{
"key": "string",
"value": "string",
"secret": true
}
],
"volumes": [
{
"name": "string",
"mountPath": "string",
"sizeGi": 0,
"fromBind": true
}
],
"healthCheck": {},
"replicas": 0,
"resources": {
"cpuRequest": 0,
"cpuLimit": 0,
"memoryRequest": 0,
"memoryLimit": 0,
"gpu": 0
},
"container": {},
"dependsOn": [
"string"
]
},
"domains": [
{
"service": "string",
"hostname": "string",
"portName": "string"
}
],
"warnings": [
"string"
],
"importable": true,
"existingId": "string"
}
],
"stacks": [
{
"key": "string",
"sourceName": "string",
"plan": {
"project": {
"name": "string",
"namespace": "string"
},
"services": [
{
"name": "string",
"composeName": "string",
"source": {
"type": "string",
"image": "string",
"reference": "string",
"repoUrl": "string",
"branch": "string",
"buildContext": "string",
"dockerfilePath": "string",
"buildArgs": [
{
"key": "string",
"value": "string",
"secret": true
}
],
"installationId": 0,
"private": true
},
"ports": [
{
"name": "string",
"containerPort": 0,
"protocol": "string",
"public": true,
"publicPort": 0,
"domain": "string"
}
],
"env": [
{
"key": "string",
"value": "string",
"secret": true
}
],
"volumes": [
{
"name": "string",
"mountPath": "string",
"sizeGi": 0,
"fromBind": true
}
],
"healthCheck": {},
"replicas": 0,
"resources": {
"cpuRequest": 0,
"cpuLimit": 0,
"memoryRequest": 0,
"memoryLimit": 0,
"gpu": 0
},
"container": {},
"dependsOn": [
"string"
]
}
],
"warnings": [
{
"service": "string",
"field": "string",
"message": "string"
}
]
},
"domains": [
{
"service": "string",
"hostname": "string",
"portName": "string"
}
],
"warnings": [
"string"
],
"importable": true,
"existingProjectId": "string"
}
],
"databases": [
{
"key": "string",
"sourceName": "string",
"name": "string",
"engine": "string",
"image": "string",
"target": "string",
"action": "string",
"warnings": [
"string"
],
"existingId": "string"
}
],
"existingProjectId": "string"
}
],
"warnings": [
"string"
]
}