--- layout: commands page_title: 'Commands: KV Import' description: >- The `consul kv import` command adds values to Consul's key/value store according to a JSON representation of the data. --- # Consul KV Import Command: `consul kv import` The `kv import` command is used to import KV pairs from the JSON representation generated by the `kv export` command. The table below shows this command's [required ACLs](/consul/api-docs/api-structure#authentication). Configuration of [blocking queries](/consul/api-docs/features/blocking) and [agent caching](/consul/api-docs/features/caching) are not supported from commands, but may be from the corresponding HTTP endpoint. | ACL Required | | ------------ | | `key:write` | ## Usage Usage: `consul kv import [options] [DATA]` #### Command Options - `-prefix` - Key prefix for imported data. The default value is empty meaning root. Added in Consul 1.10. #### Enterprise Options @include 'cli-http-api-partition-options.mdx' @include 'http_api_namespace_options.mdx' #### API Options @include 'http_api_options_client.mdx' @include 'http_api_options_server.mdx' ## Examples To import from a file, prepend the filename with `@`: ```shell-session $ consul kv import @values.json # Output ``` To import from stdin, use `-` as the data parameter: ```shell-session $ cat values.json | consul kv import - # Output ``` You can also pass the JSON directly, however care must be taken with shell escaping: ```shell-session $ consul kv import "$(cat values.json)" # Output ``` To import under prefix, use `-prefix` option: ```shell-session $ cat values.json | consul kv import -prefix=sub/dir/ - # Output ```