---
title: "Buy the l16-resident locker with prepaid credits; direct x402 is gated"
method: POST
path: "/api/lockers"
---

# Buy the l16-resident locker with prepaid credits; direct x402 is gated

`POST /api/lockers`

## Request

- Base URL: `https://genie.locker`
- URL: `https://genie.locker/api/lockers`
- Auth: one of:
  - HTTP bearer
  - none

## Request body

- object
  - `envelope` string
  - `placement` 'resident'
  - `minutes` number
  - `billing_mode` 'fixed' | 'metered': metered starts with 10 minutes and renews from prepaid credits
  - `renewal_minutes` number
  - `max_minutes` number: hard customer spend cap for a metered locker

## Response `200`

locker_id, endpoint, token, expires_at, receipt

## Other responses

- `402`: x402 challenge, or insufficient credits
- `503`: Capacity or settlement unavailable. Do not retry in a loop.

---

[API](https://skmtc.dev/genie/apis/genie-locker.md) · [All operations](https://skmtc.dev/genie/apis/genie-locker/llms.txt) · [OpenAPI document](https://skmtc.dev/genie/apis/genie-locker/revisions/9ace85ce8948?raw)
