Base URL: https://couplrfsm.com/api/v1. Conventions shared by every endpoint (examples, ids, dates, money) are on the API reference page. Errors, pagination and idempotency are in Errors, limits and retries.
List equipment#
GET /api/v1/equipment · requires the equipment:read ability
Equipment recorded at customers' addresses, newest first. Filter by customer_id and address_id for one location.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
page |
integer | No | Default: 1. |
per_page |
integer | No | Values above 100 are served as 100. Default: 25. |
updated_since |
string (date-time) | No | Only records changed at or after this time. ISO 8601, for example 2026-11-14T15:00:00Z. |
customer_id |
integer | No | |
address_id |
integer | No | |
type |
string: furnace, ac, water_heater, other |
No |
Example request
curl "https://couplrfsm.com/api/v1/equipment" \
-H "Authorization: Bearer YOUR_API_KEY"
Example response (200)
{
"data": [
{
"id": 610,
"customer_id": 1842,
"address_id": 2210,
"type": "ac",
"name": "Upstairs unit",
"make": "TRANE",
"model": "4TTR4036L",
"serial": "21104XYZ3F",
"install_year": 2019,
"manufacture_year": 2018,
"created_at": "2026-05-02T16:00:00+00:00",
"updated_at": "2026-05-02T16:00:00+00:00"
}
],
"meta": {
"page": 1,
"per_page": 25,
"total": 1,
"last_page": 1
}
}
Errors
| Status | When |
|---|---|
401 |
No key (api_key_missing), the key is unknown or revoked (api_key_invalid), the key had an end date that has passed (api_key_expired), or the key belongs to a private trial sandbox whose access window has ended (sandbox_expired). |
403 |
The key lacks the ability this endpoint needs (ability_missing), no admin user is left to act for the key (no_acting_admin), or the company's account is not yet verified. |
422 |
A parameter or field is invalid (validation_failed). errors maps each field to its messages. |
429 |
Too many requests (rate_limited). Wait Retry-After seconds. |
Get a piece of equipment#
GET /api/v1/equipment/{id} · requires the equipment:read ability
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
integer | Yes |
Example request
curl "https://couplrfsm.com/api/v1/equipment/1842" \
-H "Authorization: Bearer YOUR_API_KEY"
Example response (200)
{
"data": {
"id": 610,
"customer_id": 1842,
"address_id": 2210,
"type": "ac",
"name": "Upstairs unit",
"make": "TRANE",
"model": "4TTR4036L",
"serial": "21104XYZ3F",
"install_year": 2019,
"manufacture_year": 2018,
"created_at": "2026-05-02T16:00:00+00:00",
"updated_at": "2026-05-02T16:00:00+00:00"
}
}
Errors
| Status | When |
|---|---|
401 |
No key (api_key_missing), the key is unknown or revoked (api_key_invalid), the key had an end date that has passed (api_key_expired), or the key belongs to a private trial sandbox whose access window has ended (sandbox_expired). |
403 |
The key lacks the ability this endpoint needs (ability_missing), no admin user is left to act for the key (no_acting_admin), or the company's account is not yet verified. |
404 |
No such record in this company (not_found). |
429 |
Too many requests (rate_limited). Wait Retry-After seconds. |