Skip to main content

Inventory

Per-property inventory items and the shared catalog.

5 endpoints. Every request needs an Authorization: Bearer mtro_... header, and responses follow the envelope described in Errors and conventions.

GET /inventory/{propertyId}​

List inventory rows for a property.

Required scope: inventory.read
MCP tool: inventory_list

Path parameters

NameTypeRequiredDescription
propertyIdstringyesProperty ID.

Example

curl -X GET 'https://core.mtro.app/inventory/<propertyId>' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
propertyobject
inventoryTypestring
itemsany[]
catalogobject[]
categoriesstring[]
unitsstring[]
lowStockCountinteger
errorboolean
Fields of property
FieldType
idstring
propertyNamestring
internalNamestring
addressstring
heroImageany
imagesany[]

POST /inventory/{propertyId}/items​

Create an inventory row for a property. This writes account data and should require owner confirmation when used by an agent.

Required scope: inventory.write
MCP tool: inventory_create_item

Path parameters

NameTypeRequiredDescription
propertyIdstringyesProperty ID.

Request body

note

Field names are taken from the Core handler, which reads exactly these. Types and which of them are required are not yet documented.

FieldTypeRequiredDescription
brandanyno
catalogKeyanyno
categoryanyno
inventoryTypeanyno
lastCheckedAtanyno
locationanyno
minimumQuantityanyno
modelanyno
nameanyno
notesanyno
notifyBelowMinimumanyno
quantityanyno
serialNumberanyno
sortOrderanyno
unitanyno

Example

curl -X POST 'https://core.mtro.app/inventory/<propertyId>/items' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{}'

DELETE /inventory/{propertyId}/items/{itemId}​

Delete an inventory row for a property. This is destructive and should require owner confirmation when used by an agent.

Required scope: inventory.write
MCP tool: inventory_delete_item

Path parameters

NameTypeRequiredDescription
propertyIdstringyesProperty ID.
itemIdstringyesInventory item ID.

Example

curl -X DELETE 'https://core.mtro.app/inventory/<propertyId>/items/<itemId>' \
-H 'Authorization: Bearer mtro_your_api_key'

PATCH /inventory/{propertyId}/items/{itemId}​

Update an inventory row for a property. This writes account data and should require owner confirmation when used by an agent.

Required scope: inventory.write
MCP tool: inventory_update_item

Path parameters

NameTypeRequiredDescription
propertyIdstringyesProperty ID.
itemIdstringyesInventory item ID.

Request body

A JSON object. This endpoint's fields are not documented yet — send the same body the admin panel sends, or ask MTRO PRO for the field list.

Example

curl -X PATCH 'https://core.mtro.app/inventory/<propertyId>/items/<itemId>' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{}'

GET /inventory/catalog​

List common property inventory catalog items, categories, and units.

Required scope: any valid API key for the entity.
MCP tool: inventory_catalog

Example

curl -X GET 'https://core.mtro.app/inventory/catalog' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
catalogobject[]
categoriesstring[]
unitsstring[]
errorboolean
Fields of catalog[]
FieldType
keystring
namestring
categorystring
unitstring
suggestedMinimuminteger