Listing wording like "perfect for young professionals" or "no kids" can raise Fair Housing problems, and users of listing tools, CRMs and property management apps can paste it in without realizing. I built a small API that flags risky phrases so your app can catch them first.
Disclosure: I built this API. It's rule-based, not legal advice, and it will have false positives and misses.
Make a request
curl --request POST \ --url https://fair-housing-listing-checker.p.rapidapi.com/v1/check \ --header 'Content-Type: application/json' \ --header 'X-RapidAPI-Host: fair-housing-listing-checker.p.rapidapi.com' \ --header 'X-RapidAPI-Key: YOUR_KEY' \ --data '{"text":"Cozy 2BR. Perfect for young professionals. No kids allowed."}' Read the response
{ "risk_level": "high", "risk_score": 55, "flags": [ { "phrase": "young professionals", "start": 22, "end": 41, "category": "familial_status", "severity": "medium", "reason": "Age or household-type preference language is commonly flagged as steering.", "suggestion": "Remove the audience reference and describe the property." }, { "phrase": "No kids", "start": 43, "end": 50, "category": "familial_status", "severity": "high", "reason": "Excluding families with children is a familial-status violation on its face.", "suggestion": "Remove it. Describe the unit (bedrooms, square footage, features) instead." } ] } (Trimmed for readability.) Each flag has a category, severity (high, medium, low), the exact position in your text, a reason, and a suggested rewrite. It covers familial status, sex, race/color/national origin, religion, disability and source of income, and it stores nothing.
Highlight flagged phrases in your UI
Use start and end to mark the exact wording:
const esc = (s) => s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """); function highlight(text, flags) { let out = "", i = 0; for (const f of flags) { out += esc(text.slice(i, f.start)); out += `<mark class="${f.severity}" title="${esc(f.reason)}">${esc(text.slice(f.start, f.end))}</mark>`; i = f.end; } return out + esc(text.slice(i)); } Call the API from your backend so your key stays out of browser code. Show each suggestion next to its highlight so users can fix wording quickly. You can also check up to 10 listings in one call with /v1/check/batch.
Caveats
It's pattern matching, not a lawyer. Some rules are advisory only (like "master bedroom"), and source-of-income rules matter only where local law covers it. Treat results as a prompt for human review.
Try it
Free tier of 50 requests a month: Fair Housing Listing Checker on RapidAPI


