---
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 'legacy/cli-http-api-partition-options.mdx'

@include 'legacy/http_api_namespace_options.mdx'

#### API Options

@include 'legacy/http_api_options_client.mdx'

@include 'legacy/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
```
