# Fair Housing Listing Checker for Real Estate Ads (`ultimatemc/fair-housing-listing-checker`) Actor

Check real estate listings and rental ads for Fair Housing wording risk in bulk. Flags 'adults only', 'perfect for families', 'no section 8' and more with the quote, protected class, severity, HUD reference and a neutral rewrite. Works on Zillow, Realtor.com or Craigslist scraper data.

- **URL**: https://apify.com/ultimatemc/fair-housing-listing-checker.md
- **Developed by:** [Ultimate Foresight Inc](https://apify.com/ultimatemc) (community)
- **Categories:** Real estate, Automation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

**Fair Housing Listing Checker** scans **real estate listing descriptions, rental ads and MLS remarks** in bulk for wording that may break the **US Fair Housing Act** advertising rule (42 U.S.C. 3604(c)): phrases such as **"adults only"**, **"perfect for families"**, **"Christian home"**, **"English speaking"**, **"no wheelchairs"** or **"no section 8"**. Each finding has the **exact quote**, the **protected class**, a **severity**, a **why** with the **HUD reference**, and a **neutral rewrite tip**. Click **Start** with the prefilled example to check three listings in a few seconds.

> **Screening aid only. Not legal advice and not a compliance sign-off.** The tool flags wording that public federal rules and HUD guidance treat as risky. A listing with no flags is not "approved": context, photos, state and local laws and your MLS rules still apply. Have flagged ads reviewed by your broker or a qualified professional.

### What does the Fair Housing Listing Checker do?

- ✅ Flags **explicit preferences or limitations** based on the federal protected classes: race, color, religion, sex, disability (handicap), familial status and national origin. Examples: "no kids", "adults only", "couples only", "white neighborhood", "no Irish", "Christian home", "English speaking tenants preferred", "female tenants only", "no wheelchairs", "must be able to climb stairs", "no emotional support animals".
- ✅ Flags **"ideal buyer" wording** that MLS and association guidance commonly warns about: "perfect for families", "family-friendly", "empty nesters", "young professionals", "mature couple".
- ✅ Flags **source-of-income limits** ("no section 8", "we do not accept vouchers"). Not a federal protected class, but protected by statewide law in about 20 states plus DC and by many cities, so it is reported as medium with HUD's map linked.
- ✅ Recognises context: "adults only" next to **55+ / 62+ / active adult** wording is downgraded with a note about the housing-for-older-persons conditions, and sex preferences in a **roommate / shared living** ad are downgraded with a note about the shared-living exception.
- ✅ Does **not** flag the examples HUD's 1995 guidance calls lawful: master bedroom, family room, walk-in closets, great view, fourth-floor walk-up, jogging trails, walk to bus stop, quiet streets, wheelchair ramp, chapel, kosher meals, non-smoking, sober, mother-in-law suite. It also ignores false friends like "single-family home", "white oak floors", "black stainless appliances", "mature trees" and "near St. Mary's Church".
- ✅ Optional **style notes** (minSeverity = low): "master bedroom", "man cave", "his and hers", "exclusive neighborhood", "safe neighborhood".
- ✅ Tells you whether the ad carries an **Equal Housing Opportunity** statement.
- ✅ Takes plain texts, listing objects, or a whole **Apify dataset** from a Zillow, Realtor.com, Redfin or Craigslist scraper. Title, description and remarks fields are found automatically and HTML is stripped.

**Output per listing:** `riskLevel` (high / medium / low / none), `issueCount`, `protectedClassesFlagged`, `issues` (ruleId, protectedClass, severity, field, quote, context, why, suggestion, note, references), `hasEqualHousingStatement`, `hiddenLowSeverityCount`, `checkedAt` (UTC timestamp) and `disclaimer`.

### Who is it for?

- **Brokerages and team leads** who want a first pass over every agent's listing copy before it goes to the MLS or social media.
- **Property managers and rental platforms** screening rental ads and Craigslist-style posts in bulk.
- **Listing portals, MLS vendors and real estate marketing tools** that need a fair housing wording screen inside their pipeline via API.
- **Fair housing trainers, compliance staff and researchers** auditing large sets of public ads.

### How to check real estate listings for fair housing wording

1. Click **Start** with the prefilled example to see the output.
2. Paste your own descriptions into **Listing descriptions to check**, or add **Listings** with your own IDs (MLS number, URL).
3. Or pick an Apify **dataset** from a listing scraper. Leave **Dataset fields** empty to auto-detect title, description and remarks.
4. Keep **Minimum severity** at medium, or choose low to include MLS style notes. Turn on **Only save listings with findings** to keep just the rows to review.
5. Download as JSON, CSV or Excel and work through rows sorted by `riskLevel`.

### Input example

```json
{
  "texts": [
    "Charming 2BR condo, perfect for young professionals or empty nesters. Adults only, no section 8. Walk to shops and the light rail.",
    "Spacious 4 bed, 3 bath single-family home with a family room, primary suite, fenced yard and walk-in closets. Quiet street, great view. Equal Housing Opportunity.",
    "Room for rent in a Christian home. English speaking tenants preferred, no kids."
  ],
  "minSeverity": "medium",
  "onlyFlagged": false
}
```

Dataset example (output of a listing scraper run):

```json
{
  "datasetId": "YOUR_DATASET_ID",
  "textFields": ["description"],
  "minSeverity": "medium",
  "onlyFlagged": true
}
```

### Output example

Real output from the prefill run on 2026-10-28 (shortened: the first listing shows one full finding; the third shows the main fields):

```json
[
  {
    "itemNo": 1,
    "ref": null,
    "textPreview": "Charming 2BR condo, perfect for young professionals or empty nesters. Adults only, no section 8. Walk to shops and the light rail.",
    "fieldsChecked": [
      "text"
    ],
    "riskLevel": "high",
    "issueCount": 4,
    "protectedClassesFlagged": [
      "familial status",
      "familial status / age",
      "source of income (state and local law)"
    ],
    "issues": [
      {
        "ruleId": "ideal-household",
        "protectedClass": "familial status",
        "severity": "medium",
        "quote": "perfect for young professionals",
        "context": "Charming 2BR condo, perfect for young professionals or empty nesters. Adults only, no section 8. Walk to shops…",
        "why": "Describes who the home is for in familial-status terms. HUD's guidance bars ads that state a preference for adults, couples or singles; MLS and association guidance commonly flags 'perfect for families' wording.",
        "suggestion": "Name the feature instead: fenced yard, four bedrooms, bonus room, single-level living, community pool.",
        "references": [
          {
            "title": "Fair Housing Act, 42 U.S.C. 3604(c): ads may not indicate any preference, limitation or discrimination based on race, color, religion, sex, handicap, familial status or national origin",
            "url": "https://www.law.cornell.edu/uscode/text/42/3604"
          },
          {
            "title": "HUD memo 'Guidance Regarding Advertisements Under Section 804(c) of the Fair Housing Act' (R. Achtenberg, 9 Jan 1995)",
            "url": "http://www.cofha.com/realtors/files/Achtenberg%20Memo%20on%20Advertising.pdf"
          }
        ],
        "field": "text"
      },
      {
        "...": "3 more findings (age-household-terms: 'empty nesters' (medium), adults-only: 'Adults only' (high), source-of-income: 'no section 8' (medium))"
      }
    ],
    "hiddenLowSeverityCount": 0,
    "hasEqualHousingStatement": false,
    "highestSeverityIncludingHidden": "high",
    "minSeverityShown": "medium",
    "checkedAt": "2026-10-28T18:15:48+00:00",
    "disclaimer": "Automated wording screen based on the federal Fair Housing A..."
  },
  {
    "itemNo": 2,
    "textPreview": "Spacious 4 bed, 3 bath single-family home with a family room, primary suite, fenced yard and walk-in closets. Quiet street, great view. Equal Housing Opportunity.",
    "riskLevel": "none",
    "issueCount": 0,
    "issues": [],
    "hasEqualHousingStatement": true
  },
  {
    "itemNo": 3,
    "textPreview": "Room for rent in a Christian home. English speaking tenants preferred, no kids.",
    "riskLevel": "high",
    "issueCount": 3,
    "protectedClassesFlagged": [
      "familial status",
      "national origin",
      "religion"
    ],
    "issues": [
      {
        "ruleId": "religious-preference",
        "protectedClass": "religion",
        "severity": "high",
        "quote": "Christian home",
        "suggestion": "Remove it. Landmarks (near St. Mary's Church) and facilities (chapel, kosher kitchen) are fine to describe."
      },
      {
        "ruleId": "language-citizenship",
        "protectedClass": "national origin",
        "severity": "high",
        "quote": "English speaking",
        "suggestion": "Remove it. Screen all applicants with the same lawful, documented criteria."
      },
      {
        "ruleId": "no-children",
        "protectedClass": "familial status",
        "severity": "high",
        "quote": "no kids",
        "suggestion": "Remove it and describe the property itself (layout, rooms, amenities). Occupancy limits must follow local codes, not a preference."
      }
    ]
  }
]
```

### How much does it cost to check listings?

Pay per result: **$0.005 per listing checked**, plus a $0.00005 start fee per run and small Apify platform usage paid by you (the 3-listing prefill run used about $0.0001 of platform usage). 100 listings cost about $0.50 and 1,000 listings about $5.00, plus platform usage. Turn on **Only save listings with findings** to pay only for rows to review, and cap spend with the maximum cost per run setting.

### Use it through the API, integrations or AI agents

- Run and get results in one call: `https://api.apify.com/v2/acts/ultimatemc~fair-housing-listing-checker/run-sync-get-dataset-items`
- MCP for AI agents: `https://mcp.apify.com?tools=ultimatemc/fair-housing-listing-checker`
- Schedule it on new listings, add a webhook, or chain it after a Zillow, Realtor.com or Craigslist scraper and pass that run's dataset ID.

### Rules and sources

Checked against these public texts on 2026-10-28:

- [Fair Housing Act, 42 U.S.C. 3604(c)](https://www.law.cornell.edu/uscode/text/42/3604): no ad may indicate a preference, limitation or discrimination based on race, color, religion, sex, handicap, familial status or national origin.
- [24 CFR 100.75](https://www.ecfr.gov/current/title-24/subtitle-B/chapter-I/subchapter-A/part-100/subpart-B/section-100.75): discriminatory advertisements, statements and notices.
- [HUD memo "Guidance Regarding Advertisements Under Section 804(c) of the Fair Housing Act"](http://www.cofha.com/realtors/files/Achtenberg%20Memo%20on%20Advertising.pdf) (Roberta Achtenberg, 9 January 1995): examples of violating and non-violating wording, used for both the rules and the false-positive exclusions.
- [24 CFR Part 100 Subpart E](https://www.ecfr.gov/current/title-24/subtitle-B/chapter-I/subchapter-A/part-100/subpart-E): housing for older persons (55+ / 62+).
- [HUD: Source of Income protections for voucher holders](https://www.hud.gov/helping-americans/housing-choice-vouchers-income-protect) (map of state and local laws).

### How the checking works

Each text is matched against a fixed set of rules, one per kind of preference, with exclusions for the property and neighborhood descriptions HUD calls lawful. Severity is **high** for explicit preferences or limitations of the kind HUD's guidance names, **medium** for "ideal buyer" wording and source-of-income limits, and **low** for style notes. When matches overlap, only the most severe one is kept. Context rules lower the severity for 55+ / 62+ wording and shared-living ads and add a note. No AI and no external calls, so the same input always gives the same output.

### FAQ

#### Does "none" mean my listing is compliant?

No. It means none of the rule patterns matched. Photos, context, the way you answer inquiries, and state or local laws (age, marital status, sexual orientation, gender identity, source of income, military status and more) are not fully checked.

#### Is "master bedroom" a fair housing violation?

HUD's 1995 guidance says it is not. Many MLSs still prefer "primary bedroom", so it shows up only as a low-severity style note when you choose minSeverity = low.

#### Can I advertise a 55+ community?

Yes, if the property meets the housing-for-older-persons conditions. The tool downgrades "adults only" wording when 55+ / 62+ / active adult context is present and adds a note.

#### Does it check my state's extra protected classes?

Partly. Source of income and sexual orientation / gender identity wording is flagged, with a note that protection depends on state and local law. The tool does not decide which laws apply to a given property.

#### Is it AI?

No. Deterministic rules, so results are repeatable and auditable.

### Limitations

- English only; US federal rules plus a few common state and local themes. Not built for UK, EU or Canadian rules.
- Word-based: it cannot see photos, models in images, or targeting choices in ad platforms.
- Unusual phrasing, slang or misspellings can be missed, and rare legitimate uses can be flagged. Review every flag in context.
- The HUD 1995 memo is guidance, not a regulation; courts and local agencies may take different views.

### Other tools by Ultimate Foresight

- [Ad Copy Policy Checker for Meta, Google & TikTok](https://apify.com/ultimatemc/ad-copy-policy-checker): checks ad text against Facebook, Instagram, Google Ads and TikTok ad policies before you submit.
- [H-1B Visa Sponsor Checker & Score for Job Listings](https://apify.com/ultimatemc/h1b-visa-sponsor-score): adds Department of Labor H-1B sponsorship history and a 0-100 score to company names or job listings.
- [Chain vs Independent Labeler for Google Maps Leads](https://apify.com/ultimatemc/chain-vs-independent-labeler): labels local businesses as chain, franchise or independent.
- [YouTube Monetization Checker for Scripts & Titles](https://apify.com/ultimatemc/youtube-script-monetization-checker): pre-checks titles, descriptions and scripts for wording that leads to limited or no ads.
- [Etsy & eBay Listing Policy & Banned Item Checker](https://apify.com/ultimatemc/etsy-ebay-listing-policy-checker): pre-checks marketplace listings for prohibited items, counterfeit wording and off-platform contact.
- [Job Scam Detector & Trust Score for Job Postings](https://apify.com/ultimatemc/job-posting-trust-score): scores job postings 0-100 for scam and ghost-job signals.
- [SAM.gov Amendment & Opportunity Change Tracker](https://apify.com/ultimatemc/sam-gov-opportunity-change-detector): shows what changed between versions of a SAM.gov notice: deadlines, set-asides, NAICS and attachments.
- [Product Recall Checker for Brands, UPCs & Products](https://apify.com/ultimatemc/product-recall-matcher): matches your brands, products, UPCs or model numbers against CPSC, FDA and NHTSA recalls.
- [App Store & Google Play Listing Policy Checker](https://apify.com/ultimatemc/app-store-listing-policy-checker): pre-checks app names, subtitles and descriptions against Apple and Google Play metadata rules.
- [Company Name Normalizer & Deduplicator for CRM](https://apify.com/ultimatemc/company-name-canonicalizer): cleans company names (Inc, LLC, d/b/a, aliases) and groups duplicates in CRM, lead or vendor lists.
- [FCC Covered List & Section 889 Bulk Screener](https://apify.com/ultimatemc/fcc-covered-list-screener): screens FCC IDs and brand names against the public FCC Covered List, with sources and timestamps (screening aid only).
- [Green Claims Checker: EU Greenwashing Ban & FTC](https://apify.com/ultimatemc/green-claims-checker): flags risky eco-friendly, carbon neutral and recyclable wording under EU, FTC and UK CMA rules.
- [Influencer #ad Disclosure Checker: FTC & ASA](https://apify.com/ultimatemc/influencer-ad-disclosure-checker): flags influencer posts with missing or unclear #ad labels under FTC, ASA/CAP and CMA rules.
- [Job Title to SOC Code Mapper with O\*NET Data](https://apify.com/ultimatemc/job-title-soc-code-mapper): maps job titles to SOC and O\*NET-SOC codes in bulk, with seniority and tech skills found in the posting.
- [Shrinkflation Detector for Grocery Price Data](https://apify.com/ultimatemc/shrinkflation-detector): finds smaller packs at the same or higher price by comparing two runs of a grocery scraper, with unit price before and after.
- [Job Ad Discrimination Checker for Job Posts (US)](https://apify.com/ultimatemc/job-ad-discrimination-checker): flags age, sex, national origin, citizenship and other discriminatory wording in job posts, with EEOC and DOJ sources (screening aid only).
- [Amazon Listing Policy Checker for Titles & Bullets](https://apify.com/ultimatemc/amazon-listing-policy-checker): flags pesticide, FDA and disease claims and Amazon title and bullet rule breaks in bulk, with policy links and fixes.
- [Walmart Listing Policy Checker for Titles & Copy](https://apify.com/ultimatemc/walmart-listing-policy-checker): flags promotional phrases, retailer names, URLs, long titles and pesticide or FDA claims in Walmart Marketplace listings, with policy links and fixes.
- [TikTok Shop Listing Policy Checker for Products](https://apify.com/ultimatemc/tiktok-shop-listing-policy-checker): flags off-platform links, dupe wording, weight-loss, disease and FDA claims and title rule breaks in TikTok Shop listings.
- [Supplement & Cosmetic Claims Checker: FDA & FTC](https://apify.com/ultimatemc/supplement-cosmetic-claims-checker): flags disease, drug and 'FDA approved' claims and missing supplement disclaimers in supplement and beauty product copy, with FDA and FTC sources (screening aid only).
- [Rental Listing Scam Checker for Craigslist & FB](https://apify.com/ultimatemc/rental-listing-scam-checker): scores rental listings 0-100 for FTC-listed scam signs like wire or gift card payment, deposit before viewing and rent far below similar listings.
- [GTIN, UPC & EAN Barcode Validator (Check Digit)](https://apify.com/ultimatemc/gtin-barcode-validator): checks UPC, EAN, GTIN-14 and ISBN codes for wrong check digits, lost leading zeros, scientific notation, restricted prefixes and duplicates before a feed upload.
- [Fake Review Checker: Incentivized & Duplicates](https://apify.com/ultimatemc/review-integrity-checker): screens scraped reviews for incentivized or insider wording, copied text, rating bursts and rating/text mismatches named in the FTC 2024 fake-review rule.
- [Facebook Marketplace Listing Policy Checker](https://apify.com/ultimatemc/facebook-marketplace-listing-policy-checker): flags Marketplace listings that may break Meta's Commerce Policies (weapons, vapes, Rx, animals, gift cards, services, counterfeits and more), with policy links.
- [Fake Discount Checker: EU 30-Day Prior Price](https://apify.com/ultimatemc/discount-claim-checker): checks 'was' and strikethrough prices against your own price history for 30-day prior-price, raise-then-discount and wrong-badge issues.
- [SMS Marketing Message Checker: STOP & 10DLC](https://apify.com/ultimatemc/sms-marketing-message-checker): pre-checks SMS marketing texts for segment count, STOP opt-out wording, URL shorteners, SHAFT content and quiet hours.
- [Hidden Fee Checker: Hotel, Rental & Ticket Prices](https://apify.com/ultimatemc/hidden-fee-price-checker): flags headline prices that leave out mandatory resort, service or booking fees under the FTC junk fees rule (16 CFR 464), with sources per finding.
- [EU GPSR Listing Checker for Amazon, eBay & Shops](https://apify.com/ultimatemc/gpsr-listing-checker): checks listings for the EU GPSR Article 19 online-sale details: manufacturer, EU responsible person, product identifier, picture and warnings.
- [Food Allergen Label Checker: US, EU & AU](https://apify.com/ultimatemc/food-allergen-label-checker): compares ingredient lists with the 'Contains' statement for US 9, EU/UK 14 and Australian PEAL allergens and flags gaps and conflicting free-from claims.
- [Toy Choking Hazard Warning Checker (CPSC)](https://apify.com/ultimatemc/toy-choking-warning-checker): flags toy listings missing the CPSC choking-hazard warnings for small parts, balloons, small balls and marbles, with age-grade checks.
- [Textile Fiber Label Checker: Bamboo & Origin](https://apify.com/ultimatemc/textile-fiber-label-checker): flags 'bamboo' claims that should say rayon, fiber percentages that don't add up, mismatched silk or cashmere titles and missing Made in USA/Imported.
- [Prop 65 Warning Checker for Product Listings](https://apify.com/ultimatemc/prop65-warning-checker): flags Prop 65 safe-harbor warnings missing 'WARNING', the P65Warnings.ca.gov link or a chemical name, old short forms, and listed chemicals mentioned with no warning.
- [Unit Price Checker for Grocery & Retail Listings](https://apify.com/ultimatemc/unit-price-checker): parses pack sizes, recomputes the price per kg, litre or item, and flags missing or wrong unit prices in grocery and retail data.
- [Made in USA Claim Checker for Product Listings](https://apify.com/ultimatemc/made-in-usa-claim-checker): flags unqualified 'Made in USA' claims next to imported or foreign-origin details under the FTC rule (16 CFR 323), with sources per finding.
- [Subscription Auto-Renewal Disclosure Checker](https://apify.com/ultimatemc/auto-renewal-disclosure-checker): checks subscription and free-trial offer text for missing renewal, price, billing period and cancellation disclosures under California law and FTC ROSCA.
- [Email CAN-SPAM Checker & Unsubscribe Header Test](https://apify.com/ultimatemc/email-can-spam-checker): pre-checks marketing emails for missing unsubscribe links or postal address, misleading subjects and Google/Yahoo one-click unsubscribe headers.

Found a false positive or a missed phrase? Open an issue on the **Issues** tab with the listing text, and we'll review the rule.

# Actor input Schema

## `texts` (type: `array`):

Real estate listing descriptions, rental ads or MLS remarks, one per line. The prefill has three examples; replace them with your own.

## `items` (type: `array`):

One object per listing with your own "id" and any of "title", "description", "remarks", "text". Example: \[{"id": "MLS-123", "title": "3BR ranch", "description": "Great for families..."}]

## `datasetId` (type: `string`):

Check the output of another Actor, for example a Zillow, Realtor.com, Redfin or Craigslist scraper. Title, description and remarks fields are detected automatically (HTML is stripped).

## `textFields` (type: `array`):

Field names to read from dataset items, e.g. "description". Leave empty to use common title/description/remarks fields.

## `minSeverity` (type: `string`):

'medium' (default) shows explicit preferences and 'ideal buyer' wording. 'low' also shows style notes such as 'master bedroom' that HUD says are not violations but some MLSs ask to avoid.

## `onlyFlagged` (type: `boolean`):

Skip listings with no findings at the chosen severity (you are only charged for saved rows).

## `maxItems` (type: `integer`):

Stop after this many listings.

## Actor input object example

```json
{
  "texts": [
    "Charming 2BR condo, perfect for young professionals or empty nesters. Adults only, no section 8. Walk to shops and the light rail.",
    "Spacious 4 bed, 3 bath single-family home with a family room, primary suite, fenced yard and walk-in closets. Quiet street, great view. Equal Housing Opportunity.",
    "Room for rent in a Christian home. English speaking tenants preferred, no kids."
  ],
  "minSeverity": "medium",
  "onlyFlagged": false,
  "maxItems": 1000
}
```

# Actor output Schema

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

No description

# 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 = {
    "texts": [
        "Charming 2BR condo, perfect for young professionals or empty nesters. Adults only, no section 8. Walk to shops and the light rail.",
        "Spacious 4 bed, 3 bath single-family home with a family room, primary suite, fenced yard and walk-in closets. Quiet street, great view. Equal Housing Opportunity.",
        "Room for rent in a Christian home. English speaking tenants preferred, no kids."
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ultimatemc/fair-housing-listing-checker").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 = { "texts": [
        "Charming 2BR condo, perfect for young professionals or empty nesters. Adults only, no section 8. Walk to shops and the light rail.",
        "Spacious 4 bed, 3 bath single-family home with a family room, primary suite, fenced yard and walk-in closets. Quiet street, great view. Equal Housing Opportunity.",
        "Room for rent in a Christian home. English speaking tenants preferred, no kids.",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("ultimatemc/fair-housing-listing-checker").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 '{
  "texts": [
    "Charming 2BR condo, perfect for young professionals or empty nesters. Adults only, no section 8. Walk to shops and the light rail.",
    "Spacious 4 bed, 3 bath single-family home with a family room, primary suite, fenced yard and walk-in closets. Quiet street, great view. Equal Housing Opportunity.",
    "Room for rent in a Christian home. English speaking tenants preferred, no kids."
  ]
}' |
apify call ultimatemc/fair-housing-listing-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ultimatemc/fair-housing-listing-checker"
        }
    }
}
```

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/jXOmMd5eE9bDTf72b/builds/bwNDFAuTn3l93PLYt/openapi.json
