Real estate
Idealista
Your listings and leads on Idealista, managed by an agent.
14 endpoints
Read Yardi Breeze properties, tenant balances and work orders through MCP or REST. Connect an AI agent or build a reporting workflow for your permitted properties.
14 tools Read and write
Not for Breeze. Yardi licenses API access to approved software vendors through its Interfaces Program, and its official Virtuoso Connector for Claude is part of Virtuoso Enterprise on Voyager (checked 27 Oct 2026). Cotlet runs 14 tools hosted for your own Breeze account, over MCP for agents and REST for scripts.
| What you need | Interface partner | Virtuoso Connector | Cotlet |
|---|---|---|---|
| Works on Yardi Breeze | Per vendor, not published | Voyager, Virtuoso Enterprise | Breeze and Breeze Premier |
| Tenants, ledgers and charges | Inside that vendor's product | Lookups only | Yes |
| Work orders | Inside that vendor's product | Create, search, complete | Create, update, notes |
| Text and email tenants, owner packets | Not offered | No tool | Yes, after your OK |
| Allowed by Yardi's terms | Yes, licensed | Yes, official | Uses the web app |
Checked 27 Oct 2026. Sources: Yardi: Become an Interface Partner · Yardi: Virtuoso Connector for Claude (press release, 16 Jun 2026) · Yardi Virtuoso FAQ (Breeze vs Voyager 8) · Yardi Breeze: residential features and pricing · Yardi Breeze FAQ
Use your own account in its Cotlet Cloud Browser.
Connect your agent or create a Cotlet API key.
Ask your agent or send an HTTP request.
We never keep your Breeze password, and no tenant, vendor or owner hears from you until you approve it. Who can see your session
Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.
Open your Breeze login link. Sign up, then open the unique Breeze link from your welcome email in the Cloud Browser and sign in. Press Enable for agents.
Add the Cotlet address. Paste https://cotlet.dev/mcp/v1 into your agent as an MCP server or connector.
Approve the connection. Chat apps send you to a Cotlet sign-in. Code editors, n8n and scripts take an API key from the console instead.
Yardi says a Breeze account opens only from the unique link in the welcome email, not from a search engine, so keep that link at hand for the first sign-in. The shared address https://cotlet.dev/mcp/v1 carries Yardi next to your other apps. Enable Yardi after connecting? Refresh the connector so the new tools appear.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet-yardi \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet-yardi": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet-yardi]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: yardi_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: yardi_write Sign in to Yardi in its Cotlet Cloud Browser and enable the app for agents. Use your Yardi Breeze or Breeze Premier account through its own login link; property and role restrictions apply.
Create a Cotlet API key with access to Yardi and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.
curl https://cotlet.dev/api/v1/yardi/properties \
-H "Authorization: Bearer $COTLET_API_KEY" A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.
{
"status": "success",
"app": "yardi",
"tool": "list_properties",
"result": {
"properties": [
{
"property_id": "p_104",
"name": "Maple Court",
"type": "Residential",
"address": "12 Maple St, Dayton, OH",
"units": 24
}
]
}
} Read result.properties; this list has search but no cursor, offset or page-size input. These workflows cover Breeze and Breeze Premier rather than Voyager.
Tenant reads use a cursor and default to current tenants, ordered by balance. The min_balance filter is whole dollars, while returned balance and rent amounts are decimal strings.
Preserve those units and exact amounts in reports. Work orders default to open, oldest first, and use returned cursors; tenant ledgers default to the last 90 days.
| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Combine Breeze properties, tenants and ledgers into a balance review that preserves decimal amounts. |
| Make | HTTP > Make a request | Read work orders and work-order details into an oldest-outstanding maintenance report without assigning vendors. |
| Python or Node.js | REST API | Read prospects and permitted properties into a leasing follow-up review without outreach. |
Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.
Cotlet reads Yardi; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.
Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.
The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.
Your Breeze user's property access applies: a user limited to some properties sees only their tenants. Late fees Breeze posts on its own appear in the ledger like any charge. A posted charge has no undo tool.
Returns the properties your Breeze user can see, with address, property type and number of units. A user limited to some properties sees only those. Use property_id in the other tools.
MCP callyardi_read → list_properties
REST endpointGET https://cotlet.dev/api/v1/yardi/properties
| Name | Type | Description |
|---|---|---|
| search string | string | Name or address contains. |
{
"properties": [
{
"property_id": "p_104",
"name": "Maple Court",
"type": "Residential",
"address": "12 Maple St, Dayton, OH",
"units": 24
},
{
"property_id": "p_118",
"name": "Elm Street Duplexes",
"type": "Residential",
"address": "8 Elm St, Dayton, OH",
"units": 4
}
]
} Returns tenants with property, unit, status, email, phone and current balance, sorted by balance, highest first. Current tenants only by default. min_balance keeps tenants who owe at least that many whole dollars. Pass next_cursor back as cursor for the next page.
MCP callyardi_read → list_tenants
REST endpointGET https://cotlet.dev/api/v1/yardi/tenants
| Name | Type | Description |
|---|---|---|
| property_id string | string | Only tenants of this property. |
| status enum | enum | current, past, future or all. Default: current. |
| min_balance integer | integer | Only tenants owing at least this amount, whole dollars. |
| search string | string | Name, unit, email or phone contains. |
| cursor string | string | Next page cursor from the previous call. |
{
"tenants": [
{
"tenant_id": "t_20481",
"name": "Jordan Lee",
"property": "Maple Court",
"unit": "4B",
"status": "current",
"email": "jordan.lee@example.com",
"phone": "+1 555 010 0142",
"balance": "1250.00"
},
{
"tenant_id": "t_20517",
"name": "Priya Shah",
"property": "Maple Court",
"unit": "12A",
"status": "current",
"email": "priya.shah@example.com",
"phone": "+1 555 010 0177",
"balance": "640.00"
}
],
"next_cursor": null
} Returns one tenant with contacts, lease start and end, monthly rent, current balance and whether the tenant has registered in the RentCafe resident portal. Breeze texts only reach tenants who registered and opted in there, so check portal_registered before send_text.
MCP callyardi_read → get_tenant
REST endpointGET https://cotlet.dev/api/v1/yardi/tenants/{tenant_id}
| Name | Type | Description |
|---|---|---|
| tenant_id string required | string | Tenant ID from list_tenants. |
{
"tenant_id": "tenant_8c41d2"
} {
"tenant_id": "t_20481",
"name": "Jordan Lee",
"property": "Maple Court",
"unit": "4B",
"status": "current",
"lease_start": "2026-02-01",
"lease_end": "2027-01-31",
"monthly_rent": "1200.00",
"balance": "1250.00",
"portal_registered": true,
"sms_opt_in": true
} Returns the ledger of one tenant, oldest first, with a running balance after each line. The period defaults to the last 90 days. Late fees and recurring rent that Breeze posts on its own show up as ordinary charges.
MCP callyardi_read → get_tenant_ledger
REST endpointGET https://cotlet.dev/api/v1/yardi/tenants/{tenant_id}/ledger
| Name | Type | Description |
|---|---|---|
| tenant_id string required | string | Tenant ID from list_tenants. |
| from date | date | Start date. Default: 90 days ago. |
| to date | date | End date. Default: today. |
{
"tenant_id": "tenant_8c41d2"
} {
"tenant_id": "t_20481",
"from": "2026-08-01",
"to": "2026-10-27",
"opening_balance": "0.00",
"lines": [
{
"date": "2026-09-01",
"type": "Rent",
"amount": "1200.00",
"balance": "1200.00"
},
{
"date": "2026-09-03",
"type": "Payment",
"amount": "-1200.00",
"balance": "0.00"
},
{
"date": "2026-10-01",
"type": "Rent",
"amount": "1200.00",
"balance": "1200.00"
},
{
"date": "2026-10-06",
"type": "Late Fee",
"amount": "50.00",
"balance": "1250.00"
}
],
"closing_balance": "1250.00"
} Posts one charge to one tenant and returns the balance before and after. charge_type must be a charge code set up in your Breeze account. The date defaults to today. There is no undo tool: a wrong charge is reversed in Breeze. By default you confirm each call; you can switch that off for this tool.
MCP callyardi_write → post_charge
REST endpointPOST https://cotlet.dev/api/v1/yardi/tenants/{tenant_id}/charges
| Name | Type | Description |
|---|---|---|
| tenant_id string required | string | Tenant ID from list_tenants. |
| charge_type string required | string | Charge code as set up in your Breeze account, e.g. Late Fee. |
| amount string required | string | Decimal amount, e.g. 75.00. |
| date date | date | Transaction date. Default: today. |
| memo string | string | Shown on the ledger line. |
{
"tenant_id": "tenant_8c41d2",
"charge_type": "charge type",
"amount": "amount"
} {
"transaction_id": "tx_559102",
"tenant_id": "t_20481",
"unit": "4B",
"charge_type": "Lockout Fee",
"amount": "75.00",
"date": "2026-10-27",
"previous_balance": "1250.00",
"new_balance": "1325.00"
} Assignees are the vendors and employees already in your Breeze account. Photos on a work order are listed by name, not downloaded.
Returns work orders, oldest first, with status, property, unit, tenant, assignee (a vendor or an employee) and creation date. Open work orders only by default. Pass next_cursor back as cursor for the next page.
MCP callyardi_read → list_work_orders
REST endpointGET https://cotlet.dev/api/v1/yardi/work-orders
| Name | Type | Description |
|---|---|---|
| status enum | enum | open, completed or all. Default: open. |
| property_id string | string | Only work orders at this property. |
| unit string | string | Only work orders on this unit. |
| older_than_days integer | integer | Only work orders created at least this many days ago. |
| cursor string | string | Next page cursor from the previous call. |
{
"work_orders": [
{
"work_order_id": "wo_7731",
"title": "Water heater not heating",
"property": "Elm Street Duplexes",
"unit": "8B",
"status": "In progress",
"assigned_to": "Sam Ortiz",
"created_at": "2026-10-14T09:12:00-04:00",
"days_open": 13
},
{
"work_order_id": "wo_7790",
"title": "Hallway light out",
"property": "Maple Court",
"unit": "Common area",
"status": "Open",
"assigned_to": null,
"created_at": "2026-10-19T15:40:00-04:00",
"days_open": 8
}
],
"next_cursor": null
} Returns one work order with the description, assignee, schedule, progress notes newest first and the names of attached photos and documents. Attachments are listed, not downloaded.
MCP callyardi_read → get_work_order
REST endpointGET https://cotlet.dev/api/v1/yardi/work-orders/{work_order_id}
| Name | Type | Description |
|---|---|---|
| work_order_id string required | string | Work order ID from list_work_orders. |
{
"work_order_id": "work_order_8c41d2"
} {
"work_order_id": "wo_7731",
"title": "Water heater not heating",
"property": "Elm Street Duplexes",
"unit": "8B",
"tenant": "Marcus Webb",
"status": "In progress",
"assigned_to": "Sam Ortiz",
"scheduled_for": "2026-10-20",
"notes": [
{
"date": "2026-10-16",
"author": "Sam Ortiz",
"text": "Ordered a replacement thermostat, waiting on the part."
}
],
"attachments": [
"heater-label.jpg"
]
} Opens a work order for a property and unit with the status Open. Give tenant_id to tie it to the tenant who reported it and assigned_to to give it to a vendor or an employee in Breeze, who may be notified. By default you confirm each call; you can switch that off for this tool.
MCP callyardi_write → create_work_order
REST endpointPOST https://cotlet.dev/api/v1/yardi/properties/{property_id}/work-orders
| Name | Type | Description |
|---|---|---|
| property_id string required | string | Property ID from list_properties. |
| unit string | string | Unit name or number. |
| tenant_id string | string | Tenant who reported it. |
| title string required | string | Short description, e.g. "Kitchen sink leak". |
| details string | string | Longer description for whoever does the work. |
| assigned_to string | string | Vendor or employee name as it appears in Breeze. |
{
"property_id": "p_104",
"unit": "12A",
"tenant_id": "t_20517",
"title": "Kitchen sink leak",
"details": "Tenant emailed 7:40 am: water under the kitchen sink since last night. Has a dog, home after 3 pm.",
"assigned_to": "Dana Ruiz"
} {
"work_order_id": "wo_7812",
"status": "Open",
"property": "Maple Court",
"unit": "12A",
"tenant_id": "t_20517",
"title": "Kitchen sink leak",
"assigned_to": "Dana Ruiz",
"created_at": "2026-10-27T08:30:00-04:00"
} Changes one work order: status, assignee, or a progress note added to it. Marking it completed closes it in Breeze, and the change can reach the assignee and the tenant. By default you confirm each call; you can switch that off for this tool.
MCP callyardi_write → update_work_order
REST endpointPATCH https://cotlet.dev/api/v1/yardi/work-orders/{work_order_id}
| Name | Type | Description |
|---|---|---|
| work_order_id string required | string | Work order ID from list_work_orders. |
| status enum | enum | open, in_progress or completed. |
| assigned_to string | string | Vendor or employee name as it appears in Breeze. |
| note string | string | Progress note added to the work order. |
{
"work_order_id": "work_order_8c41d2"
} {
"work_order_id": "wo_7731",
"status": "In progress",
"assigned_to": "Sam Ortiz",
"note_added": true
} Breeze texts reach only people who registered and opted in through RentCafe; the rest get email. Every message and owner packet waits for your OK.
Returns prospects newest first, with name, contact details, the property they asked about, the listing source and whether they applied. since keeps prospects who first contacted you on or after that date.
MCP callyardi_read → list_prospects
REST endpointGET https://cotlet.dev/api/v1/yardi/prospects
| Name | Type | Description |
|---|---|---|
| property_id string | string | Only prospects for this property. |
| since date | date | Only prospects created on or after this date. |
| cursor string | string | Next page cursor from the previous call. |
{
"prospects": [
{
"prospect_id": "pr_3304",
"name": "Ana Lopez",
"email": "ana.lopez@example.com",
"property": "Elm Street Duplexes",
"source": "RentCafe.com",
"status": "inquiry",
"created_at": "2026-10-24"
},
{
"prospect_id": "pr_3297",
"name": "Sam Patel",
"email": "sam.patel@example.com",
"property": "Elm Street Duplexes",
"source": "Property website",
"status": "applied",
"created_at": "2026-10-22"
}
],
"next_cursor": null
} Returns the owners in your Breeze account with email, the properties they own and the share of each, so a property with two owners shows both. An owner without an email comes back with email set to null.
MCP callyardi_read → list_owners
REST endpointGET https://cotlet.dev/api/v1/yardi/owners
No parameters.
{
"owners": [
{
"owner_id": "o_412",
"name": "Hill Family Trust",
"email": "hill.trust@example.com",
"properties": [
{
"property": "Maple Court",
"share": "100%"
}
]
},
{
"owner_id": "o_415",
"name": "Ken Walsh",
"email": null,
"properties": [
{
"property": "Elm Street Duplexes",
"share": "50%"
}
]
}
]
} Sends one text to one tenant through Breeze's Text Messaging (SMS), under your account. Breeze texts only tenants who registered and opted in through RentCafe; anyone else comes back as not_reachable and nothing is sent. By default you confirm each call; you can switch that off for this tool.
MCP callyardi_write → send_text
REST endpointPOST https://cotlet.dev/api/v1/yardi/tenants/{tenant_id}/texts
| Name | Type | Description |
|---|---|---|
| tenant_id string required | string | Tenant ID from list_tenants. |
| message string required | string | Text message to the tenant. |
{
"tenant_id": "tenant_8c41d2",
"message": "message"
} {
"tenant_id": "t_20481",
"to": "Jordan Lee",
"status": "sent",
"sent_at": "2026-10-27T09:05:00-04:00"
} Sends one email from Breeze to one tenant or prospect, under your account. Give tenant_id or prospect_id, not both. By default you confirm each call; you can switch that off for this tool.
MCP callyardi_write → send_email
REST endpointPOST https://cotlet.dev/api/v1/yardi/emails
| Name | Type | Description |
|---|---|---|
| tenant_id string | string | Tenant ID from list_tenants. |
| prospect_id string | string | Prospect ID from list_prospects. |
| subject string required | string | Email subject. |
| body string required | string | Email text. |
{
"subject": "subject",
"body": "body"
} {
"to": "Priya Shah",
"email": "priya.shah@example.com",
"subject": "Work order logged: kitchen sink leak",
"status": "sent",
"sent_at": "2026-10-27T08:32:00-04:00"
} Generates the owner's report packet for the month, as set up for that owner in Breeze, and emails it to the owner's address on file. An owner without an email returns no_email and nothing is sent. By default you confirm each call; you can switch that off for this tool.
MCP callyardi_write → send_owner_report
REST endpointPOST https://cotlet.dev/api/v1/yardi/owners/{owner_id}/report
| Name | Type | Description |
|---|---|---|
| owner_id string required | string | Owner ID from list_owners. |
| month string required | string | Month as YYYY-MM. |
{
"owner_id": "owner_8c41d2",
"month": "month"
} {
"owner_id": "o_412",
"owner": "Hill Family Trust",
"month": "2026-09",
"email": "hill.trust@example.com",
"status": "sent"
} Your signed-in Breeze profile, AES-256-GCM encrypted, on servers in Finland. Never the password.
The 14 Yardi tools, not the session cookie.
What your Breeze user sees: tenants, ledgers, work orders, prospects and owners.
Bank accounts, owner and vendor payments, users, security settings and your Breeze subscription.
Breeze sign-in can ask for a second factor. You enter it yourself; we never do.
Disable Yardi for agents, reset the Cloud Browser, or sign the session out in Breeze.
Tenant names, balances and phone numbers pass through your agent, so treat its chat history like the Breeze screen it read from. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results); we have no SOC 2 report or third-party pentest yet.
"Use or attempt to use [other than generally-available, standard third party web browsers (e.g., Microsoft Edge or Google Chrome)] any engine, software, tool, agent or other device or mechanism (including without limitation web crawlers, scrapers, browsers, spiders, robots, avatars or intelligent agents) to navigate, search, collect or download information from Yardi Technology"
The same policy forbids access "by any means other than through the Yardi-provided user interface". The Breeze Terms of Use add that the software cannot be used to scrape data other than your own into another system. Cotlet drives a standard Chrome on Breeze's own screens, but the browser exception does not cover the agent that drives it, so Yardi could treat this as a breach and suspend the account. Yardi has sued a rival over access to its software (Entrata, settled in 2019); we found no case against a customer automating their own Breeze account (checked 27 Oct 2026). Weigh that before you connect a portfolio you cannot afford to lose access to.
Rent reminders and late-fee notices are regulated where your tenants live. Your agent writes the text you approve; the wording stays your call.
Yardi updates Breeze in the cloud on its own schedule, with nothing for you to install. When a screen moves, our side changes and your scheduled reminders keep running. status.cotlet.dev watches the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Create a work order | Add a note and mark it completed with update_work_order or in Breeze |
| Update a work order | Set the old status or assignee back with update_work_order |
| Post a charge | Reverse it in Breeze; there is no undo tool |
| Text a tenant | No, the text is sent |
| Email a tenant or prospect | No, the email is sent |
| Send an owner packet | No, the owner has it |
All 6 write tools ask first, because each one can reach a tenant, a vendor, an owner or a ledger. The 8 reads run at once. For a Monday reminder run you can switch the wait off for send_text alone and keep it on for charges.
An assignee may be notified the moment a work order is created, so the approval shows who it goes to.
{
"name": "create_work_order",
"arguments": {
"property_id": "p_104",
"unit": "12A",
"tenant_id": "t_20517",
"title": "Kitchen sink leak",
"details": "Tenant emailed 7:40 am: water under the kitchen sink since last night. Has a dog, home after 3 pm.",
"assigned_to": "Dana Ruiz"
}
} curl -X POST https://cotlet.dev/api/v1/yardi/properties/p_104/work-orders \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"unit":"12A","tenant_id":"t_20517","title":"Kitchen sink leak","details":"Tenant emailed 7:40 am: water under the kitchen sink since last night. Has a dog, home after 3 pm.","assigned_to":"Dana Ruiz"}' {
"work_order_id": "wo_7812",
"status": "Open",
"property": "Maple Court",
"unit": "12A",
"tenant_id": "t_20517",
"title": "Kitchen sink leak",
"assigned_to": "Dana Ruiz",
"created_at": "2026-10-27T08:30:00-04:00"
} A script or cron job calls the same tools over REST under /api/v1/yardi, with one key and one price. Failed calls are free. Each tool row above shows its REST path.
About $17 a monthfor a 100-unit Breeze portfolio, 2,920 credits. Yardi keeps billing your Breeze plan as before.
| Job | Calls | Credits |
|---|---|---|
| Text past-due tenants | 12 × 4 | 480 |
| Email tenants after a late fee | 9 × 1 | 90 |
| Log a work order from a message | 4 × 10 | 400 |
| Chase open work orders | 9 × 4 | 360 |
| Send owner report packets | 9 × 1 | 90 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 2,920 |
The month is our example of 142 calls. For scale, Breeze itself costs $1 per unit a month with a $100 minimum, and Breeze Premier has a $400 minimum (yardibreeze.com, 27 Oct 2026). Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| Yardi Virtuoso Connector | Official MCP for Claude since 16 Jun 2026, signs in through Yardi and follows your user permissions. | Part of Virtuoso Enterprise on Voyager. Five tools, all about work orders. |
| Yardi Interfaces Program | Licensed API access for software vendors, listed among 450+ interface partners. | For vendors, not for a Breeze customer, with a yearly fee per interface. |
| AyushSinghSql/YARDI_MCP_SERVER | The only GitHub repo named as a Yardi MCP server, 0 stars, last push 3 Aug 2026. | The README holds only its title; nothing documented to run. |
| Hosted Yardi connectors | Paid services that sell Yardi APIs and MCP servers to software companies. | Priced and sold to companies building products, not to one landlord. |
| Zapier, Make, n8n | No Yardi Breeze app in any of the three. | Only a generic HTTP step, with no API to call. |
A Voyager portfolio on Virtuoso Enterprise should use Yardi's own connector for work orders: it is official and follows your permissions. A software company building a product needs an interface license. Cotlet is for the Breeze account that has neither and wants its agent to do the weekly follow-up.
Cotlet belongs to Take Group sp. z o.o., a Polish software company in the EU (VAT PL6342984273) working since 2019 and founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Yardi tools go to contact@cotlet.dev.
Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.
Create a free account at https://cotlet.dev, choose Yardi under Integrations in the console and sign in to Breeze in its Cloud Browser from your own login link. The trial starts with your first app and asks for no card.
The tools are written for Yardi Breeze and Breeze Premier, the products Yardi sells to smaller portfolios. Voyager customers on Virtuoso Enterprise can use Yardi's own Virtuoso Connector for Claude, and Yardi says its full Virtuoso agent suite requires Voyager 8.
Yardi gives every Breeze and Breeze Premier client a unique login link in the welcome email and says it is the only way to sign in from a browser. You open that link once in your Cloud Browser and sign in as yourself. If the link is lost, Yardi's account representatives or live chat on yardibreeze.com send it again.
No. Breeze Text Messaging (SMS) reaches only prospects and tenants who registered and opted in through RentCafe, under Admin > Text Messaging (SMS). send_text returns not_reachable for anyone else, so the agent emails them or lists them for a call.
We found none for Breeze customers (checked 27 Oct 2026). Breeze does import data from files, and some partners such as BILL exchange files over SFTP. Your agent runs on a schedule instead of on an event.
No. The tools use screens both plans have: tenants, ledgers, maintenance, owner reports and Text Messaging (SMS). Premier adds two-way texting, a CRM queue and invoice approval workflows, which the tools do not cover.
No. Cotlet is independent and has no partnership with Yardi Systems.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy