Skip to content

Imports API

2 operations. Every call needs a session cookie or an Authorization: Bearer nct_… token unless marked Public. Conventions, errors and scopes

POST/imports/coolify/apply

Import from Coolify

Creates the projects, environments, services and managed databases of a Coolify instance as staged changes: services, volumes, variables (secrets marked), domains and links. The request must match a plan without blockers; the plan is recomputed from Coolify, so the response never depends on a stale review. Database and volume data is not copied. With deploy: true the new services are deployed (needs deployments:write); otherwise review them and deploy from the staged bar.

ParameterInTypeDescription
Idempotency-KeyheaderstringClient-chosen key (<=255 chars). A retry with the same key replays the original response for 24 hours.
Request body · application/json · required
CoolifyApplyRequest
  • CoolifyChoicesrequired
  • deployboolean
  • serverIdstringrequired
  • CoolifySourcerequired
Response 201 · Created · application/json
CoolifyApplyResult
  • deploymentsstring[] | nullrequired
  • followupsstring[] | nullrequired
  • CoolifyAppliedProject[] | nullrequired
  • CoolifyPlanRewrite[] | nullrequired
  • CoolifyAppliedService[] | nullrequired
  • warningsstring[] | nullrequired
Errors
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Unprocessable Entity
  • 500Internal Server Error

Errors are RFC 9457 application/problem+json with a stable code field.

POST/imports/coolify/plan

Review an import from Coolify

Reads a Coolify v4 instance with the given API token (read and read:sensitive) and returns how every project, environment, application and database would be imported: the service source and settings, domains, variables by key (secrets flagged, values never returned), references rewritten to other imported resources, what is not supported, and the follow-up steps (data is never copied). choices change the defaults; send the same body again to see the effect. Nothing is written and the Coolify token is used for this request only. Needs projects:write and an unrestricted token, because the server connects to the given address with the credential.

Request body · application/json · required
CoolifyPlanRequest
  • CoolifyChoicesrequired
  • serverIdstring
  • CoolifySourcerequired
Response 200 · OK · application/json
CoolifyPlan
  • blockersstring[] | nullrequired
  • CoolifyCheck[] | nullrequired
  • coolifyVersionstring
  • followupsstring[] | nullrequired
  • installablebooleanrequired
  • CoolifyPlanProject[] | nullrequired
  • CoolifyPlanRegistry[] | nullrequired
  • CoolifyPlanRewrite[] | nullrequired
  • CoolifyTotalsrequired
  • CoolifyPlanUnsupported[] | nullrequired
  • warningsstring[] | nullrequired
Errors
  • 401Unauthorized
  • 403Forbidden
  • 422Unprocessable Entity
  • 500Internal Server Error

Errors are RFC 9457 application/problem+json with a stable code field.