openapi: 3.1.0 info: title: Dokploy admin redis 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: redis paths: /redis.create: post: operationId: redis-create tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: name: type: string minLength: 1 appName: type: string minLength: 1 maxLength: 63 pattern: ^[a-zA-Z0-9._-]+$ databasePassword: type: string dockerImage: default: redis:8 type: string environmentId: type: string description: anyOf: - type: string - type: 'null' serverId: anyOf: - type: string - type: 'null' required: - name - databasePassword - 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' /redis.one: get: operationId: redis-one tags: - redis security: - Authorization: [] parameters: - in: query name: redisId 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' /redis.start: post: operationId: redis-start tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string minLength: 1 required: - redisId 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' /redis.reload: post: operationId: redis-reload tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string appName: type: string minLength: 1 maxLength: 63 pattern: ^[a-zA-Z0-9._-]+$ required: - redisId - 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' /redis.stop: post: operationId: redis-stop tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string minLength: 1 required: - redisId 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' /redis.saveExternalPort: post: operationId: redis-saveExternalPort tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string externalPort: anyOf: - type: number - type: 'null' required: - redisId - externalPort 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' /redis.deploy: post: operationId: redis-deploy tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string required: - redisId 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' /redis.changeStatus: post: operationId: redis-changeStatus tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string applicationStatus: type: string enum: - idle - running - done - error required: - redisId - applicationStatus 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' /redis.remove: post: operationId: redis-remove tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string minLength: 1 required: - redisId 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' /redis.saveEnvironment: post: operationId: redis-saveEnvironment tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string env: anyOf: - type: string - type: 'null' required: - redisId - 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' /redis.update: post: operationId: redis-update tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string minLength: 1 name: type: string minLength: 1 appName: type: string minLength: 1 maxLength: 63 pattern: ^[a-zA-Z0-9._-]+$ description: anyOf: - type: string - type: 'null' databasePassword: type: string dockerImage: type: string command: anyOf: - type: string - type: 'null' args: anyOf: - type: array items: type: string - type: 'null' env: anyOf: - type: string - type: 'null' memoryReservation: anyOf: - type: string - type: 'null' memoryLimit: anyOf: - type: string - type: 'null' cpuReservation: anyOf: - type: string - type: 'null' cpuLimit: anyOf: - type: string - type: 'null' externalPort: anyOf: - type: number - type: 'null' createdAt: type: string applicationStatus: type: string enum: - idle - running - done - error healthCheckSwarm: anyOf: - anyOf: - type: object properties: Test: type: array items: type: string Interval: type: number Timeout: type: number StartPeriod: type: number Retries: type: number additionalProperties: false - type: 'null' - type: 'null' restartPolicySwarm: anyOf: - anyOf: - type: object properties: Condition: type: string Delay: type: number MaxAttempts: type: number Window: type: number additionalProperties: false - type: 'null' - type: 'null' placementSwarm: anyOf: - anyOf: - type: object properties: Constraints: type: array items: type: string Preferences: type: array items: type: object properties: Spread: type: object properties: SpreadDescriptor: type: string required: - SpreadDescriptor required: - Spread additionalProperties: false MaxReplicas: type: number Platforms: type: array items: type: object properties: Architecture: type: string OS: type: string required: - Architecture - OS additionalProperties: false additionalProperties: false - type: 'null' - type: 'null' updateConfigSwarm: anyOf: - anyOf: - type: object properties: Parallelism: type: number Delay: type: number FailureAction: type: string Monitor: type: number MaxFailureRatio: type: number Order: type: string required: - Parallelism - Order additionalProperties: false - type: 'null' - type: 'null' rollbackConfigSwarm: anyOf: - anyOf: - type: object properties: Parallelism: type: number Delay: type: number FailureAction: type: string Monitor: type: number MaxFailureRatio: type: number Order: type: string required: - Parallelism - Order additionalProperties: false - type: 'null' - type: 'null' modeSwarm: anyOf: - anyOf: - type: object properties: Replicated: type: object properties: Replicas: type: number additionalProperties: false Global: type: object properties: {} ReplicatedJob: type: object properties: MaxConcurrent: type: number TotalCompletions: type: number additionalProperties: false GlobalJob: type: object properties: {} additionalProperties: false - type: 'null' - type: 'null' labelsSwarm: anyOf: - anyOf: - type: object propertyNames: type: string additionalProperties: type: string - type: 'null' - type: 'null' networkSwarm: anyOf: - anyOf: - type: array items: type: object properties: Target: type: string Aliases: type: array items: type: string DriverOpts: type: object propertyNames: type: string additionalProperties: type: string additionalProperties: false - type: 'null' - type: 'null' stopGracePeriodSwarm: anyOf: - anyOf: - type: number - type: 'null' - type: 'null' endpointSpecSwarm: anyOf: - anyOf: - type: object properties: Mode: type: string Ports: type: array items: type: object properties: Protocol: type: string TargetPort: type: number PublishedPort: type: number PublishMode: type: string additionalProperties: false additionalProperties: false - type: 'null' - type: 'null' ulimitsSwarm: anyOf: - anyOf: - type: array items: type: object properties: Name: type: string minLength: 1 Soft: type: integer minimum: -1 maximum: 9007199254740991 Hard: type: integer minimum: -1 maximum: 9007199254740991 required: - Name - Soft - Hard additionalProperties: false - type: 'null' - type: 'null' replicas: type: number environmentId: type: string required: - redisId 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' /redis.changePassword: post: operationId: redis-changePassword tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string minLength: 1 password: type: string minLength: 1 pattern: ^[a-zA-Z0-9@#%^&*()_+\-=[\]{}|;:,.<>?~`]*$ required: - redisId - password 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' /redis.move: post: operationId: redis-move tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string targetEnvironmentId: type: string required: - redisId - 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' /redis.rebuild: post: operationId: redis-rebuild tags: - redis security: - Authorization: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: redisId: type: string required: - redisId 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' /redis.search: get: operationId: redis-search tags: - redis 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' /redis.readLogs: get: operationId: redis-readLogs tags: - redis security: - Authorization: [] parameters: - in: query name: redisId schema: type: string minLength: 1 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