---
title: "Create a DBaaS Valkey service"
method: POST
path: "/dbaas-valkey/{name}"
tags: ["dbaas"]
---

# Create a DBaaS Valkey service

`POST /dbaas-valkey/{name}`

## Request

- Base URL: `https://api-ch-gva-2.exoscale.com/v2`
- URL: `https://api-ch-gva-2.exoscale.com/v2/dbaas-valkey/{name}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/exoscale/apis/exoscale-api/docs/dbaas-valkey/:name/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a DBaaS Valkey service

## Path parameters

- `name` string, required

## Request body

- object
  - `valkey-settings` JsonSchemaValkey
    - `ssl` boolean
    - `lfu_log_factor` integer
    - `frequent_snapshots` boolean: When enabled, Valkey will create frequent local RDB snapshots. When disabled, Valkey will only take RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to `off`.
    - `maxmemory_policy` 'noeviction' | 'allkeys-lru' | 'volatile-lru' | 'allkeys-random' | 'volatile-random' | 'volatile-ttl' | 'volatile-lfu' | 'allkeys-lfu', nullable
    - `io_threads` integer: Set Valkey IO thread count. Changing this will cause a restart of the Valkey service.
    - `lfu_decay_time` integer
    - `pubsub_client_output_buffer_limit` integer: Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.
    - `active_expire_effort` integer: Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting (default 1, max 10) uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.
    - `notify_keyspace_events` string
    - `persistence` 'off' | 'rdb': When persistence is 'rdb', Valkey does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is 'off', no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.
    - `timeout` integer
    - `acl_channels_default` 'allchannels' | 'resetchannels': Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.
    - `number_of_databases` integer: Set number of Valkey databases. Changing this will cause a restart of the Valkey service.
  - `ip-filter` string[]: Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16'
  - `termination-protection` boolean: Service is protected against termination and powering off
  - `fork-from-service` string
  - `maintenance` object: Automatic maintenance settings
    - `dow` 'saturday' | 'tuesday' | 'never' | 'wednesday' | 'sunday' | 'friday' | 'monday' | 'thursday', required: Day of week for installing updates
    - `time` string, required: Time for installing updates, UTC
  - `version` string: Valkey major version
  - `recovery-backup-name` string: Name of a backup to recover from for services that support backup names
  - `plan` string, required: Subscription plan
  - `migration` object: Migrate data from existing server
    - `host` string, required: Hostname or IP address of the server where to migrate data from
    - `port` integer, required: Port number of the server where to migrate data from
    - `password` string: Password for authentication with the server where to migrate data from
    - `ssl` boolean: The server where to migrate data from is secured with SSL
    - `username` string: User name for authentication with the server where to migrate data from
    - `dbname` string: Database name for bootstrapping the initial connection
    - `ignore-dbs` string: Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)
    - `method` 'dump' | 'replication'

## Response `200`

200

- Operation: Operation
  - `id` string, uuid: Operation ID
  - `reason` 'incorrect' | 'unknown' | 'unavailable' | 'forbidden' | 'busy' | 'fault' | 'partial' | 'not-found' | 'interrupted' | 'unsupported' | 'conflict': Operation failure reason
  - `reference` object: Related resource reference
    - `id` string, uuid: Reference ID
    - `link` string: Link to the referenced resource
    - `command` string: Command name
  - `message` string: Operation message
  - `state` 'failure' | 'pending' | 'success' | 'timeout': Operation status

## Changes

- **2026-11-06** `63da6f74c845`: 3 info
  - added the new optional request property `valkey-settings/active_expire_effort`
  - added the new optional request property `valkey-settings/frequent_snapshots`
  - added the new optional request property `version`
- **2025-05-22** `37a05010e8b4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/exoscale/apis/exoscale-api/changes/dbaas-valkey/:name/post.md)

---

[API](https://skmtc.dev/exoscale/apis/exoscale-api.md) - [All operations](https://skmtc.dev/exoscale/apis/exoscale-api/llms.txt) - [OpenAPI document](https://skmtc.dev/exoscale/apis/exoscale-api/revisions/63da6f74c845?raw)
