openapi: 3.1.0 info: title: Dokploy admin server 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: server paths: /server.create: post: operationId: server-create tags: - server security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: name: type: string minLength: 1 description: anyOf: - type: string - type: 'null' ipAddress: type: string port: type: number username: type: string sshKeyId: anyOf: - type: string - type: 'null' serverType: type: string enum: - deploy - build required: - name - description - ipAddress - port - username - sshKeyId - serverType 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' /server.one: get: operationId: server-one tags: - server security: - Authorization: [] parameters: - in: query name: serverId 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' /server.getDefaultCommand: get: operationId: server-getDefaultCommand tags: - server security: - Authorization: [] parameters: - in: query name: serverId 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' /server.all: get: operationId: server-all tags: - server security: - Authorization: [] 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' /server.allForPermissions: get: operationId: server-allForPermissions tags: - server security: - Authorization: [] 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' /server.count: get: operationId: server-count tags: - server security: - Authorization: [] 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' /server.withSSHKey: get: operationId: server-withSSHKey tags: - server security: - Authorization: [] 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' /server.buildServers: get: operationId: server-buildServers tags: - server security: - Authorization: [] 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' /server.setup: post: operationId: server-setup tags: - server security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: serverId: type: string minLength: 1 required: - serverId 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' /server.validate: get: operationId: server-validate tags: - server security: - Authorization: [] parameters: - in: query name: serverId 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' /server.security: get: operationId: server-security tags: - server security: - Authorization: [] parameters: - in: query name: serverId 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' /server.setupMonitoring: post: operationId: server-setupMonitoring tags: - server security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: serverId: type: string minLength: 1 metricsConfig: type: object properties: server: type: object properties: refreshRate: type: number minimum: 2 port: type: number minimum: 1 token: type: string urlCallback: type: string format: uri retentionDays: type: number minimum: 1 cronJob: type: string minLength: 1 thresholds: type: object properties: cpu: type: number minimum: 0 memory: type: number minimum: 0 required: - cpu - memory required: - refreshRate - port - token - urlCallback - retentionDays - cronJob - thresholds containers: type: object properties: refreshRate: type: number minimum: 2 services: type: object properties: include: type: array items: type: string exclude: type: array items: type: string required: - refreshRate - services required: - server - containers required: - serverId - metricsConfig 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' /server.remove: post: operationId: server-remove tags: - server security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: serverId: type: string minLength: 1 required: - serverId 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' /server.update: post: operationId: server-update tags: - server security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: name: type: string minLength: 1 description: anyOf: - type: string - type: 'null' serverId: type: string minLength: 1 ipAddress: type: string port: type: number username: type: string sshKeyId: anyOf: - type: string - type: 'null' serverType: type: string enum: - deploy - build command: type: string required: - name - description - serverId - ipAddress - port - username - sshKeyId - serverType 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' /server.publicIp: get: operationId: server-publicIp tags: - server security: - Authorization: [] 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' /server.getServerTime: get: operationId: server-getServerTime tags: - server security: - Authorization: [] 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' /server.getServerMetrics: get: operationId: server-getServerMetrics tags: - server security: - Authorization: [] parameters: - in: query name: url schema: type: string required: true - in: query name: token schema: type: string required: true - in: query name: dataPoints schema: type: string 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' 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