---
title: "POST /api/v1/kms/keys/bulk-import"
method: POST
path: "/api/v1/kms/keys/bulk-import"
tags: ["KMS Keys"]
---

# POST /api/v1/kms/keys/bulk-import

`POST /api/v1/kms/keys/bulk-import`

Bulk import KMS keys with provided key material into a project.

## Request body

- object
  - `projectId` string, uuid, required
  - `keys` object[], required
    - `name` string, required
    - `keyUsage` 'encrypt-decrypt' | 'sign-verify' | 'generate-verify-mac', required
    - `algorithm` 'aes-256-gcm' | 'aes-128-gcm' | 'RSA_4096' | 'ECC_NIST_P256' | 'ECC_NIST_P384' | 'ECC_NIST_P521' | 'ML_DSA_44' | 'ML_DSA_65' | 'ML_DSA_87' | 'HMAC_SHA_1' | 'HMAC_SHA_224' | 'HMAC_SHA_256' | 'HMAC_SHA_384' | 'HMAC_SHA_512'
    - `keyMaterial` string, required
    - `isExportable` boolean — Whether the raw key material can be exported after creation. When set to false, the key can never be exported regardless of permissions. This cannot be changed after creation.

## Response `200`

Default Response

- object
  - `keys` object[], required
    - `id` string, required
    - `name` string, required
  - `errors` object[], required
    - `name` string, required
    - `message` string, required

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `500` — Default Response

---

[API](https://skmtc.net/infisical/apis/infisical-api.md) · [All operations](https://skmtc.net/infisical/apis/infisical-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/infisical/infisical-api/versions/885aef3e6c11/schema)
