# Bayut MCP tools

> Every Bayut MCP tool on the Cotlet server: tool names, input schemas, a tools/call example and an example result for each tool.

Source: https://cotlet.dev/docs/mcp/bayut

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

13 tools for Bayut on the Cotlet MCP server. Your agent picks them from tools/list.

- MCP server: `https://cotlet.dev/mcp/v1`
- Connects with: Your own Bayut Profolio agent account; you enter the sign-in code yourself
- Integration page: https://cotlet.dev/integrations/bayut-api-mcp-server

## Endpoints

| Endpoint | Access | Description |
|---|---|---|
| `bayut_list_listings` | read | Your listings from Manage Listings with status, quality score and badges, for Bayut or dubizzle. |
| `bayut_get_listing` | read | One listing: details, photos, floor plan, quality score and Checked and TruCheck badges. |
| `bayut_get_listing_insights` | read | Impressions, clicks and leads per listing, with a filter for low performing listings. |
| `bayut_list_leads` | read | Leads from Reports, Leads by channel, with the listing each one asked about. |
| `bayut_get_lead` | read | One lead with the contact details Profolio shows for its channel and the listing asked about. |
| `bayut_export_leads` | read | The Excel file Profolio exports from Reports, Leads, as a download link. |
| `bayut_get_traffic_report` | read | Top locations by impressions and overall listing performance across Bayut and dubizzle. |
| `bayut_get_credits` | read | Your Bayut Credits balance as Manage Listings shows it. |
| `bayut_get_market_insights` | read | Most searched communities and buildings, average rent and sale prices and the areas with the highest ROI. |
| `bayut_get_transactions` | read | Last sold transactions in Dubai from the Dubai Land Department, as in Transaction Insights. |
| `bayut_assign_floor_plan` | write | Link a floor plan from your uploads to a listing, as the floor plan icon does in Profolio. |
| `bayut_request_trucheck` | write | Submit up to 5 photos of a Checked property to request TruCheck validation. |
| `bayut_apply_boost` | write | Apply a Bayut boost (Signature, Hot, Property of the Week) or a dubizzle boost (Refresh, Featured) to a listing. |

## List listings

MCP tool: `bayut_list_listings`

Access: read.

