Leads
Inbound rental enquiries and their pipeline stage. Note that these endpoints are mounted under /webhooks, alongside unrelated provider callbacks.
5 endpoints. Every request needs an Authorization: Bearer mtro_... header, and responses follow the envelope described in Errors and conventions.
POST /webhooks/create-lead
Create a new lead in the CRM pipeline.
Required scope: leads.write
MCP tool: leads_create
Request body
| Field | Type | Required | Description |
|---|---|---|---|
tenantName | string | yes | Lead contact name. Required by Core. |
emailAddress | string | no | Lead email address |
phoneNumber | string | no | Lead phone number |
service | string | no | Lead source, e.g. Furnished Finder, Airbnb, Manual. Defaults to Manual. |
specialNotes | string | no | Notes about the lead |
stageId | string | no | Pipeline stage ID. Read the stage list first, ids are per-entity. |
propertyId | string | no | Property ID if the lead is interested in a specific property |
destination | string | no | Destination the lead is looking for |
startDate | number | no | Desired start date as millisecond timestamp |
endDate | number | no | Desired end date as millisecond timestamp |
lengthOfStay | string | no | Desired length of stay |
numberOfTravelers | number | no | Number of travelers |
monthlyRate | number | no | Monthly rate the lead was quoted |
staffingCompany | string | no | Staffing or contracting company the lead works for |
petInformation | string | no | Pets travelling with the lead |
Example
curl -X POST 'https://core.mtro.app/webhooks/create-lead' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"tenantName":"<tenantName>"}'
POST /webhooks/delete-lead
Delete a lead from the CRM. This action cannot be undone.
Required scope: leads.write
MCP tool: leads_delete
Request body
| Field | Type | Required | Description |
|---|---|---|---|
leadId | string | yes | The lead ID to delete |
Example
curl -X POST 'https://core.mtro.app/webhooks/delete-lead' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"leadId":"<leadId>"}'
GET /webhooks/get/all
List all leads/inquiries in the CRM pipeline.
Required scope: leads.read
MCP tool: leads_list
Example
curl -X GET 'https://core.mtro.app/webhooks/get/all' \
-H 'Authorization: Bearer mtro_your_api_key'
Response
| Field | Type |
|---|---|
message | string |
error | boolean |
webhooks | object[] |
Fields of webhooks[]
| Field | Type |
|---|---|
id | string |
entityId | string |
userId | string |
operationId | string |
service | string |
rawData | object |
processedAt | integer |
status | string |
converted | boolean |
convertedAt | integer |
convertedBookingId | string |
dontSendSms | boolean |
pipelineStageId | string |
stagePosition | integer |
lostReason | any |
lostReasonOther | any |
lostReasonAt | any |
lostReasonBy | any |
stageMoveHistory | any[] |
POST /webhooks/update-lead
Update an existing lead's information.
Required scope: leads.write
MCP tool: leads_update
Request body
| Field | Type | Required | Description |
|---|---|---|---|
leadId | string | yes | The lead ID to update |
tenantName | string | no | Updated contact name |
emailAddress | string | no | Updated email address |
phoneNumber | string | no | Updated phone number |
specialNotes | string | no | Updated notes |
propertyId | string | no | Updated property ID |
destination | string | no | Updated destination |
startDate | number | no | Updated start date as millisecond timestamp |
endDate | number | no | Updated end date as millisecond timestamp |
lengthOfStay | string | no | Updated length of stay |
numberOfTravelers | number | no | Updated number of travelers |
monthlyRate | number | no | Updated monthly rate |
staffingCompany | string | no | Updated staffing or contracting company |
petInformation | string | no | Updated pet information |
Example
curl -X POST 'https://core.mtro.app/webhooks/update-lead' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"leadId":"<leadId>"}'
POST /webhooks/update-stage
Move a lead to a different pipeline stage.
Required scope: leads.write
MCP tool: leads_update_stage
Request body
| Field | Type | Required | Description |
|---|---|---|---|
leadId | string | yes | The lead ID to move |
stageId | string | yes | The target pipeline stage ID |
Example
curl -X POST 'https://core.mtro.app/webhooks/update-stage' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"leadId":"<leadId>","stageId":"<stageId>"}'