---
title: "/hardware/:id/checkout"
method: POST
path: "/hardware/{id}/checkout"
---

# /hardware/:id/checkout

`POST /hardware/{id}/checkout`

## Request

- Base URL: `https://develop.snipeitapp.com/api/v1`
- URL: `https://develop.snipeitapp.com/api/v1/hardware/{id}/checkout`
- Auth: none required

Checkout an asset to a user, location or another asset

## Path parameters

- `id` integer, required

## Request body

- object
  - `status_id` integer, required: Valid status ID
  - `checkout_to_type` 'asset' | 'location' | 'user', required: Type of entity the asset is being checked out to: user, asset, or location
  - `assigned_user` integer: The ID of the user to check the asset out to. Required if `checkout_to_type` is set to `user`
  - `assigned_asset` integer: The asset ID to associate the asset to. Required if `checkout_to_type` is set to `asset`
  - `assigned_location` integer: The location ID to check the asset out to. Required if `checkout_to_type` is set to `location`
  - `expected_checkin` string, date: Optional date the asset is expected to be checked in
  - `checkout_at` string, date: Optional date to override the checkout time of now
  - `name` string: Optional new asset name. This is useful for changing the asset's name on new checkout, for example, an asset that was named "Anna's Macbook Pro" could be renamed on the fly when it's checked out to Elizabeth, to "Beth's Macbook Pro"
  - `note` string: Optional note about the checkout

## Response `200`

200

- object
  - `status` string
  - `messages` string

## Other responses

- `401`: 401

## Changes

- **2026-11-03** `938bea5e8375`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/snipeitapp/apis/snipe-it-rest-api/changes/hardware/:id/checkout/post.md)

---

[API](https://skmtc.dev/snipeitapp/apis/snipe-it-rest-api.md) - [All operations](https://skmtc.dev/snipeitapp/apis/snipe-it-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/snipeitapp/apis/snipe-it-rest-api/revisions/938bea5e8375?raw)