Lists your listings as Manage Listings shows them, for Bayut or for dubizzle. Each item carries the quality score colour, the Checked and TruCheck badges and whether a floor plan is waiting to be assigned. Pages hold up to 100 listings; pass next_cursor back as cursor for the next page.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `platform` | enum | no | bayut or dubizzle. Default: bayut. |
| `limit` | integer | no | 1 to 100. Default: 25. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_list_listings",
    "arguments": {
      "platform": "bayut",
      "limit": 100
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listings": [
      {
        "listing_id": "DM-2214",
        "platform": "bayut",
        "title": "2BR in Dubai Marina, marina view",
        "quality_score": "orange",
        "badges": [
          "checked"
        ],
        "floor_plan_waiting": true
      },
      {
        "listing_id": "DM-2290",
        "platform": "bayut",
        "title": "Studio in JLT, furnished",
        "quality_score": "green",
        "badges": [
          "checked"
        ],
        "floor_plan_waiting": false
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## Get listing

MCP tool: `bayut_get_listing`

Access: read.

Returns one listing with its price, purpose, photos, assigned floor plan, quality score and the badges it has today. Use it to check whether a TruCheck request went through. Read only.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | yes | Listing ID or your reference number, from list_listings. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_listing",
    "arguments": {
      "listing_id": "listing_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "DM-2290",
    "platform": "bayut",
    "title": "Studio in JLT, furnished",
    "purpose": "rent",
    "price_aed": 62000,
    "photos": 14,
    "floor_plan": "assigned",
    "quality_score": "green",
    "badges": [
      "checked"
    ]
  },
  "isError": false
}
```

## Get listing insights

MCP tool: `bayut_get_listing_insights`

Access: read.

Returns impressions, clicks and leads for each listing, as Listing Insights shows them for Bayut. Low performing means a lower click-through rate than similar listings on Bayut. Filters combine, and the listing ID filter accepts your reference number.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `low_performing_only` | boolean | no | Only listings with a lower click-through rate than similar listings. |
| `location` | string | no | Community or building name. |
| `status` | string | no | Listing status as shown in Profolio. |
| `purpose` | enum | no | sale or rent. Default: both. |
| `category` | string | no | Property category as shown in Profolio. |
| `reference` | string | no | Your reference number or listing ID. |
| `user` | string | no | Only listings of this user. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_listing_insights",
    "arguments": {
      "low_performing_only": true,
      "purpose": "rent",
      "location": "Jumeirah Lake Towers"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listings": [
      {
        "listing_id": "DM-2214",
        "location": "Dubai Marina",
        "purpose": "sale",
        "impressions": 1840,
        "clicks": 21,
        "leads": 1,
        "low_performing": true
      },
      {
        "listing_id": "DM-2290",
        "location": "JLT",
        "purpose": "rent",
        "impressions": 960,
        "clicks": 40,
        "leads": 3,
        "low_performing": false
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## List leads

MCP tool: `bayut_list_leads`

Access: read.

Lists leads from all five channels Profolio reports: email, sms, phone, whatsapp and chat. Each lead names the listing of interest and the time it arrived. Pass lead_id to get_lead for the contact details. Pages hold up to 100 leads.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `channel` | enum | no | email, sms, phone, whatsapp or chat. Default: all. |
| `since` | datetime | no | Only leads received after this time. |
| `listing_id` | string | no | Only leads for this listing. |
| `limit` | integer | no | 1 to 100. Default: 50. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_list_leads",
    "arguments": {
      "since": "2026-10-11T04:00:00Z",
      "limit": 100
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "leads": [
      {
        "lead_id": "ld_40a1",
        "channel": "whatsapp",
        "listing_id": "DM-2214",
        "received_at": "2026-10-10T14:22:00Z"
      },
      {
        "lead_id": "ld_40a7",
        "channel": "whatsapp",
        "listing_id": "DM-2290",
        "received_at": "2026-10-10T18:05:00Z"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## Get lead

MCP tool: `bayut_get_lead`

Access: read.

Returns one lead. What it holds depends on the channel: the email address for email leads, the enquiry text for SMS leads, the phone number and the call recording for phone leads, and the message. Read only.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_lead",
    "arguments": {
      "lead_id": "lead_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "ld_40a1",
    "channel": "whatsapp",
    "listing_id": "DM-2214",
    "name": "Sample Buyer",
    "phone": "+971500000000",
    "message": "Is the unit still available for viewing this week?",
    "received_at": "2026-10-10T14:22:00Z"
  },
  "isError": false
}
```

## Export leads

MCP tool: `bayut_export_leads`

Access: read.

Runs the export option at the top right of Reports, Leads and returns the Excel file as a download link. Pass a channel to export one channel only. Read only: nothing in Profolio changes.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `channel` | enum | no | email, sms, phone, whatsapp or chat. Default: all. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_export_leads",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "channel": "whatsapp",
    "file": "bayut-leads.xlsx",
    "download_url": "https://files.cotlet.example/exports/bayut-leads.xlsx",
    "rows": 2
  },
  "isError": false
}
```

## Get traffic report

MCP tool: `bayut_get_traffic_report`

Access: read.

Returns the Traffic report from Reports: the top locations by impressions and the overall performance of your listings, for Bayut and dubizzle. Read only.

### Parameters

No parameters.

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_traffic_report",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "top_locations": [
      {
        "location": "Dubai Marina",
        "impressions": 5210
      },
      {
        "location": "JLT",
        "impressions": 3180
      }
    ],
    "overall": {
      "impressions": 8390,
      "clicks": 144,
      "leads": 11
    }
  },
  "isError": false
}
```

## Get Bayut Credits

MCP tool: `bayut_get_credits`

Access: read.

Returns the Bayut Credits balance shown in Manage Listings. Read only.

