Skip to main content

Tasks

Maintenance and operational tasks, optionally assigned to a vendor.

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

POST /tasks/create​

Create a new maintenance/service task. Required: propertyId, date (timestamp ms), vendorId. Optional: notes, status.

Required scope: tasks.write
MCP tool: tasks_create

Request body

FieldTypeRequiredDescription
propertyIdstringyesProperty ID where the task takes place
datenumberyesTask date as millisecond timestamp
vendorIdstringyesVendor ID assigned to the task
notesstringnoTask notes/description
status"pending" | "in_progress" | "completed" | "cancelled"noTask status (default: pending)

Example

curl -X POST 'https://core.mtro.app/tasks/create' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"propertyId":"<propertyId>","date":0,"vendorId":"<vendorId>"}'

POST /tasks/delete​

Delete a task. This action cannot be undone.

Required scope: tasks.write
MCP tool: tasks_delete

Request body

FieldTypeRequiredDescription
taskIdstringyesThe task ID to delete

Example

curl -X POST 'https://core.mtro.app/tasks/delete' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"taskId":"<taskId>"}'

GET /tasks/get/{taskId}​

Get detailed information about a specific task.

Required scope: tasks.read
MCP tool: tasks_get

Path parameters

NameTypeRequiredDescription
taskIdstringyesThe task ID

Example

curl -X GET 'https://core.mtro.app/tasks/get/<taskId>' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
taskobject
errorboolean
Fields of task
FieldType
idstring
propertyIdstring
bookingIdstring
guestIdstring
scopeTypestring
scopeIdstring
dateinteger
vendorIdstring
assigneeTypestring
assigneeIdstring
titlestring
notesstring
completionNotesstring
completionNotesUpdatedAtany
completionNotesUpdatedBystring
statusstring
entityOwnerstring
lastUpdatedinteger
timelineobject[]

GET /tasks/get/all​

List all maintenance/service tasks. Returns task details including property, vendor, date, status, and notes.

Required scope: tasks.read
MCP tool: tasks_list

Example

curl -X GET 'https://core.mtro.app/tasks/get/all' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
tasksobject[]
errorboolean
Fields of tasks[]
FieldType
idstring
propertyIdstring
bookingIdstring
guestIdstring
scopeTypestring
scopeIdstring
dateinteger
vendorIdstring
assigneeTypestring
assigneeIdstring
titlestring
notesstring
completionNotesstring
completionNotesUpdatedAtany
completionNotesUpdatedBystring
statusstring
entityOwnerstring
lastUpdatedinteger
timelineobject[]

GET /tasks/get/entity/{entityId}​

Get all tasks belonging to a specific entity.

Required scope: tasks.read
MCP tool: tasks_get_by_entity

Path parameters

NameTypeRequiredDescription
entityIdstringyesThe entity ID

Example

curl -X GET 'https://core.mtro.app/tasks/get/entity/<entityId>' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
tasksobject[]
errorboolean
Fields of tasks[]
FieldType
idstring
propertyIdstring
bookingIdstring
guestIdstring
scopeTypestring
scopeIdstring
dateinteger
vendorIdstring
assigneeTypestring
assigneeIdstring
titlestring
notesstring
completionNotesstring
completionNotesUpdatedAtany
completionNotesUpdatedBystring
statusstring
entityOwnerstring
lastUpdatedinteger
timelineobject[]

GET /tasks/get/vendor/{vendorId}​

Get all tasks assigned to a specific vendor.

Required scope: tasks.read
MCP tool: tasks_get_by_vendor

Path parameters

NameTypeRequiredDescription
vendorIdstringyesThe vendor ID

Example

curl -X GET 'https://core.mtro.app/tasks/get/vendor/<vendorId>' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
tasksobject[]
errorboolean
Fields of tasks[]
FieldType
idstring
propertyIdstring
bookingIdstring
guestIdstring
scopeTypestring
scopeIdstring
dateinteger
vendorIdstring
assigneeTypestring
assigneeIdstring
titlestring
notesstring
completionNotesstring
completionNotesUpdatedAtany
completionNotesUpdatedBystring
statusstring
entityOwnerstring
lastUpdatedinteger
timelineobject[]

POST /tasks/update​

Update an existing task.

Required scope: tasks.write
MCP tool: tasks_update

Request body

FieldTypeRequiredDescription
taskIdstringyesThe task ID to update
propertyIdstringnoUpdated property ID
datenumbernoUpdated task date (timestamp ms)
vendorIdstringnoUpdated vendor ID
notesstringnoUpdated notes
status"pending" | "in_progress" | "completed" | "cancelled"noUpdated status

Example

curl -X POST 'https://core.mtro.app/tasks/update' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"taskId":"<taskId>"}'