API docs
Locations
Permission: locations (read / write). A location-limited key sees and changes only its own locations.
GET /v1/locations (updated_since, limit, cursor) and GET /v1/locations/{id}.
{
"object": "location",
"id": 93,
"name": "Demo Armory — Stow",
"address": { "line1": "3400 Kent Rd", "line2": null, "city": "Stow", "state": "OH", "postal_code": "44224", "country": "US" },
"phone": "330-555-0100",
"email": "stow@demoarmory.example",
"timezone": "America/New_York",
"tax_rate_bps": 725,
"business_hours": { "mon": [["10:00", "19:00"]], "sun": [] },
"status": "active",
"is_default": true,
"offers_pickup": true,
"bigcommerce_location_id": 1,
"latitude": 41.1595,
"longitude": -81.4404,
"updated_at": "2026-09-06T12:00:00Z"
}
The location's FFL number and licence details aren't in the API.
Update contact details and hours
PATCH /v1/locations/{id} (write) changes the public-facing details a listing tool keeps in step (Google Business Profile, Yext and similar): phone, email and business_hours. Nothing else.
curl -X PATCH https://app.ironregister.com/api/v1/locations/93 \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{
"phone": "330-555-0100",
"business_hours": {
"mon": [["10:00", "19:00"]],
"tue": [["10:00", "19:00"]],
"wed": [["10:00", "19:00"]],
"thu": [["10:00", "20:00"]],
"fri": [["10:00", "20:00"]],
"sat": [["09:00", "17:00"]],
"sun": []
}
}'
business_hours
- An object keyed by day:
mon,tue,wed,thu,fri,sat,sun. - Each day is a list of
["HH:MM", "HH:MM"]open/close pairs, in the location's local time (itstimezone). Close must be after open;24:00is allowed as a close. - A missing day, or
[], is closed. Several pairs are split shifts, e.g.[["09:00","12:00"],["13:00","18:00"]]. nullclears the hours.- On a shop with the Range add-on, hours also bound when lanes can be booked.
A bad shape is 400 VALIDATION_ERROR (e.g. business_hours.mon). An empty email or phone clears it.
What stays in Iron Register
Any other field in the body is refused with 409 FIELD_NOT_WRITABLE, listing the fields in details.fields:
- the name and address,
- the tax rate, which changes what the register charges,
- FFL and bound-book settings, which are federal records,
- pickup settings, which are mirrored to BigCommerce,
- creating or removing a location, which changes the shop's plan.
Webhooks
location.created fires when a location is added in Iron Register. location.updated fires after every change made through the API, and after changes made in Iron Register to a location's tax rate, FFL details, or trade-in and consignment settings.