# Ontario Landlord and Tenant Board Building Record (`docketstreet/ontario-ltb-building-record`) Actor

Check any Ontario rental building or landlord company at the Landlord and Tenant Board before you lend, insure, buy or manage. Free preview: a one-line verdict. Full reports: dispute rate, scorecard, rent owed, monthly trend, postal area and landlord portfolio. No personal names.

- **URL**: https://apify.com/docketstreet/ontario-ltb-building-record.md
- **Developed by:** [DocketStreet Data](https://apify.com/docketstreet) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5,000.00 / 1,000 full building reports

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Ontario Landlord and Tenant Board Building Record

Check any Ontario rental building's history at the Landlord and Tenant Board before you lend on it, insure it, buy it or take over its management.

Enter an address. The free preview tells you how the building compares with similar buildings. The full report shows how many disputes it has had, what they were about, whether things are getting better or worse, and how it compares with the buildings around it and with its landlord's other buildings.

Or enter a landlord company, such as CAPREIT, to see the record of its whole portfolio.

No personal names. Reports never show a tenant, an individual landlord or a unit number. Landlord companies are named; people never are.

### What the Landlord and Tenant Board is

The Landlord and Tenant Board is the Ontario tribunal that settles disputes between residential landlords and tenants. A landlord applies to it to evict for unpaid rent, for example; a tenant applies when repairs are not done. Every decision is a written **order**, and Tribunals Ontario publishes those orders in an open dataset, the LTB Order Catalogue. This tool turns that catalogue into a record for one building at a time.

### Who uses it

- **Lenders and mortgage brokers** checking a rental building before financing it
- **Buyers and investors** doing due diligence before an offer
- **Rent-guarantee and landlord insurers** pricing a policy
- **Property managers** sizing up a building before pitching for it or taking it over
- **Real estate agents** answering a client's question: "is this building trouble?"
- **AI agents** working for any of the above. The output is structured data, so an agent can read the numbers directly.

### What you get

#### Free preview

For each address: the number of orders and cases, and a one-line verdict, for example:

> Far above normal. About 14 times the dispute rate of a typical Toronto building its size.

#### Full building report

A report of up to three pages you can open in a browser, print or save as PDF, plus the same numbers as data.

**Page 1: the building**

- **Building facts** (Toronto): units, storeys, year built, ownership, City inspection score and the property management company from the City's register
- **Dispute rate**: cases per 100 units, ranked against every registered Toronto apartment building of the same size, including those with no cases
- **Scorecard**: where the building sits, out of 100 comparable buildings, on unpaid rent, rent owed, broken payment plans, units with repeat cases and building condition
- **Rent owed** (where 5 or more cases state an amount): the typical rent owed when the Board decided the case, how many months of rent that is, and the typical monthly rent in the orders, each next to the Ontario typical
- **Orders by month**, so you can see whether things are getting better or worse

**Page 2: the neighbourhood**

- **Rank in the postal area**: this building's share of all cases at addresses with the same first three postal characters (for example M9V)
- **Against the rest of the area**: unpaid rent, broken payment plans and tenant applications, compared with the rest of the postal area and with all of Ontario
- **Orders by month** next to the rest of the area, so you can tell a building problem from a neighbourhood trend

**Page 3: the landlord** (when the building's landlord company has other addresses)

- **Rank in the landlord's portfolio**: where this building sits among the landlord's registered Toronto buildings, by cases per 100 units
- **Against the rest of the landlord's buildings**: unpaid rent, broken payment plans, tenant applications and condition

#### Landlord company record

A two-page record for one landlord company, priced separately from a building report.

- **Page 1:** addresses, reported buildings, Toronto units and cases; the company's dispute rate across its registered Toronto buildings, ranked against every landlord company with 300 or more Toronto units; a scorecard against other landlord companies; orders by month
- **Page 2:** its buildings with the most cases, each with its own building record

The landlord is the company named on the orders, grouped under its operating brand when a filing names one ("c/o", "operating as"). A company that manages for several owners carries all of their filings.

**Email (optional).** Enter an email address and you get a short summary with a link to the full report when the run finishes.

You pay only when a full report is produced. Addresses or companies that are not found, that need more detail, or that fall below the privacy threshold cost nothing.

### How to use it

1. Enter one or more Ontario addresses, one per line, up to 50 per run. Add the postal code for the best match. Unit numbers are ignored, because the report covers the whole building.
2. Or, or as well, enter one or more landlord companies, one per line, up to 20 per run, as the name appears on Landlord and Tenant Board orders.
3. Choose **Preview** (free) or **Full report**.
4. Optionally, enter an email address for the summary and link. On Apify's free plan, email can only go to your own Apify account address.

Example input:

```json
{
  "addresses": ["2737 Kipling Ave, Etobicoke, ON M9V 4C3"],
  "landlords": ["CAPREIT"],
  "mode": "full",
  "email": "you@example.com"
}
```

### Output

One row per address or landlord company; `kind` says which. The `status` field tells you what happened:

| status | Meaning | Charged |
|---|---|---|
| `found` | The building or company has a record. | Full report only |
| `below_threshold` | The address has orders, but too few to report without risking identifying a household (see Privacy). | No |
| `ambiguous` | The same street address exists in more than one town, or several landlord companies match the name. The row lists the choices. | No |
| `not_found` | No order matched. Check the street number and add the postal code. | No |
| `skipped` | Your spending limit for the run was reached before this address. | No |

A preview row includes:

```json
{
  "input": "2737 Kipling Ave, Etobicoke, ON M9V 4C3",
  "status": "found",
  "orders": 108,
  "cases": 100,
  "label": "Far above normal",
  "headline": "Far above normal. About 14 times the dispute rate of a typical Toronto building its size."
}
```

A full building row adds the monthly series (`by_month`), case types (`application_codes`), order types (`document_types`), who applied (`applicant`), the Toronto building facts and rates (`toronto`), the postal area comparison (`postal_area`), the landlord company (`landlord`), rent owed and rent (`money`, with the Ontario figures in `market_money`), Ontario-wide figures (`market`) and `report_url`, a link to the report. A full landlord row adds its shares of orders (`shares`), Toronto portfolio figures (`toronto`), main cities and every reported building (`buildings`). All reports from a run are also saved together as `REPORT` in the run's key-value store.

How long the report link keeps working depends on your Apify plan's data retention. Download or print the report if you need to keep it.

### Privacy

Reports never show the name of a tenant, an individual landlord or anyone else, and never show unit numbers. Buildings are covered only with **5 or more orders spread across 3 or more units**, so no figure can point to a single household. Rent owed and rent follow the same rule: shown only as typical values, rounded to $100, when 5 or more cases across 3 or more units state them, never one household's amount. A landlord company's record follows the same rule, and lists only buildings that meet it. Landlord and property management names are shown only when they read as a business; a name that reads as a person is left out.

### Where the data comes from

- **LTB Order Catalogue**, published by Tribunals Ontario on data.ontario.ca. Current data: orders issued from January to July 2026, about 28,000 Ontario addresses, of which about 1,800 meet the privacy rule. Orders reach the catalogue 2 to 3 months after they are issued, and orders under a confidentiality order are never published. Rent owed and rent are read from the order documents the catalogue links to. Contains information licensed under the Open Government Licence – Ontario.
- **City of Toronto** Apartment Building Registration and Apartment Building Evaluation (RentSafeTO). Contains information licensed under the Open Government Licence – Toronto.

This tool is independent. It is not produced or endorsed by Tribunals Ontario, the Landlord and Tenant Board or the City of Toronto, and it is not legal advice.

### What the numbers are not

- **Not outcomes.** An order can be an eviction, a payment plan, a settlement or a dismissal. This version counts orders and their types and reads the rent owed; it does not yet read how each case ended.
- **Rent owed is rent alone.** It is the rent arrears as written in each order, without the filing fee or other charges. Not every order states an amount, so many buildings have too few to show.
- **Not an eviction rate.** A case is a dispute that reached the Board, not a household that left.
- **Rates only in Toronto.** The Board does not publish how many units a building has. The City of Toronto does, for registered apartment buildings, so only Toronto buildings get a rate per 100 units and a size comparison. Elsewhere in Ontario the report compares counts and shares of orders.

# Actor input Schema

## `addresses` (type: `array`):

One Ontario rental address per line. Include the postal code for the best match. Unit numbers are ignored. Up to 50 per run.

## `landlords` (type: `array`):

Optional. One landlord company per line, as it appears on Landlord and Tenant Board orders, for example CAPREIT or MetCap Living Management. Companies only; individual landlords are never shown. Up to 20 per run.

## `mode` (type: `string`):

Preview is free: a one-line verdict per building or landlord company. The full report is charged per building or company found: a building report (with its postal area and landlord) or a landlord-company record, plus the numbers as data.

## `email` (type: `string`):

Optional. Sends a short summary with a link to the full report when the run finishes. On Apify's free plan, email can only go to your own Apify account address.

## Actor input object example

```json
{
  "addresses": [
    "2737 Kipling Ave, Etobicoke, ON M9V 4C3"
  ],
  "mode": "preview"
}
```

# Actor output Schema

## `results` (type: `string`):

One row per address: status, verdict, order and case counts, and in full mode every figure behind the report and a report_url link.

## `report` (type: `string`):

The two-page HTML report for every building in this run, in one page. Only created in full mode when at least one report was produced.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "addresses": [
        "2737 Kipling Ave, Etobicoke, ON M9V 4C3"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("docketstreet/ontario-ltb-building-record").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "addresses": ["2737 Kipling Ave, Etobicoke, ON M9V 4C3"] }

# Run the Actor and wait for it to finish
run = client.actor("docketstreet/ontario-ltb-building-record").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "addresses": [
    "2737 Kipling Ave, Etobicoke, ON M9V 4C3"
  ]
}' |
apify call docketstreet/ontario-ltb-building-record --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,docketstreet/ontario-ltb-building-record"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JXwVByRhajfmITzLs/builds/8hzWZHdCabdwPlitJ/openapi.json
