---
title: "Borrow a headset unit"
method: POST
path: "/api/headsets/checkout"
tags: ["headsets", "browser-session"]
---

# Borrow a headset unit

`POST /api/headsets/checkout`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/headsets/checkout`
- Auth: API key in cookie `__session`

Clerk-session only (NOT reachable with an agt_ bearer), ic-member+. Opens a lend record against `unit_id` and returns its due-back time. A signed waiver is a precondition — without one this answers 412.

## Request body

- HeadsetCheckoutRequest
  - `unit_id` string, required: The headset unit to borrow (e.g. IC3).

## Response `200`

Lend opened.

- HeadsetCheckoutResponse
  - `ok` boolean, required
  - `lend_id` string, required: Pass this to /api/headsets/return.
  - `due_back_at` string, date-time

## Other responses

- `400`: Invalid JSON or missing unit_id.
- `401`: Not signed in.
- `403`: ic-member tier required.
- `404`: No such unit.
- `409`: The caller already has an open lend, or the unit is not available.
- `412`: No signed waiver on file.
- `503`: Lending store unavailable.

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
