---
title: "Read prekey allocation bounds for an unchanged registered identity"
method: POST
path: "/devices/keys/prekey-allocation"
tags: ["E2EE"]
---

# Read prekey allocation bounds for an unchanged registered identity

`POST /devices/keys/prekey-allocation`

## Request

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

Requires the authenticated owner and exact registered identity and signed prekey. Returns highest historical prekey IDs including consumed rows. Does not reserve IDs, replace keys or restore consumed keys.

## Request body

- object
  - `owner_user_id` string, uuid, required
  - `identity_key_pub` string, required: base64 33 bytes
  - `signed_prekey` object, required
    - `id` integer, required
    - `public` string, required: base64 33 bytes
    - `signature` string, required: base64 64 bytes

## Response `200`

Historical allocation bounds

- object
  - `one_time_floor` integer, required
  - `kyber_floor` integer, required

## Other responses

- `400`: Invalid key fields
- `401`: Authentication required
- `403`: Owner mismatch
- `409`: No active matching identity and signed prekey

---

[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)