### Parameters

No parameters.

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_credits",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "bayut_credits": 120
  },
  "isError": false
}
```

## Get market insights

MCP tool: `bayut_get_market_insights`

Access: read.

Returns Market Insights for Dubai or Abu Dhabi: the most searched communities, sub-communities and buildings, the average rent and sale prices, and the areas with the highest ROI. Read only.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `city` | enum | yes | dubai or abu_dhabi. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_market_insights",
    "arguments": {
      "city": "dubai"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "city": "dubai",
    "most_searched": [
      {
        "community": "Dubai Marina",
        "type": "community"
      },
      {
        "community": "Business Bay",
        "type": "community"
      }
    ],
    "average_prices_aed": {
      "rent": 118000,
      "sale": 1950000
    },
    "highest_roi": [
      {
        "community": "Jumeirah Village Circle",
        "roi_percent": 7.4
      }
    ]
  },
  "isError": false
}
```

## Get transactions

MCP tool: `bayut_get_transactions`

Access: read.

Returns last sold transaction data from the Dubai Land Department, as BayutPro shows it in Transactions. Only agencies registered in Dubai have this section. Filter by location, transaction type, time period, property type and bedrooms. Read only.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `location` | string | no | Community or building name. |
| `transaction_type` | string | no | As the Transactions filter offers it. |
| `period` | string | no | Time period as the Transactions filter offers it. |
| `property_type` | string | no | e.g. apartment, villa. |
| `bedrooms` | integer | no | Number of bedrooms. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_transactions",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "transactions": [
      {
        "location": "Dubai Marina",
        "property_type": "apartment",
        "bedrooms": 2,
        "price_aed": 2150000,
        "date": "2026-09-28"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## Assign floor plan

MCP tool: `bayut_assign_floor_plan`

Access: write. Confirm: waits for the user's OK before it runs.

Assigns a floor plan from the uploads section to one listing, the same step as clicking the floor plan icon in Profolio. The icon turns green once the plan is linked, and Bayut requires a floor plan for a perfect quality score. The floor plan becomes visible on the live listing. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | yes | Listing ID or your reference number, from list_listings. |
| `floor_plan_id` | string | yes | Floor plan from the uploads section of Profolio. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_assign_floor_plan",
    "arguments": {
      "listing_id": "DM-2214",
      "floor_plan_id": "fp_3302"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "DM-2214",
    "floor_plan_id": "fp_3302",
    "status": "assigned"
  },
  "isError": false
}
```

## Request TruCheck

MCP tool: `bayut_request_trucheck`

Access: write. Confirm: waits for the user's OK before it runs.

Uploads up to 5 photos of a Checked property and submits them to request TruCheck validation, as the multiple photo upload in BayutPro does. Bayut recommends clear photos that show the unit number and an inside view. Bayut's moderation team reviews the submission, so the call returns "submitted"; check the badge later with get_listing. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | yes | Listing ID or your reference number, from list_listings. |
| `photo_urls` | string[] | yes | Up to 5 photo URLs. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_request_trucheck",
    "arguments": {
      "listing_id": "listing_8c41d2",
      "photo_urls": [
        "https://example.com"
      ]
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "DM-2290",
    "photos": 2,
    "status": "submitted"
  },
  "isError": false
}
```

## Apply boost

MCP tool: `bayut_apply_boost`

Access: write. Confirm: waits for the user's OK before it runs.

Applies one boost product to one listing, as the boost products in Profolio do. Bayut offers Signature, Hot and Property of the Week; dubizzle offers Refresh and Featured. Check get_credits first. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | yes | Listing ID or your reference number, from list_listings. |
| `product` | enum | yes | signature, hot or property_of_the_week on Bayut; refresh or featured on dubizzle. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_apply_boost",
    "arguments": {
      "listing_id": "listing_8c41d2",
      "product": "signature"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "DM-2214",
    "platform": "bayut",
    "product": "hot",
    "status": "applied"
  },
  "isError": false
}
```
