← back to Re Flyer Aggregator

data/source-registry.json

30 lines

{
  "_meta": {
    "purpose": "Ranked, compliance-tiered registry of where to LOCATE real-estate flyers / offering memoranda (OMs) / property one-sheets for the RE builds (usre, CRCP, RENTV).",
    "compliance_rule": "re-directory three-gate: copyright AND contract(ToS) AND privacy. CORRECTION (codex, 2026-08-19): 'publicly accessible' != 'authorized for automated harvesting'. Automated access to a source is governed by ITS ToS + robots.txt, independent of whether a human can view the page. Default automated posture = discovery of BROKERAGE-OWNED public landing-page URLs only, robots-respecting + rate-limited; store the URL + provenance, never the file. Downloading/re-hosting = TIER 3 GATED.",
    "natural_deal_key": "recent_commercial_deals is a VIEW keyed on (county_fips, doc_number) -- no synthetic deal_id. Assets are property/listing-scoped and may link to 0..n deals (deal key nullable).",
    "updated": "2026-08-19",
    "ticket": "TK-10708",
    "codex_reviewed": true
  },
  "tiers": {
    "1_first_party_and_broker_landing": "OUR network (RENTV) + BROKERAGE-OWNED public property landing pages. Discover the public URL only; respect robots.txt; rate-limit; no login/data-room/signed-link traversal. Record rights_basis + last_verified_at.",
    "2_self_generated_recap": "Render OUR OWN CLOSED-SALE deal-recap one-sheet from PUBLIC-RECORD data (recent_commercial_deals) using RENTV bloom-flyers templates. Use ONLY public-record facts + our own brand marks -- NO third-party photos, maps, or logos. Frame as a closed-sale recap, NOT an active-listing OM. Feeds RENTV's paid 'Property Spotlight Eblast' product.",
    "3_marketplace_or_rehost_GATED": "CRE MARKETPLACES (Crexi, LoopNet, CityFeet, Brevitas, Biproxi, CommercialCafe) explicitly restrict automated access under their ToS / CoStar licensing -- automated harvesting is GATED even for LINKS. Also gated: downloading or re-hosting ANY third-party OM/flyer PDF. Draft to pending-approval; never auto-run. Human manual reference of a public listing URL is fine; a bot fetching it is not."
  },
  "sources": [
    { "name": "RENTV deal announcements / Property Spotlights", "kind": "first_party", "tier": 1, "url": "https://rentv.com", "automated_ok": "yes (our own network)", "coverage": "CA-heavy + TX/AZ/PNW" },
    { "name": "Self-generated closed-sale recap (bloom-flyers template)", "kind": "generated", "tier": 2, "url": null, "automated_ok": "yes (public-record facts + our template only)", "coverage": "national" },
    { "name": "Brokerage-owned property landing pages", "kind": "brokerage", "tier": 1, "url": null, "automated_ok": "discovery of public URL only, robots-respecting + rate-limited", "notes": "CBRE, JLL, Cushman & Wakefield, Colliers, Marcus & Millichap, Newmark, Kidder Mathews, Berkadia -- each broker's OWN site. Marcus & Millichap + Berkadia are debt/private-capital-forward = best fit for Frank/CRCP. Prefer joining CRCP firm_site/broker_website to a deal's grantor/grantee firm to find the listing broker's own OM URL.", "coverage": "national" },
    { "name": "Owner / developer / REIT press rooms", "kind": "press_room", "tier": 1, "url": null, "automated_ok": "public press releases, robots-respecting", "notes": "Deal PR often links the marketing one-sheet from the principal's own newsroom -- first-party, lowest risk.", "coverage": "national" },
    { "name": "Brokerage RSS / sitemap feeds", "kind": "discovery", "tier": 1, "url": null, "automated_ok": "discovery aid only", "notes": "Sitemaps/RSS help FIND listing pages; they do NOT grant reuse permission. Discovery != rights.", "coverage": "national" },
    { "name": "County recorder / assessor documents", "kind": "public_record", "tier": 1, "url": null, "automated_ok": "public record", "notes": "PUBLIC-RECORD provenance for a deal (doc_number). NOT a marketing flyer -- classify separately (municipal/public-record packet, not an OM).", "coverage": "per-county" },
    { "name": "Crexi", "kind": "marketplace", "tier": 3, "url": "https://www.crexi.com/tos", "automated_ok": "NO -- ToS prohibits scraping (GATED)", "coverage": "national" },
    { "name": "LoopNet / CityFeet (CoStar)", "kind": "marketplace", "tier": 3, "url": "https://www.costar.com/about/termsofuse", "automated_ok": "NO -- CoStar restrictive license (GATED)", "coverage": "national" },
    { "name": "Brevitas", "kind": "marketplace", "tier": 3, "url": "https://www.brevitas.com/page/terms", "automated_ok": "NO -- ToS prohibits scraping (GATED)", "coverage": "national" },
    { "name": "Biproxi / CommercialCafe", "kind": "marketplace", "tier": 3, "url": null, "automated_ok": "NO -- treat as gated pending per-site ToS review", "coverage": "national" }
  ],
  "broker_link_enrichment": "CRCP already has firm_site + broker_website tables -- join those to a deal's grantor/grantee firm to resolve the listing broker's OWN domain, then discover that broker's public property landing page (Tier 1). This is the codex-recommended highest-leverage path.",
  "first_move": "Provenance probe: take ~25 recent deals, resolve candidate broker/firm domains (CRCP firm_site/broker_website), and produce a LOCAL provenance report (matched asset, source page, document link, asset date, match confidence) BEFORE building a broad crawler. Tests availability + match quality + CRCP usefulness cheaply."
}