openapi: 3.1.0 info: title: Dokploy admin compose API description: Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance. version: 1.0.0 contact: name: Dokploy Team url: https://dokploy.com license: name: Apache 2.0 url: https://github.com/dokploy/dokploy/blob/canary/LICENSE servers: - url: https://your-dokploy-instance.com/api security: - apiKey: [] tags: - name: compose paths: /compose.create: post: operationId: compose-create tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: name: type: string minLength: 1 description: anyOf: - type: string - type: 'null' environmentId: type: string composeType: type: string enum: - docker-compose - stack appName: type: string minLength: 1 maxLength: 63 pattern: ^[a-zA-Z0-9._-]+$ serverId: anyOf: - type: string - type: 'null' composeFile: type: string required: - name - environmentId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.one: get: operationId: compose-one tags: - compose security: - Authorization: [] parameters: - in: query name: composeId schema: type: string minLength: 1 required: true responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.update: post: operationId: compose-update tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string name: type: string minLength: 1 appName: type: string minLength: 1 maxLength: 63 pattern: ^[a-zA-Z0-9._-]+$ description: anyOf: - type: string - type: 'null' env: anyOf: - type: string - type: 'null' composeFile: type: string refreshToken: anyOf: - type: string - type: 'null' sourceType: type: string enum: - git - github - gitlab - bitbucket - gitea - raw composeType: type: string enum: - docker-compose - stack repository: anyOf: - type: string - type: 'null' owner: anyOf: - type: string - type: 'null' branch: anyOf: - type: string - type: 'null' autoDeploy: anyOf: - type: boolean - type: 'null' gitlabProjectId: anyOf: - type: number - type: 'null' gitlabRepository: anyOf: - type: string - type: 'null' gitlabOwner: anyOf: - type: string - type: 'null' gitlabBranch: anyOf: - type: string - type: 'null' gitlabPathNamespace: anyOf: - type: string - type: 'null' bitbucketRepository: anyOf: - type: string - type: 'null' bitbucketRepositorySlug: anyOf: - type: string - type: 'null' bitbucketOwner: anyOf: - type: string - type: 'null' bitbucketBranch: anyOf: - type: string - type: 'null' giteaRepository: anyOf: - type: string - type: 'null' giteaOwner: anyOf: - type: string - type: 'null' giteaBranch: anyOf: - type: string - type: 'null' customGitUrl: anyOf: - type: string - type: 'null' customGitBranch: anyOf: - type: string - type: 'null' customGitSSHKeyId: anyOf: - type: string - type: 'null' command: type: string enableSubmodules: type: boolean composePath: type: string minLength: 1 suffix: type: string randomize: type: boolean isolatedDeployment: type: boolean isolatedDeploymentsVolume: type: boolean triggerType: anyOf: - type: string enum: - push - tag - type: 'null' composeStatus: type: string enum: - idle - running - done - error environmentId: type: string createdAt: type: string watchPaths: anyOf: - type: array items: type: string - type: 'null' githubId: anyOf: - type: string - type: 'null' gitlabId: anyOf: - type: string - type: 'null' bitbucketId: anyOf: - type: string - type: 'null' giteaId: anyOf: - type: string - type: 'null' required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.saveEnvironment: post: operationId: compose-saveEnvironment tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string env: anyOf: - type: string - type: 'null' required: - composeId - env responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.delete: post: operationId: compose-delete tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 deleteVolumes: type: boolean required: - composeId - deleteVolumes responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.cleanQueues: post: operationId: compose-cleanQueues tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.clearDeployments: post: operationId: compose-clearDeployments tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.killBuild: post: operationId: compose-killBuild tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.loadServices: get: operationId: compose-loadServices tags: - compose security: - Authorization: [] parameters: - in: query name: composeId schema: type: string minLength: 1 required: true - in: query name: type schema: default: cache type: string enum: - fetch - cache responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.loadMountsByService: get: operationId: compose-loadMountsByService tags: - compose security: - Authorization: [] parameters: - in: query name: composeId schema: type: string minLength: 1 required: true - in: query name: serviceName schema: type: string minLength: 1 required: true responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.fetchSourceType: post: operationId: compose-fetchSourceType tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.randomizeCompose: post: operationId: compose-randomizeCompose tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 suffix: type: string required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.isolatedDeployment: post: operationId: compose-isolatedDeployment tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 suffix: type: string required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.getConvertedCompose: get: operationId: compose-getConvertedCompose tags: - compose security: - Authorization: [] parameters: - in: query name: composeId schema: type: string minLength: 1 required: true responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.deploy: post: operationId: compose-deploy tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 title: type: string description: type: string required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.redeploy: post: operationId: compose-redeploy tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 title: type: string description: type: string required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.stop: post: operationId: compose-stop tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.start: post: operationId: compose-start tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.getDefaultCommand: get: operationId: compose-getDefaultCommand tags: - compose security: - Authorization: [] parameters: - in: query name: composeId schema: type: string minLength: 1 required: true responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.refreshToken: post: operationId: compose-refreshToken tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.deployTemplate: post: operationId: compose-deployTemplate tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: environmentId: type: string serverId: type: string id: type: string baseUrl: type: string required: - environmentId - id responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.templates: get: operationId: compose-templates tags: - compose security: - Authorization: [] parameters: - in: query name: baseUrl schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.getTags: get: operationId: compose-getTags tags: - compose security: - Authorization: [] parameters: - in: query name: baseUrl schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.disconnectGitProvider: post: operationId: compose-disconnectGitProvider tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.move: post: operationId: compose-move tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string targetEnvironmentId: type: string required: - composeId - targetEnvironmentId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.processTemplate: post: operationId: compose-processTemplate tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: base64: type: string composeId: type: string minLength: 1 required: - base64 - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.previewTemplate: post: operationId: compose-previewTemplate tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: base64: type: string appName: type: string serverId: type: string required: - base64 - appName responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.import: post: operationId: compose-import tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: base64: type: string composeId: type: string minLength: 1 required: - base64 - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.cancelDeployment: post: operationId: compose-cancelDeployment tags: - compose security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: composeId: type: string minLength: 1 required: - composeId responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.search: get: operationId: compose-search tags: - compose security: - Authorization: [] parameters: - in: query name: q schema: type: string - in: query name: name schema: type: string - in: query name: appName schema: type: string - in: query name: description schema: type: string - in: query name: projectId schema: type: string - in: query name: environmentId schema: type: string - in: query name: limit schema: default: 20 type: number minimum: 1 maximum: 100 - in: query name: offset schema: default: 0 type: number minimum: 0 responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' /compose.readLogs: get: operationId: compose-readLogs tags: - compose security: - Authorization: [] parameters: - in: query name: composeId schema: type: string minLength: 1 required: true - in: query name: containerId schema: type: string minLength: 1 pattern: ^[a-zA-Z0-9.\-_]+$ required: true - in: query name: tail schema: default: 100 type: integer minimum: 1 maximum: 10000 - in: query name: since schema: default: all type: string pattern: ^(all|\d+[smhd])$ - in: query name: search schema: type: string pattern: ^[a-zA-Z0-9 ._-]{0,500}$ responses: '200': description: Successful response content: application/json: schema: type: object properties: {} additionalProperties: false '400': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/error.BAD_REQUEST' '401': description: Authorization not provided content: application/json: schema: $ref: '#/components/schemas/error.UNAUTHORIZED' '403': description: Insufficient access content: application/json: schema: $ref: '#/components/schemas/error.FORBIDDEN' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error.NOT_FOUND' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR' components: schemas: error.INTERNAL_SERVER_ERROR: type: object properties: message: type: string description: The error message example: Internal server error code: type: string description: The error code example: INTERNAL_SERVER_ERROR issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false title: Internal server error error (500) description: The error information example: code: INTERNAL_SERVER_ERROR message: Internal server error issues: [] error.FORBIDDEN: type: object properties: message: type: string description: The error message example: Insufficient access code: type: string description: The error code example: FORBIDDEN issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false title: Insufficient access error (403) description: The error information example: code: FORBIDDEN message: Insufficient access issues: [] error.NOT_FOUND: type: object properties: message: type: string description: The error message example: Not found code: type: string description: The error code example: NOT_FOUND issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false title: Not found error (404) description: The error information example: code: NOT_FOUND message: Not found issues: [] error.UNAUTHORIZED: type: object properties: message: type: string description: The error message example: Authorization not provided code: type: string description: The error code example: UNAUTHORIZED issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false title: Authorization not provided error (401) description: The error information example: code: UNAUTHORIZED message: Authorization not provided issues: [] error.BAD_REQUEST: type: object properties: message: type: string description: The error message example: Invalid input data code: type: string description: The error code example: BAD_REQUEST issues: description: An array of issues that were responsible for the error example: [] type: array items: type: object properties: message: type: string required: - message additionalProperties: false required: - message - code additionalProperties: false title: Invalid input data error (400) description: The error information example: code: BAD_REQUEST message: Invalid input data issues: [] securitySchemes: apiKey: type: apiKey in: header name: x-api-key description: API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys. externalDocs: description: Full documentation url: https://docs.dokploy.com