---
title: "Create a new thermal chamber for a site"
method: POST
path: "/sites/{site_id}/thermal_chambers"
tags: ["Sites", "Thermal chambers"]
---

# Create a new thermal chamber for a site

`POST /sites/{site_id}/thermal_chambers`

## Request

- Base URL: `https://api.ionworks.com`
- URL: `https://api.ionworks.com/sites/{site_id}/thermal_chambers`
- Auth: none declared

Create a new thermal chamber under the specified site (by ID).

The request body must include ``project_id`` — the project that will own this
chamber — and both temperature bounds. The site is org-scoped
(cross-project), so any of the org's sites may host a chamber for any of its
projects. Returns the created chamber and sets the Location header.

## Path parameters

- `site_id` string, uuid, required

## Request body

- object

## Response `201`

Successful Response

- ThermalChamber: Model representing a thermal chamber as returned by the API.
  - `name` string, required: Name of the thermal chamber
  - `manufacturer` string, nullable: Manufacturer (make) of the chamber (e.g. Espec, Thermotron)
  - `model` string, nullable: Model (type) of the chamber (e.g. BTL-433)
  - `serial_number` string, nullable: Manufacturer serial number of the chamber
  - `min_temperature_c` number, required: Lowest temperature the chamber is rated to hold, in degrees Celsius.
  - `max_temperature_c` number, required: Highest temperature the chamber is rated to hold, in degrees Celsius.
  - `max_channels` integer, nullable: How many channels fit in the chamber at once. None means capacity is not tracked and scheduling treats the chamber as unlimited.
  - `heating_rate_c_per_min` number, required: Rate the chamber raises temperature, in degrees Celsius per minute.
  - `cooling_rate_c_per_min` number, required: Rate the chamber lowers temperature, in degrees Celsius per minute.
  - `notes` string, nullable: Free-text notes about the chamber
  - `site_id` string, required: Foreign key to the parent site
  - `project_id` string, required: Project that owns this thermal chamber
  - `id` string, required: Unique identifier for the thermal chamber
  - `organization_id` string, required: Organization this thermal chamber belongs to.
  - `created_by` string, nullable: User ID of the user who created this thermal chamber
  - `created_by_email` string, nullable: Email of the user who created this thermal chamber
  - `created_at` string, date-time, required: Timestamp when the thermal chamber was created
  - `updated_at` string, date-time, required: Timestamp when the thermal chamber was last updated

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-30** `ea3d377fec1a`: 1 breaking
  - for the `path` request parameter `site_id`, the format changed from no format to `uuid`

[Operation history](https://skmtc.dev/ionworks/apis/ionworks-api/changes/sites/:site_id/thermal_chambers/post.md)

---

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