---
title: "Create or update a Keystore from a raw keystore file"
method: POST
path: "/apiops/projects/{projectName}/keystores/import-file/"
tags: ["Keystore"]
---

# Create or update a Keystore from a raw keystore file

`POST /apiops/projects/{projectName}/keystores/import-file/`

## Request

- Base URL: `http://167.86.118.166:32080`
- URL: `http://167.86.118.166:32080/apiops/projects/{projectName}/keystores/import-file/`
- Auth: none declared
- TypeScript: <https://skmtc.dev/apinizer/apis/apinizer-management-apis/docs/apiops/projects/:projectName/keystores/import-file/post.ts> (a function with typed inputs; its response is checked against the schema)

Uploads a .jks / .p12 / .pfx file directly instead of Base64-encoding it into a JSON body. The same file is written to every environment named in environmentList. With override=true an existing keystore of that name is updated; otherwise a new one is created.

## Path parameters

- `projectName` string, required

## Query parameters

- `keystoreName` string, required
- `password` string, required
- `environmentList` string
- `keyStoreType` string
- `keystoreDescription` string
- `alias` string
- `override` boolean

## Request body `multipart/form-data`

- object
  - `keystoreFile` string, binary, required: Raw keystore file (.jks / .p12 / .pfx)
  - `environmentMapping` string: Optional JSON: environment name in the package -> environment name in this installation. An empty value means that environment is deliberately not transferred. Only meaningful when a ZIP is uploaded.

## Response `200`

successful operation!

- ApiOpsResponseSuccess
  - `status` 'SUCCESS' | 'FAILURE'
  - `resultMessage` string
  - `resultList` string[]
  - `resultCount` integer
  - `deploymentResult` DeploymentResult
    - `envName` string
    - `podName` string
    - `podIp` string
    - `success` boolean
    - `detail` string
    - `responseTime` integer
    - `detailList` unknown[]
      - unknown
    - `firstFromApiResultList` unknown
  - `unresolvedReferences` string[]
  - `advisories` ApiOpsAdvisoryDTO[]
    - `level` string
    - `key` string
    - `params` object

## Other responses

- `400`: bad request!
- `401`: not authorized for this operation!
- `500`: internal error!

## Changes

- **2026-10-20** `d1a546deccf0`: 1 breaking
  - added the new required `query` request parameter `password`
  - …this revision’s changelog is incomplete
- **2026-08-11** `9ae232e55479`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/apinizer/apis/apinizer-management-apis/changes/apiops/projects/:projectName/keystores/import-file/post.md)

---

[API](https://skmtc.dev/apinizer/apis/apinizer-management-apis.md) - [All operations](https://skmtc.dev/apinizer/apis/apinizer-management-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/apinizer/apis/apinizer-management-apis/revisions/e083046b24cd?raw)
