---
title: "Create a lease meter"
method: POST
path: "/leases/{lease_id}/meters"
tags: ["Leases"]
---

# Create a lease meter

`POST /leases/{lease_id}/meters`

## Request

- Base URL: `https://api.faireplace.com/api`
- URL: `https://api.faireplace.com/api/leases/{lease_id}/meters`
- Auth: HTTP bearer

Create a new meter for a lease

## Path parameters

- `lease_id` string, uuid, required

## Request body

- CreateLeaseMeter: Create a new lease-meter association. **Validation rules:** - `start_date` must be <= `end_date` (if provided) - `initial_reading` must be <= `final_reading` (if both provided) - `billing_ratio` must be between 0 (exclusive) and 100 (inclusive)
  - `lease_id` string, uuid, required
  - `meter_id` string, uuid, required
  - `start_date` string, date, required
  - `end_date` string, date, nullable
  - `initial_reading` number, nullable
  - `final_reading` number, nullable
  - `reading_frequency` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'ANNUALLY': Frequency at which meter readings are taken.
  - `is_billing_meter` boolean
  - `billing_ratio` number, nullable

## Response `201`

Lease meter created successfully

- LeaseMeter: Association between a physical meter and a lease. Tracks readings, billing settings, and the time range during which the meter is active for the lease.
  - `id` string, uuid, required
  - `lease_id` string, uuid, required
  - `meter_id` string, uuid, required: Physical meter ID
  - `start_date` string, date, required: Date the meter became active for this lease
  - `end_date` string, date, nullable: Date the meter was deactivated (null = still active)
  - `initial_reading` number, nullable: Meter reading at the start
  - `final_reading` number, nullable: Meter reading at the end
  - `reading_frequency` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'ANNUALLY': Frequency at which meter readings are taken.
  - `is_billing_meter` boolean, required: Whether this meter is used for billing
  - `billing_ratio` number, nullable: Billing ratio percentage (0 < x <= 100)
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/faireplace/apis/faireplace-property-management-api.md) · [All operations](https://skmtc.dev/faireplace/apis/faireplace-property-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/faireplace/apis/faireplace-property-management-api/revisions/69de39762919?raw)
