---
title: "Add more OTPKs and/or Kyber prekeys"
method: POST
path: "/devices/keys/replenish"
tags: ["E2EE"]
---

# Add more OTPKs and/or Kyber prekeys

`POST /devices/keys/replenish`

## Request

- Base URL: `https://api.shopseen.com/v1`
- URL: `https://api.shopseen.com/v1/devices/keys/replenish`
- Auth: HTTP bearer

At least one of the two arrays must be non-empty. Idempotent for identical (user_id, key_id) material; different material is rejected with key_prekey_conflict.

## Request body

- object
  - `one_time_prekeys` object[]
    - `id` integer
    - `public` string
  - `kyber_prekeys` object[]
    - `id` integer
    - `public` string
    - `signature` string

## Response `200`

Prekeys added

- object
  - `message` string
  - `one_time_prekeys_added` integer
  - `kyber_prekeys_added` integer

## Other responses

- `404`: No active key set for this user

---

[API](https://skmtc.dev/shopseen/apis/a-side-api.md) - [All operations](https://skmtc.dev/shopseen/apis/a-side-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shopseen/apis/a-side-api/revisions/f37f989e90da?raw)
