Knowledge base

Developer reference

DFX Intelligence MCP server

One connection across every DFX graph: US real estate (properties, parcels, ownership, recorded sales, commercial debt maturities), private equity, private credit, venture capital, family offices, independent sponsors and their capital providers, registered investment advisers, allocators and real estate funds, with cross-graph identity, relationships, events, matching and verification. 134 tools, all free, read-only and unauthenticated. Coverage is uneven by design and the gaps are printed below.

Connect

Short answer

One HTTPS endpoint speaking Model Context Protocol over JSON-RPC. No signup, no API key, no OAuth. A plain GET on the endpoint returns the full tool schemas so you can evaluate it before calling anything.

# read the schemas, no handshake required
curl -s https://exchange-production-9123.up.railway.app/mcp

# call a tool
curl -s https://exchange-production-9123.up.railway.app/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":
       {"name":"resolve_address","arguments":
        {"address":"100 Binney St","city":"Cambridge","state":"MA"}}}'

Registry entry: io.github.Capital-W-Holdings/us-property-parcel-real-estate-debt. Transport is Streamable HTTP. Both the current 2026-07-28 revision and the older initialize handshake are served, because most deployed clients still send the latter.

Install it in your agent

Short answer

Nothing here is discovered by an agent on its own. A person adds the endpoint to the client they already use, and from then on the agent can call it. Every line below was run against production rather than written from a template.

Claude Code. One command, no config file. Verified against this endpoint: the server reports Connected on the next claude mcp list.

claude mcp add --transport http dfx-real-estate https://exchange-production-9123.up.railway.app/mcp

Claude Desktop. Settings, then Connectors, then Add custom connector, and paste the endpoint. On a build with no custom connector option, put this in claude_desktop_config.json instead and restart the app. The bridge exists because that config accepts a subprocess rather than a URL; it is not a DFX requirement.

{
  "mcpServers": {
    "dfx-real-estate": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://exchange-production-9123.up.railway.app/mcp"]
    }
  }
}

Cursor, Windsurf and Cline. A remote server is a URL entry in ~/.cursor/mcp.json, .cursor/mcp.json for one project, or the equivalent file in the other two.

{
  "mcpServers": {
    "dfx-real-estate": { "url": "https://exchange-production-9123.up.railway.app/mcp" }
  }
}

VS Code. .vscode/mcp.json in the workspace, which uses servers rather than mcpServers and wants the transport named.

{
  "servers": {
    "dfx-real-estate": { "type": "http", "url": "https://exchange-production-9123.up.railway.app/mcp" }
  }
}

Anything else that speaks MCP over stdio only. npx -y mcp-remote https://exchange-production-9123.up.railway.app/mcp puts a local stdio process in front of the HTTPS endpoint. No key is passed through it because there is no key.

There is no account to create and no credential to rotate, so an install that works once keeps working. If a client asks for an API key before it will save the server, the field can be left empty or filled with any string: the endpoint does not require one and never checks it.

The 134 tools

Read from tools/list when this page was rendered, so the table cannot say a number production does not. Real estate first, then the family office, independent sponsor and venture capital tools, then the tools that work across every domain.

ToolTakesReturns
resolve_addressaddress, city?, state?canonical DFX ids with the match basis and any ambiguityReturns typed objects: a property (national federal-programme multifamily) and/or a parcel (Massachusetts assessor layer). These are separate populations that barely overlap, so an address may return one, the other, or both.
resolve_organizationnamecanonical entity ids for owners, managers, lenders, servicersA name is treated as a blocking key and never as an identity, so ALL candidates are returned rather than a guess. Person lookup is deliberately not offered.
get_occupancydfx_id?, company?, address?, city?, state?, limit?Two directions from one call
get_property_recorddfx_idstate, dated events, relationships, debt with maturity dates, recorded salesRecorded sales carry consideration, registry book and page, and both the instrument's full price and this parcel's allocated share.
search_property_eventsevent_type?, state?, within_days?, limit?dated events over properties and parcels, with provenanceAn unrecognised event_type is REFUSED with the served vocabulary, never answered with an empty list.
search_bank_cre_exposurestate?, name?, min_cre_to_equity_pct?, max_cre_to_equity_pct?, above_guidance?, min_assets_usd?, min_noncurrent_pct?, sort?, limit?Search 4,313 FDIC-insured banks by their commercial real estate book at the June 2026 call report: total CRE, construction and multifamily in dollars and against equity and assets, noncurrent and net charge-off ratios, ROA, and two screens against the 2006 Interagency CRE guidance (construction over 100%, total CRE over 300%)
search_subsidised_housingstate?, city?, program?, min_waiting_months?, min_occupancy?, max_occupancy?, min_units?, limit?Search HUD's project-level Picture of Subsidized Households: 29,455 subsidised projects nationally, one row per project and programme, with units AVAILABLE (HUD's subsidised units available, which excludes units offline for rehab or disposition; occupancy is measured against these, so 100% of 20 available can be 20 of 50 built), occupied units, occupancy percent, MONTHS ON THE WAITING LIST, average rent, average household income, average tenure and what HUD pays per unit per month
search_parcelsfilters over the parcel layerparcels by attribute rather than by an address you already hadMassachusetts only, like everything in the parcel layer. This is the way in when you do not already know the address you are looking for.
what_can_dfx_answerobjective (natural language)whether DFX can help, which tool to call, the arguments, and a free sampleSays no clearly when the answer is no, and records the ask so unmet demand shapes what gets built.
changes_sincesince (opaque cursor)?, event_type?, state?, place_dfx_id?, limit?what DFX has LEARNED since your cursor, plus the cursor to use nextOrdered by when DFX came to know a fact, not by when the fact occurred: a deed signed in March is recorded in August, so polling search() with a date filter would show you the same rows forever. Call with no cursor to take a position and receive nothing; call again with what you were given. The cursor is opaque, and an empty delta returns it unchanged.
debt_maturity_schedulestate, within_days?, limit?the LOAN rather than the event: principal, lender, instrument, origination, maturity, and the secured buildingFree. Up to 200 loans per call for one state, with a population count so a capped answer is never mistaken for a complete one. It is the loan tape rather than the event tape, and it reaches loans the event index does not.
dfx_coveragenothingmeasured coverage, served sources, object types and the known gapsCall this before concluding that an empty result means an absent market.
search_family_officesquery?, state?, city?, states?, region?, sector?, industries?, allocates_to_managers?, has_event_type?, event_since?, co_invested_with?, counterparty_kind?, asset_class?, invests_directly?, class?, min_aum_usd?, recent_activity_days?, has_sponsor_relationships?, has_real_estate?, sort?, limit?, cursor?Family offices as compact cards: class (single, multi, embedded...) with confidence, whether they invest directly, sectors and asset classes on record, check size where stated, direct investment count, latest investing activity (private or public 13F/13D), and counts of people, sponsor and real estate relationships
rank_family_officesindustries?, asset_classes?, stages?, investment_types?, control?, direct_investing?, allocates_to_managers?, capital_min_usd?, capital_max_usd?, check_min_usd?, check_max_usd?, backs_independent_sponsors?, sponsor_min_deals?, sponsor_industries?, co_invested_with?, counterparty_kinds?, counterparty_min?, event_types?, event_since?, event_within_days?, invested_since?, invested_within_days?, has_reachable_decision_maker?, investment_decision_maker_only?, contact_tier?, states?, regions?, cities?, metro?, classes?, single_family_only?, min_identity_confidence?, require?, prefer?, limit?THE tool for any family office question with criteria (sector, check size, capital, sponsors, co-investors, recent events, geography, reachable people)
get_family_officedfx_idThe full card for one family office: profile, AUM / RAUM / 13F value kept apart with their as-of dates, behaviour, the people who run it with roles, its observed investments, relationships, recent events, evidence rows and cross-graph links (same_as by shared CRD/CIK/EIN)
search_family_office_investmentsoffice_dfx_id?, sector?, asset_class?, state?, investment_kind?, since?, include_candidates?, limit?Dated investments family offices have been observed making: target, sector, asset class, structure, control or minority, lead or participant, amounts where disclosed (with basis), board seats, exits, and the source quote
search_independent_sponsorsquery?, state?, city?, include_unverified?, sector?, kind?, min_confidence?, sort?, limit?Verified independent sponsor firms (deal-by-deal acquirers of lower middle market companies) as compact cards: verification status, classification, mandate summary, principals, vehicle count and latest vehicle, and how many companies resemble the sponsor's observed deals
get_independent_sponsordfx_idThe full card for any entity on the sponsor graph: a sponsor (with its verification status, the companies resembling its observed deals as counted facts and reasons with no score, its announced transactions and its observed capital relationships), a capital provider (with fund size, average investment, SBIC status, strategy, whether making new investments) or a private company (with its transition signals and sponsor matches)
search_sponsor_capital_providersquery?, state?, provider_type?, sector?, sbic_licensed?, making_new_investments?, min_fund_size_usd?, sort?, limit?SBICs, mezzanine and private equity funds, and family offices observed providing capital to independent sponsors: provider type, strategy, fund style, fund size and average investment (kept apart), vintage, SBIC licence, whether making new investments, mandate summary
search_private_companiesquery?, vertical?, subsector?, state?, city?, naics_prefix?, min_opportunity?, min_participants?, max_participants?, record_status?, sort?, limit?US private companies whose filings (Form 5500 plan history, final filings, ownership changes) record a change: vertical, plan participants as a size proxy, EBITDA band where derivable, and rule scores 0 to 100 for opportunity, dealability, transition readiness and urgency, each backed by observations
search_sponsor_dealssponsor_dfx_id?, target_dfx_id?, txn_type?, state?, since?, query?, limit?Announced acquisitions, recapitalisations and exits by independent sponsors: sponsor, target, dates, enterprise value range where disclosed, structure, parties and source
search_pending_ownership_changesstate?, view?, tag?, query?, changed_since?, limit?OFFICIAL state records that a skilled nursing facility's ownership, control or operator is changing, before the change takes effect (Kentucky, New York, Rhode Island, New Jersey, Maine): facility, CCN, beds, current and proposed operator, real estate owner where public, the state's own stage, record class (OFFICIAL_PENDING_FILING, DERIVED_STATUS, CONFIRMED_EFFECTIVE_CHANGE, WITHDRAWN_OR_DENIED), first public record date, days pending, planned close, evidence tags with their facts, source URL and last checked
search_vc_firmsquery?, state?, city?, sector?, stage?, active_only?, raising_only?, emerging_manager?, min_investments?, recent_activity_days?, sort?, limit?Venture firms as compact cards: stated sectors, stages, geography and check size beside OBSERVED behaviour (investments in the last 6 and 12 months, lead count, behaviour summary and divergence from the stated thesis), funds with the latest vintage and Form D, people and partner counts
get_vc_firmdfx_idThe full card for any entity on the venture graph: a firm (with recent investments, co-investors and funds), a person (with attributed investments and board seats), a fund (with all seven fund amounts kept apart and its lifecycle state) or a portfolio company (with its investors)
search_vc_investmentsinvestor_dfx_id?, company_dfx_id?, partner_dfx_id?, stage?, state?, since?, lead_only?, query?, limit?Investor-by-investor participations in rounds: investor, company, fund, the partner attributed (with attribution level), role (lead or participant), new or follow-on, board seat, round type, stage and amount (the round's, never the check), and the source quote
search_vc_fundsquery?, organization_dfx_id?, lifecycle_state?, fundraising_state?, min_vintage?, max_vintage?, strategy?, min_form_d_sold_usd?, sort?, limit?Funds with every amount under its own name (target, first close, final close, announced size, Form D offering and sold, ADV gross asset value), vintage and basis, lifecycle state, investor counts, LP count
search_pe_firmsquery?, sector?, class?, class_state?, size_band?, state?, min_transactions_36m?, sort?, limit?, cursor?Private equity firms (management companies and advisers) as compact cards: the classifier's class with its state, confidence and basis; size band with the evidence it was sized on; fund counts, latest vintage and Form ADV gross assets reported for private equity funds since 2024 (reported gross assets, NOT fund size or dry powder); portfolio and transaction counts (36 and 12 months); team counts; acquisition appetite and investment velocity values
get_pe_firmdfx_idThe full card for a private equity firm: identity (website, HQ, ADV filing dates), classification with basis and the size band's definition and evidence, classification history, stated criteria (sectors, EBITDA, EV, equity check, control) kept apart from observed behaviour, funds summary and its ten latest funds, team summary and current people with titles, portfolio summary with recent investments and transactions, top counterparties (lenders, advisers, placement agents, co-investors with shared-deal counts), every score WITH its components and missing_inputs, recent events, evidence, and same_as links to the family office, sponsor and venture graphs by shared identifier
search_pe_fundsquery?, organization_dfx_id?, adv_fund_type?, min_vintage?, max_vintage?, lifecycle_state?, min_adv_gav_usd?, sort?, limit?, cursor?Funds on the private equity graph with every amount under its own name and beside its basis: target, first close, final close, announced size, Form D offering and sold, and the Form ADV gross asset value with its as-of date
get_pe_funddfx_idOne fund: manager, vintage and basis, every amount kept apart with its basis (adv_gross_asset_value is reported gross assets, not fund size or dry powder), the year-by-year Form ADV reporting tape (gross assets, owners, minimum investment, ownership percentages), LP commitments where disclosed, relationships (placement agents, auditors, principals), events and evidence
search_pe_transactionsfirm_dfx_id?, target_dfx_id?, platform_dfx_id?, transaction_type?, state?, since?, add_on_only?, control_status?, sector?, query?, limit?Acquisitions, add-ons, recapitalisations, carve-outs, secondary sales and exits on the private equity graph: type, status, announced and closed dates, target with industry and state, platform for an add-on (with the basis for calling it one), control, every party with role, side and attribution, and money (enterprise value, purchase price, equity value, target revenue and EBITDA) ONLY where disclosed, each beside its basis
search_pe_platformsquery?, state?, sector?, min_add_ons_24m?, owner_dfx_id?, sort?, limit?Companies that act as a platform (a sponsor's platform investment, or a company that has made add-ons): industry, add-on counts (total and last 24 months) and latest add-on date, current owners with role, status and dates, ownership since, and the platform acquisition activity and exit readiness scores
find_pe_buyers_for_companydfx_id, limit?Computed buyer_for_company matches from the private equity matcher for one company (a dfx:pe:, dfx:isi: or dfx:vc: company id): each firm with the matcher's reasons, blockers, why_now and comparable transactions verbatim, the deal partner where attributed, score, confidence, model version and computed date
find_pe_companies_for_buyerdfx_id, limit?Computed company_for_buyer matches for one private equity firm (dfx:pe: id): each company (on the private equity, sponsor or venture graph, with its dfx id) with the matcher's reasons, blockers, why_now and comparables verbatim, score, confidence and computed date
find_pe_addons_for_platformdfx_id, limit?Computed addon_for_platform matches for one platform (a dfx:pe: company id from search_pe_platforms): each candidate company with the matcher's reasons, blockers, why_now and comparable add-ons verbatim, the platform's owner, score, confidence and computed date
search_riaquery?, entity_type?, state?, city?, firm_class?, wealth_only?, min_raum_usd?, max_raum_usd?, min_advisors?, private_funds_only?, include_former?, firm_crd?, fund_type?, sort?, limit?, cursor?Registered investment advisers (Form ADV: RAUM, clients by type, employees, advisors on IAPD, private funds, class such as INDEPENDENT_WEALTH or WIREHOUSE), registered advisors (IAPD: current firm, registration history counts, exams, designations) and the private funds advisers report, as compact cards with dfx:ria: ids
get_ria_firmdfx_idThe full card for one registered investment adviser plus its people flows (joins, departures, net, rates over 90 days, 12 and 36 months), growth between annual amendments (RAUM, employees, offices, funds one and three years back), offices (city, state, postal, employees), owners with control persons first (Schedule A and B), affiliates (Item 7.A related persons with roles), its ten largest private funds with the count still reported, teams that left or arrived, the latest departures and arrivals, recent events, and same_as links to the private equity, venture, family office and sponsor graphs by shared CRD, CIK or fund id
get_ria_advisordfx_idOne IAPD-registered advisor: name, current firm with class and tenure, employment history as dated registration spans in order (firm, begin, end, current), every firm change as two registration dates (bulk re-registrations and departures included and labelled), the teams the person moved with, exams, designations, industry start, and recent events
resolve_ria_advisorname, firm?, firm_crd?, crd?, state?, limit?Resolve an advisor by name AND a firm (name or CRD), or by individual CRD, to one person card
search_ria_fundsquery?, firm_dfx_id?, fund_type?, status?, state?, form_d_file_number?, min_gav_usd?, include_custodians?, sort?, limit?, cursor?Private funds from Form ADV Schedule D 7.B.(1): fund name, SEC fund id (805-...), type, gross asset value with its as-of date (reported gross assets, NOT fund size or commitments), owners, minimum investment, ownership percentages, 3(c)(1) or 3(c)(7), master or feeder, first and last reported, status (reported or dropped) and the Form D file number where the adviser gave one
search_ria_advisor_movesfrom_dfx_id?, to_dfx_id?, advisor_dfx_id?, move_type?, since?, until?, include_bulk?, include_departures?, limit?, cursor?Advisors who left one firm and registered at another: the person, from and to firms with class, the registration end and begin dates, the gap, and the move type (WIREHOUSE_TO_RIA, IBD_TO_RIA, RIA_TO_RIA, ...)
search_ria_teamsfrom_dfx_id?, to_dfx_id?, kind?, move_type?, state?, min_members?, since?, until?, include_members?, sort?, limit?, cursor?Teams: clusters of advisors who left the same firm for the same firm from the same branch state within a 14-day chain, with member count, dates, spread, the from firm's headcount that day and the share that left (an estimate on a survivor-biased tape), whether a succession was filed, and the kind as a printed rule: TEAM_LIFT_OUT (2 to 49), LARGE_TRANSFER (50 or more), FIRM_ABSORBED (half or more of the firm, or a succession naming it), CHANNEL_CHANGE (the two CRDs are one enterprise: same name, same 75%+ owner around the move, or one name a prefix of the other; enterprise_evidence says which; left out unless asked for by kind)
search_ria_makind?, firm_dfx_id?, acquirer_crd?, target_crd?, acquirer?, target?, since?, until?, min_advisors?, limit?, cursor?RIA M&A from three factual sources, each labelled: successions the acquirer swore on Form ADV Item 4 (succession); firms whose advisors re-registered whole at one other firm (absorbed, a rule over registration dates); and firms that left the SEC adviser roster (roster_exit; the reason is not stated)
search_ria_changessince, until?, event_type?, signal_family?, dfx_id?, limit?, cursor?The RIA event tape by OBSERVATION time: advisor firm changes and departures, team lift-outs and absorptions, successions, RAUM and headcount changes, control persons joining or leaving, first ADV filings, roster exits, each with occurred_at (the registration or filing date), observed_at (when DFX wrote it), fact class, magnitude, previous and new state, evidence and source
get_ria_trendsview?, state?, firm_class?, wealth_only?, min_advisors?, min_raum_usd?, sort?, limit?Three derived views from the RIA lane's aggregates: state_stats (SEC-registered firms, wealth firms, RAUM, private funds, advisors, joins, departures and new firms in the last year, by state); flows (firms ranked by departures, joins, net, departure rate or join rate over 12 months, with 90-day and 36-month counts, filter by state, class or size); growth (firms ranked by RAUM growth or decline between annual amendments, with employees, offices and fund counts one and three years back; under $100M RAUM excluded by default)
get_ria_capital_linksdfx_id, limit?For one RIA firm (or one private fund): every link to the private equity, venture, family office and sponsor graphs written on a shared identifier, with the basis printed on each link: the firm's own CRD or CIK, and each private fund of the firm that a private equity or venture graph row holds under the same SEC fund id (805-...)
get_ria_practicedfx_idWhat a practice looks like from what it filed: reported Form ADV fields (RAUM, discretionary, accounts, employees, advisors, clients and RAUM by type, private funds, wrap, custody, compensation methods, advisory activities, affiliations, the Item 6.A, 8 and 9 answers by item number), derived operating metrics each with its formula (RAUM per advisor, clients per advisor, average HNW client, average account, discretionary and institutional shares, employees per advisor, advisors per office, one-year growth), the practice archetypes with the printed rule that admitted each (19 rules; a firm can carry several), the peer group, ADV anomalies against that peer group with the peer median, percentile and filing behind each (a place to look, never a conclusion; data quality rows kept apart), office-level movement, post-acquisition retention when the firm is an acquirer, and the public business contact path (principal office phone and website as filed on Form ADV, the firm's LinkedIn page, and what the firm publishes on its own site) with source, date and rights class
search_ria_practicesarchetype?, firm_class?, min_raum_usd?, max_raum_usd?, min_advisors?, min_raum_growth_1y?, min_raum_per_advisor?, min_private_client_share?, min_hnw_of_private?, min_private_funds?, pe_backed?, bank_owned?, custody?, performance_fees?, wrap?, pension_consulting?, financial_planning?, sort?, limit?, cursor?SEC-registered advisers screened on the practice layer: by archetype (HNW_WEALTH_MANAGER, UHNW_PRIVATE_WEALTH, MASS_AFFLUENT_RIA, INSTITUTIONAL_ASSET_MANAGER, RETIREMENT_PLAN_ADVISER, MULTI_FAMILY_OFFICE_LIKE, RIA_WITH_PRIVATE_FUNDS, RIA_WITH_HEAVY_ALTERNATIVES, BANK_AFFILIATED, BROKER_DEALER_AFFILIATED, PE_BACKED, CONSOLIDATOR, INDEPENDENT_BOUTIQUE, MULTI_OFFICE_GROWTH_PLATFORM, SOLO_SMALL_TEAM, OCIO_INSTITUTIONAL_ADVISORY, DUAL_WEALTH_AND_ASSET_MANAGER, WRAP_PROGRAM_SPONSOR, PLANNING_LED_PRACTICE; each a printed rule), class, RAUM band, advisors, one-year RAUM growth, RAUM per advisor, private-client and HNW shares, private funds, and flags (PE owner on Schedule A, bank owner, custody, performance fees, wrap, pension consulting, financial planning), sorted by RAUM, growth, RAUM per advisor, advisors, clients per advisor, average HNW client or headcount growth
search_ria_anomaliesfamily?, anomaly_type?, firm_class?, state?, severity?, min_raum_usd?, firm_crd?, since?, sort?, limit?, cursor?Reported values and filing-to-filing changes that stand out against a peer group (segment by RAUM band, 30 or more advisers), each with the metric, current and prior value, peer median, percentile, robust deviations (median absolute deviation, floored), the filing date, a sentence saying why it triggered, a confidence and a severity
search_ria_officesfirm_crd?, state?, firm_class?, min_advisors?, sort?, limit?, cursor?Offices (a firm and an IAPD branch city) ranked by departures, joins, net flow, departure rate, team lift-outs out or in, breakaways in formation (advisors at the office who own a newly registered adviser), or size, with advisors today and 12 and 36 month flows
search_ria_move_indicatorsfirm_dfx_id?, firm?, advisor_dfx_id?, office?, state?, kind?, since?, sort?, limit?, cursor?The observed pre-move indicators DFX holds, per advisor: a prior co-move teammate or the team's senior member left the firm (with who and where to), a fifth or more of the advisor's branch or practice left in six months, a Series 65 or 63 added outside licensing classes, or the advisor owns part of a newly filed adviser
search_ria_outside_businessquery?, category_group?, category?, materiality?, investment_related?, role?, started_since?, current_only?, firm_crd?, state?, sort?, limit?, cursor?Outside-business entries from the advisor's own Form U4 disclosure, reviewed extraction: the company, what it does and on what basis, the advisor's role (owner, director, partner...), ownership where stated, start and end dates, materiality and why it matters, and the advisor's own words as evidence, beside the advisor's name and current firm
get_ria_outside_businessdfx_id?, company_id?With an advisor (dfx:ria: id or individual CRD): every reviewed outside-business entry, the measured dimensions (entrepreneurial, breadth, community, network, real estate, recent, independence) with the rule behind each, and dated changes (entry added or removed, a coworker disclosing the same company), plus a disclosure_status: DISCLOSED_OBA, NOT_IN_REVIEWED_RECORD (reviewed, no corresponding OBA located) or UNKNOWN (not reviewed)
search_private_creditquery?, entity_type?, class?, state?, bdc_advisers_only?, sponsor_dfx_id?, industry?, min_lenders?, maturity_before?, held_only?, sort?, limit?, cursor?The capital structure graph behind private markets, built from every BDC's schedule of investments each quarter since 2022
get_credit_providerdfx_id, detail?A credit manager: its classes with basis, the BDCs it advises (from each BDC's own 10-K) with their latest schedules, its credit funds on Form ADV, its sponsor relationships ranked by borrowers financed, and its links to the RIA and private equity graphs by shared CRD or CIK
get_bdc_portfoliodfx_id, as_of?, include_equity?, sort?, limit?, cursor?Every position a BDC tagged at one quarter end (the latest unless as_of is given), each in the filer's own figures: borrower, instrument, kind, lien, principal, fair value, cost, spread, PIK, all-in rate, maturity, unfunded commitment
get_borrower_capital_structuredfx_idThe borrower group (its spellings and grade), every facility (kind, lien, principal held across lenders as a lower bound, mark, pricing, PIK, maturity with basis), every BDC piece at the latest quarter end, the borrower's tape quarter by quarter, every sponsor attribution with its basis and confidence, and the non-routine events
get_credit_facilitydfx_idA facility (one borrower group in one instrument class): size as the sum of BDC pieces with its basis, pricing modal and ranged across pieces, maturity with basis, the lender group (every BDC that holds or held a piece, each row the lender's own figures, plus lenders named on a deal), the facility through time, and every change at facility grain
search_credit_maturitiesfrom?, months?, sponsor_dfx_id?, lien?, min_principal_usd?, limit?, cursor?Debt facilities still on a BDC schedule whose tagged or written maturity falls inside the window (default the next 24 months from today), ordered by date: borrower, sponsor with basis, lien, principal held (a lower bound), mark on cost, the BDCs holding it
search_sponsor_lendersponsor_dfx_id?, lender_dfx_id?, min_borrowers?, sort?, limit?, cursor?Sponsor x lender pairs counted once per borrower held (the lender is the adviser behind the BDCs, or the BDC where the adviser is not read): borrowers, facilities, principal held, first and latest quarter, new borrowers in the last four quarters against the prior four, quarters since the last new borrower, and the weakest sponsor attribution basis in the pair
find_lenders_for_financingindustry, lien?, size_min_usd?, size_max_usd?, band_min_usd?, band_max_usd?, since?, states?, limit?Lenders ranked on the comparable facilities they CURRENTLY HOLD on BDC schedules: same lien, a borrower industry containing the term (as the filer wrote it: health, software, industrial, business services), a facility size lower bound inside the band, entered since the window
search_private_credit_changessince, until?, by?, event_type?, dfx_id?, include_routine?, limit?, cursor?Dated changes by effective date (the quarter end where the change is visible) or by first-seen: new borrowers on any schedule, lenders joining and leaving facilities, facilities leaving every schedule, markdowns across lenders, PIK appearing or rising, a BDC placing a borrower on non-accrual or returning it to accrual (NON_ACCRUAL_PLACED, RETURNED_TO_ACCRUAL, from the BDC's own footnotes), maturities and spreads moving (observed term changes, not amendments), maturities approaching, sponsor x lender pairs forming and repeating
search_allocatorsquery?, entity_type?, allocator_class?, consultant_class?, state?, min_assets_usd?, min_private_markets_target_pct?, with_commitments?, with_policy?, with_consultant?, include_components?, sort?, limit?, cursor?The capital-owner graph: public pensions (every Census unit), corporate and Taft-Hartley DB plans (Form 5500), endowments and foundations (IRS), state pools and investment offices, as compact cards with dfx:al: ids carrying reported assets and basis, funded status, policy targets, commitment counts and adviser counts
get_allocatordfx_idFor an allocator: the card with reported assets and basis, funded status, the latest allocation policy rows (target, range, actual as printed with the subject's own label beside DFX's bucket), size and funding readings with source, investment staff and executives with the quote they were read from, plus relationships (advisers, managers, the systems an office invests for), events and same_as links through get_entity
search_allocator_commitmentsquery?, allocator_dfx_id?, manager_dfx_id?, fund_dfx_id?, consultant_dfx_id?, status?, bucket?, re_ups_only?, first_time_only?, since?, sort?, limit?, cursor?One row per line of a plan's own disclosure: allocator, fund as printed, manager and fund resolved to the pe / vc graphs where the resolver matched, bucket, the plan's commitment amount, status (COMMITTED with the plan's closing date; DISCLOSED_HOLDING as of the report date), vintage, re-up / first-time-manager in the plan's words, the plan's own paid-in, distributed, remaining value, IRR and multiple where printed, and the source URL with a quote
search_re_fund_managersquery?, crd?, state?, strategy_class?, size_band?, operator_model?, min_gav_usd?, max_gav_usd?, min_vehicles?, property_type?, with_holdings?, with_public_lps?, with_loans?, raising?, invested_state?, min_acquisitions_12m?, min_financings_12m?, maturing_before?, latest_vintage_from?, first_vehicle_year_from?, similar_to?, include_former?, sort?, limit?, cursor?Advisers that swear a Real Estate Fund vehicle on Form ADV Schedule D 7.B.(1): one manager is one CRD, with its registration and latest filing, regulatory assets under management, the summed gross asset value of its non-feeder, non-quarantined real estate vehicles with its size band, vehicles current and ever, strategy class with its state and basis, operator model, property types and markets with their bases, validated property bindings and their loans, and the public plans that disclose commitments
get_re_fund_managerdfx_idThe manager card, its ten largest vehicles and the whole family by vintage, validated property bindings with the rule and confidence behind each and the properties, loans and lenders underneath, its lenders by name with loans, principal and the last 24 months, its next ten loan maturities, property events attributed through those bindings, the public plans that disclosed commitments, the people on its Schedule A, recent events and the same institution's records on other graphs by shared identifier
search_re_fund_vehiclesquery?, manager_dfx_id?, manager_crd?, vehicle_kind?, min_gav_usd?, vintage_year?, first_reported_year?, strategy_hint?, property_type_hint?, lifecycle_state?, vintage_from?, first_reported_from?, state?, with_public_lps?, exclude_feeders?, include_dropped?, sort?, limit?, cursor?Vehicles sworn as Real Estate Funds by their SEC fund id (805-...): the fund and its family and sequence, master, feeder or fund of funds, gross asset value latest, first and peak with the filing date, years reported, vintage with its basis, owners and minimum investment, the Form D file number, lifecycle state with the components behind it, and the public plans that disclosed a commitment
get_re_fund_vehicledfx_idThe vehicle card with its reporting history year by year as filed (gross asset value, owners, minimum investment, the fund type and name as filed that year), its family in sequence, the public plans that disclosed a commitment, any validated holdings, and its events
get_re_fund_trendsview?, min_gav_usd?, limit?Derived series over the sworn tape, each with its population, derivation and caveat printed beside it: vehicles first reported by year (with the managers filing them), managers filing a real estate fund for the first time by year, reported gross asset value by year (feeders and quarantined readings excluded), vehicle vintages by year, vehicles that stopped being reported by year, and the largest managers by summed gross asset value
search_re_fund_loansmanager_dfx_id?, query?, lender?, state?, property_type?, instrument_kind?, maturing_within_days?, maturity_from?, maturity_to?, open_only?, group_by?, sort?, limit?, cursor?Loans bound to a real estate fund manager through a validated property binding: lender of record (labelled when it is the CMBS trust holding the note rather than the originator), instrument, amount with its basis, origination, recorded and maturity dates, whether still open, address, state and property type where recorded, and the source
search_re_fund_lendersmanager_dfx_id?, query?, lender?, state?, property_type?, min_loans?, since?, sort?, limit?, cursor?Manager by lender pairs from the loans at the manager's validated holdings: the lender group, loans, principal, properties, property types and states, first and latest loan dates, new originations and refinancings in the last 24 months, the lender's share of the manager's loans, and the trend
search_re_fund_lpsmanager_dfx_id?, vehicle_dfx_id?, similar_to?, allocator_dfx_id?, allocator?, query?, allocator_state?, commitment_type?, private_real_estate_only?, min_amount_usd?, since?, group_by?, sort?, limit?, cursor?The public LP tape resolved to real estate fund managers and vehicles: the plan (allocator id), the manager and vehicle with the basis of each resolution, the fund as the plan printed it, the plan's commitment amount with its basis, status, commitment and approval dates, vintage, re-up, the plan's own paid-in, distributed, value, IRR and multiple where printed, and the source document with a quote
get_capital_pathsdfx_id, kind?, limit?, include_former?Published capital flow paths through one institution: which allocators back this manager and through which fund, which lenders finance this sponsor's borrowers and on what facilities, which properties sit under this real estate manager where a binding is validated
get_commitmentsdfx_id, include_holdings?, limit?The commitment tapes, in one call, for any id they reference: the allocator tape (a public plan's own disclosure, with the plan, the fund as printed, the manager and fund resolved to the private equity, venture or real estate record, the amount, the status, the vintage, re-up and first-time-manager in the plan's words, the plan's own paid-in, distributed, remaining value, IRR and multiple, and the source with a quote) and the real estate fund LP tape
get_borrower_facilitiesdfx_id, held_only?, group_by?, as_of?, limit?, detail?Every facility a borrower group has on the BDC tape (kind, lien, principal held across lenders as a lower bound, mark on cost, pricing, PIK, maturity with its basis) with the lender group on each: every BDC holding or that held a piece, its own principal, fair value and spread, the quarters it held, and the credit manager behind it
get_sponsor_lendersdfx_id, min_borrowers?, sort?, limit?Sponsor by lender pairs counted once per borrower held: borrowers, facilities, principal held, first and latest quarter, new borrowers in the last four quarters against the prior four, quarters since the last new borrower, and the weakest sponsor attribution basis in the pair
search_capital_changesgraph, since, event_type?, dfx_id?, include_seeded?, limit?The change tape for the three capital graphs by FIRST SIGHT: the day DFX first saw each row, which is the only order a poller can trust
search_entitiesquery?, domain?, entity_type?, state?, city?, sector?, asset_class?, stage?, invests_directly?, recent_activity_days?, min_aum_usd?, vertical?, min_opportunity?, has_sponsor_relationships?, has_real_estate?, active_only?, sort?, limit?, cursor?One search across family offices, independent sponsors and their capital providers, private companies, venture firms, private equity firms and funds, and real estate organisations: by name, or by filters (entity_type, domain, state, sector, ...)
resolve_namename, domain?, prefer_domain?, entity_type?, limit?Resolve a firm, fund, person or company name to canonical dfx ids from the Data Factory's index of every published name and alias (former names, dbas, legal names) on the family office, sponsor, venture, private equity, RIA, allocator, private credit and real estate fund graphs as each graph is indexed
get_entitydfx_id, include?, relationship_limit?, event_limit?, evidence_limit?, detail?For any DFX id: the full card, published relationships with sources and dates, recent events, evidence rows (the observation each fact traces to), cross-graph same_as links by shared identifier, same-name candidates on other graphs (labelled as candidates), and pointers to deeper views
search_peoplequery?, organization?, prefer_domain?, domain?, organization_dfx_id?, role?, investment_responsibility?, current_only?, cross_graph_only?, limit?Investment professionals, principals and family office staff as names with titles, roles, seniority, investment responsibility, organisation and tenure, from public filings and firm pages; with domain=ria, IAPD-registered advisors by name or firm
search_relationshipsdfx_id, rel_type?, current_only?, limit?, detail?Every published relationship touching one entity (EMPLOYS, PRINCIPAL_OF, INVESTED_IN, CO_INVESTED_WITH, MANAGES, OWNS, BOARD_MEMBER_OF, VEHICLE_OF, ...), each with role, dates, currency, confidence, evidence class and source
relationship_pathfrom_dfx_id, to_dfx_id, max_hops?An evidence-backed path between two DFX ids across every graph: each hop is a published relationship with its source, or a SAME_AS identity link by shared CRD/CIK/EIN
search_eventsdomain?, dfx_id?, event_type?, state?, since?, within_days?, signal_family?, min_significance?, exclude_routine?, limit?Dated events across family offices, sponsors, venture, private equity and real estate: investments announced, vehicles formed, Form D and ADV filings, people joining and leaving, funds raised, acquisitions, plan final filings, record departures, loan maturities
verifyclaim?, subject_dfx_id?, subject?, predicate?, object_dfx_id?, object?, year?, as_of?SUPPORTED, PARTIALLY_SUPPORTED, CONTRADICTED or UNKNOWN for a claim, with the observations
find_capital_for_opportunitydfx_id?, sector?, vertical?, state?, deal_size_usd?, check_size_usd?, asset_class?, stage?, control?, sponsor_involved?, investor_types?, limit?Investors for a company (dfx_id) or a described opportunity (sector, state, deal size, stage, control): verified independent sponsors with observed acquisitions in the sector (listed, not paired or ranked; company to sponsor pairs are withdrawn), family offices with observed investments or stated sectors in it, venture firms when the opportunity is venture-shaped, and private equity matcher rows where that graph computes them
find_opportunities_for_capitaldfx_id, limit?For a family office, sponsor, capital provider or venture firm: the opportunities DFX knows that fit its DEMONSTRATED behaviour: computed matches where the graph has them (with reasons and blockers), then private companies with transition signals in the sectors it has actually invested in, sponsors seeking capital, companies raising in its stated sectors
explain_matchdfx_id_a, dfx_id_bFor an investor and an opportunity (either order): MATCH REASONS, BLOCKERS, SUPPORTING OBSERVATIONS, COMPARABLE HISTORY (the investor's dated investments in the same sector, with sources), RELATIONSHIPS (a path on the graph if one exists), RECENT EVENTS on both, the computed match if the graph has one, and a confidence label
why_nowdfx_id, within_days?Evidence-backed reasons an entity matters now: recent filings, vehicles formed, deployments, people moves, fundraising, transition signals, loan maturities, each dated with its source
who_should_caredfx_id?, event_id?, limit?Given an entity or an event id: who is likely to care and why
search_documentsquery, dfx_id?, limit?Full-text search over DFX's document index: verbatim passages from the documents the graph already points at (SEC filings and BDC schedules of investments, public pension board minutes, ACFRs and investment reports, 990s, Form D, firm press and team pages)
find_real_estate_lendersproperty_type, states?, city?, size_min_usd?, size_max_usd?, band_min_usd?, band_max_usd?, since?, limit?Lenders ranked on the commercial real estate loans they ORIGINATED, from CMBS loan-level filings (SEC ABS-EE): same property type, loans in the states and city given, loans inside the size band nationally, recency and size fit
search_cmbs_loansstate?, property_type?, maturity_within_days?, maturity_from?, maturity_to?, distress?, sponsor?, dscr_max?, loan_keys?, property?, property_dfx_id?, transferred_within_days?, transferred_from?, transferred_to?, limit?, cursor?Loans on the ACTIVE CMBS tape (SEC ABS-EE, each loan's latest monthly reading, read within 100 days of the newest period) with the servicer's own fields: payment status (current, 30/60/90 days, non performing matured balloon), special servicer and transfer date, whether it is in special servicing now, workout strategy, modification, current DSCR with its basis, occupancy, appraisal and LTV, balance, maturity, originator, and the sponsor as the prospectus annex discloses it (sponsor column, else carve-out guarantor, labelled)
search_signalsfamily?, domain?, subject_dfx_id?, affected_dfx_id?, query?, since?, min_exposure_usd?, include_audience?, limit?, cursor?The governed signal layer the site ranks by (actionable now, public or sellable only): each card names its family, the subject with its dfx id, what changed, why it matters, why now, the falsifier, the dates, the exposure in dollars with its basis, a rank, and the audience (who is affected and how) with their dfx ids
search_opportunitiescondition_kind?, intelligence_class?, subject_dfx_id?, family?, query?, min_rank?, include_held?, limit?, cursor?Opportunity summaries: the condition (credit deterioration, refinancing window, lender group change, capital raised, advisor movement, servicing distress ...), the subject with its dfx id, the signal families and published signals behind it, first and last observed dates, exposure with basis, the intelligence class (JOINED, INFERRED, DERIVED, DFX_EXCLUSIVE ...), beneficiary classes, and COUNTS of named and reachable beneficiaries
who_to_contactopportunity_id?, dfx_id?, organization?, prefer_domain?, purpose?, limit?For one organization (dfx_id, or its name in `organization`, resolved through the identity layer so every graph the institution is on is read) or one opportunity (opportunity_id from search_opportunities): ONE recommended person and up to two DISTINCT backups, ranked for a purpose (private_credit, advisor_recruiting, acquisitions, capital_raising, lending_desk, lp_fundraising ...)
search_forward_opportunitiesvertical?, predicted_event?, opportunity_type?, persona?, entity_dfx_id?, within_days?, min_economic?, max_economic?, min_band?, contact?, evidence?, limit?, cursor?Forward opportunities across DFX: an entity, the event a measured pattern points to (a borrower reaching non-accrual, a pension plan re-upping with a manager, an RIA entering succession, a nursing home closing), the horizon, the pattern's lift over its base rate with the lower bound of its interval and a band (BASELINE, ELEVATED, HIGHLY_ELEVATED, EXCEPTIONAL, cut on the lower bound), an economic range with its unit, dated why-now facts, the evidence labelled by kind, confidence by dimension, and whether a person is identified
get_forward_signal_ledgervertical?, status?, signal_key?, limit?, cursor?The ledger behind every forward claim: for each pattern, its definition, population, test period, base rate, rate among entities showing it, lift with its interval, median lead time, early and late halves (stability), precision at the top 1% against a conventional recency list at the same cut, the multiple-testing q value, and its status (VALIDATED, PRODUCTION, TESTING, PROSPECTIVE_ONLY, WEAK, REJECTED)
search_cmbs_resolutionsstate?, property_type?, status?, resolution?, since?, min_loss_usd?, limit?, cursor?Every conduit CMBS loan whose servicer reported a foreclosure, REO or deed in lieu workout (SEC ABS-EE), with how it ended: resolved or still pending, the SEC liquidation code decoded (disposition/liquidation, discounted payoff, payoff, repurchase), the liquidation date, the balance before resolution, the last reported realized loss and loss severity, the special servicer, and the trust filing that reported the resolution
get_company_coveragenaics, state?The Census Bureau's count of firms (Statistics of US Businesses 2022, all firms and firms with 20 or more employees) in one NAICS code (2 to 6 digits) and one state or the nation, beside the number of companies DFX holds there (Form 5500 plan sponsors on the private company graph), how many of those are current with 20+ participants, and the coverage percentage
search_13f_sector_holderssic?, sector?, state?, family_capital_only?, period?, limit?Family offices (and, with family_capital_only false, every 13F filer on the family office graph) that hold public positions in a sector per their latest Form 13F: for each office, the value held in the sector, the number of positions, the sector's share of the office's 13F book, its top five positions (issuer, ticker, value, share of book), its class (single or multi family office) and state, and the 13F filing
search_bdc_language_changeterm, section?, filed_from?, changed_only?, limit?For a term (software, tariffs, AI, healthcare, energy, consumer, office, crypto or any word), every active BDC whose latest 10-K or 10-Q names it, compared sentence by sentence with the filing before: whether the language changed, how many sentences were added, removed or rewritten, and those sentences (clipped), with both filings cited
rank_sponsor_capitalgroup?, role_class?, vertical?, state?, since?, ebitda_min_usd?, ebitda_max_usd?, sponsor_dfx_id?, provider_dfx_id?, min_deals?, deal_sponsor?, deal_company?, limit?The capital parties named on announced independent sponsor transactions, aggregated
get_sponsor_portfoliodfx_id?, name?, status?, limit?Every portfolio holding DFX has for one private equity or independent sponsor firm (current and exited): company, state, listed sector, fund, platform or add-on, control, entry and exit dates with their basis, and the source
rank_service_providersfamily?, query?, vertical?, state?, active_since?, min_deals?, sponsor_focused_only?, sort?, limit?, cursor?Service providers on announced independent sponsor transactions, ranked over the whole graph: law firms (family legal), investment banks and M&A advisers (investment_banking), accounting firms (accounting), quality of earnings providers (qoe), commercial diligence, R&W insurance and brokers (insurance), debt advisers, technology diligence
get_service_providerdfx_id?, name?A law firm, bank, accounting or diligence firm as the independent sponsor graph sees it: deal counts and role mix, the sponsors it has served most (with deal counts and first and last deal), the capital providers it meets on the same deals, its professionals named on deals (title, practice, office, deals; no contact values), recent engagements with the deal, the side represented and the source that names it, and dated signals (a new sponsor relationship, a sector specialism, an activity surge)
search_service_provider_sponsorssponsor?, provider?, family?, min_deals?, limit?, cursor?Provider and sponsor pairs from announced independent sponsor transactions
search_borrower_sponsorsborrower?, sponsor?, current_only?, pik_since?, pik_added_only?, non_accrual_since?, on_non_accrual_now?, group?, limit?, cursor?The borrower to sponsor chain: a BDC borrower, linked through a graded identity bridge to its company record, then to the private equity firms that invested (fund, entry and exit dates, whether the source states the investment is current, and the page that says so), beside the borrower's latest BDC picture: principal held across BDCs (a lower bound), fair value over cost, BDC count, credit status (PERFORMING, NON_ACCRUAL from the BDCs' own footnotes), and the dates PIK was first and last added or increased and non-accrual last placed
search_credit_stressevent_types?, group?, period?, since?, bdc_dfx_id?, sort?, limit?Credit stress on the BDC tape, counted over every event: NON_ACCRUAL_PLACED and RETURNED_TO_ACCRUAL (from each BDC's schedule of investments footnotes), PIK_ADDED and PIK_INCREASED (from the PIK rate each BDC tags)
who_should_provider_callprovider?, role_family?, trigger?, state?, limit?The independent sponsor call list (rule isi-pcall-1, XV1 2026-10-02): one row per role family, trigger and sponsor over census-verified sponsor deals
search_isi_opportunitiesopportunity_type?, persona?, status?, state?, since?, limit?ISI opportunities in the shared opportunity contract (rule isi-opp-1): deal_provider_gap (counsel, bank or accountant not on record for a recent sponsor deal), repeat_acquirer, active_capital_provider, and three types HELD by blind QA (deal_no_capital_partner_on_record, new_geography, repeat_capital_pair) which are returned only with status=held and their hold reason
find_vc_investorssector?, stage?, amount_usd?, state?, city?, geography?, active_only?, limit?Venture firms for a company raising a round, with HARD constraints (geography, sector, stage, amount_usd, active_only) kept apart from RANKING signals (observed entries at the stage, portfolio companies in the sector, investments in 12 months, recency, rounds led)
search_vc_coinvestorsfirm?, dfx_id?, since?, limit?The firms that invest most often beside a named venture firm, from the rounds both were named on: shared portfolio companies, shared rounds, the last and first shared dates, stages of the shared rounds, who led, and sample shared companies
search_vc_new_fundssince?, within_days?, raising_now?, state?, city?, sector?, emerging_only?, max_fund_number?, lifecycle_state?, all_vehicles?, limit?Venture vehicles launched since a date (first Form D sale or first Form ADV appearance), or with an open Form D offering (raising_now), one row per manager: fund, manager, vintage, fund number, lifecycle and fundraising state, Form D offered and sold
search_vc_emerging_managerssector?, state?, city?, launched_since?, new_adviser_since?, limit?Venture managers with an emerging-manager score of 0.5 or more (few funds, recent first vintage, small reported assets), with the score, sector evidence, fund count and first vintage
search_vc_lp_commitmentslp?, organization_dfx_id?, since?, max_fund_number?, emerging_only?, group_by?, venture_managers_only?, limit?Disclosed LP commitments to venture funds from the LPs' own public reports (public pensions, endowments): LP, fund, manager, amount, date, fund number
search_vc_financingssector?, since?, until?, order_by?, within_days?, kind?, debt_only?, state?, city?, include_out_of_scope?, venture_backed_only?, limit?Companies on the venture graph that raised since a date, each financing labelled an ANNOUNCED ROUND (press: round type, stage, amount where disclosed) or an SEC FORM D OFFERING (never called a round: no stage, lead or investors)
search_vc_next_fundssince?, within_days?, sector?, min_sequence?, max_sequence?, limit?Fund N+1: a known venture manager's next numbered fund (Fund III after Fund II), dated by its first Form D, with the previous fund, the years between them and the size against the prior fund on a stated basis (Form D offering or ADV GAV, never a close)
search_vc_service_opportunitiesprovider_type?, trigger_family?, trigger_kind?, since?, within_days?, min_amount_usd?, new_only?, venture_backed_only?, limit?Filed or announced triggers on the venture graph mapped to the service providers they create work for (admin, audit, law, placement, banking, lending, insurance, recruiting, compliance): new advisers, fund Form Ds, next funds, open offerings, harvest, company financings, partner departures
search_vc_exitssince?, within_days?, kinds?, investor_dfx_id?, dated_only?, limit?Acquisitions, IPOs and listings of venture-backed companies, with the investor that reported it and the date's basis: occurred (a dated source) or observed (seen on a portfolio page, deal date unpublished)
search_vc_repeat_founderssince?, within_days?, state?, city?, geography?, sector?, prior_venture_backed_only?, include_out_of_scope?, limit?People named as an executive officer on the Form D filings of two or more operating companies, listed by the NEW company with its first Form D date, the person, and the earlier companies (whether venture-backed)
search_vc_raise_candidatessector?, state?, city?, geography?, stage?, min_months_since_financing?, max_months_since_financing?, limit?Venture-backed companies that are CANDIDATES BY RULE to raise again: last dated financing 12 to 36 months ago and none since, no exit on record, still listed on an investor's portfolio page DFX read in the last 60 days
search_vc_provider_callsrole?, triggers?, trigger?, since?, within_days?, state?, city?, geography?, min_size_usd?, limit?The call list for a fund administrator, auditor, custodian or placement agent: venture funds with no provider of that role on record (new fund Form D), next numbered funds, funds whose provider of that role changed (one row per adviser decision), managers growing quickly, and new managers on the SEC adviser roster
search_vc_opportunitiesfamily?, types?, type?, provider_type?, persona?, provider_gap?, since?, within_days?, state?, city?, geography?, sector?, limit?The venture opportunity object: dated signals (fund formation, fund lifecycle, company capital, people movement, relationship change) each with why now, what happened, why it may matter, who could care, evidence, a categorical confidence and urgency, providers on record, provider roles not on record, and decision makers by name
get_re_debt_exposuregroup?, within_months?, property_type?, state?, distress?, min_balance?, name?, limit?CMBS debt grouped by who carries it (latest reading per loan on the SEC ABS-EE tape): group=sponsor (the prospectus annex's sponsor or carve-out guarantor, by normalised name family), lender (the originator, folded to its parent where an SEC prospectus links them), servicer or special_servicer
search_re_lps_by_managermanager?, min_funds?, limit?Allocator x manager pairs from published LP commitments: distinct funds, total committed, first and latest commitment, re-up, the latest funds with their source
get_re_org_chainname, limit?By the firm's name family: its real estate fund managers, vehicles by lifecycle, published holdings with basis and confidence, fund loans and lender groups, CMBS notes naming the family as sponsor or guarantor (with the lender and holder trust), and accepted owner chains
get_re_property_chainproperty?, property_dfx_id?, owner_ids?, limit?A building's recorded NYC mortgages, satisfactions and assignments (parties as filed), the sponsor resolved behind an owner of record when owner_ids are given, its CMBS notes (lender = originator, holder = the trust, special servicer, balance, maturity, status, the annex's borrower LLC and sponsor), its accepted owner chain with the basis's measured precision, fund holdings bound to it and fund loans on its address
watch_createname?, scope?, conditions?, maturity_within_months?, min_materiality?, include_unmeasured?, include_failing?, include_historical?, baseline?, since?, research?Save a private credit investigation for this account: a research question and/or borrowers, a sponsor's borrowers or a lender's book, and the changes to watch (lenders, maturity, spread, PIK, marks)
watch_listnothingThis account's watches with status, latest checkpoint, reads used and cost
watch_changeswatch_id, checkpoint?, include_historical?Material changes since a checkpoint: each with its filing, filing date, a check against the lender's own rows, NEW_EVENT or NEWLY_OBSERVED_HISTORICAL, a materiality score with its rubric, and duplicates folded
watch_reevaluatewatch_id, checkpoint?Re-tests the conclusions recorded at a checkpoint (maturity, mark, lenders, performing) against what changed since, and diffs a saved investigation's claims against the question asked now
watch_cancelwatch_idCancels a watch: no further deliveries, the quota slot is freed, earlier deliveries stay readable

Beyond real estate: family offices, independent sponsors, venture capital

Short answer

The same connection answers across three more DFX graphs with one id scheme (dfx:fo:, dfx:isi:, dfx:vc:, plus the real estate ids), one response contract, and cross-graph identity by shared CRD, CIK or EIN only. A same-name entity on another graph is returned as a candidate, never merged.

Family Office Intelligence. 2,569 offices on the graph (695 candidates, 157 confirmed multi-family, 336 probable single-family), 4,238 foundations, 748 offices with 13F positions, 410 with observed direct investments.

Independent Sponsor Intelligence. 4,189 sponsors, 10,726 capital providers, 97,287 private companies with plan-filing history of which 17,079 carry a transition signal, 317,710 computed company-to-sponsor matches with reasons and blockers, 2,407 announced transactions.

Venture Capital Intelligence. unknown firms (unknown with a fund raising in the last 18 months), 77,255 funds with every fund amount kept apart, 348,556 people, 144,324 companies, 145,614 rounds. Stated sectors are populated on unknown firms today, so a sector filter on firms answers NOT_COVERED rather than an empty list.

Across all of them: search_entities, get_entity (everything on one id: card, relationships, events, evidence, cross-graph links), search_people, search_relationships, relationship_path (how X connects to Y, every hop an evidenced edge), search_events, verify (SUPPORTED, PARTIALLY_SUPPORTED, CONTRADICTED or UNKNOWN, with the observations), and the economic tools find_capital_for_opportunity, find_opportunities_for_capital, explain_match (reasons and blockers, never a bare score), why_now and who_should_care.

Contact points are withheld over MCP on every graph. Call what_can_dfx_answer with domain set to family_office, independent_sponsor, venture_capital or real_estate for that domain's entity types, event families, rights, freshness and limitations.

What a call actually returns

Resolving 100 Binney St, Cambridge MA returns a parcel with its assessed value and a dfx_id. Passing that id to get_property_record returns the recorded sale:

{
  "object": { "type": "parcel", "name": "100 BINNEY ST",
              "city": "Cambridge", "state": "MA",
              "assessed_total": 494419400.0, "assessment_year": 2026,
              "address_ambiguous": false },
  "sales": [{
    "transaction_type": "sale",
    "closed_date": "2022-04-01",
    "consideration": 1020000000.0,
    "allocated_consideration": 1020000000.0,
    "allocation_basis": "single parcel deed, consideration as published",
    "parcels_on_this_instrument": 1,
    "arms_length": "unknown",
    "arms_length_basis": "$1,020,000,000 is 2.06x the FY2026 assessed value…",
    "recording": { "book": "79922", "page": "0115" }
  }],
  "coverage_notes": ["Recorded sales here carry a buyer but never a seller…"]
}

Both consideration figures travel together deliberately. A deed repeats its full price on every parcel it covers, so summing the naive column multiplies a portfolio sale by the number of parcels in it.

Coverage, with denominators

Dated events, publishable62,52416 event types over 13 sources; see per-type breakdown
…falling inside the next 18 months8,631what search_property_events returns at within_days=548
Properties resolvable by address90,278national, federal programme multifamily; 83,664 distinct addresses
Parcels resolvable by address269,984Massachusetts only
Recorded sales80,448Massachusetts only, $146.6bn
Loans with a maturity date19,881FHA-insured and securitised CMBS; reachable via get_property_record on a resolved property
…maturing inside 18 months, in the loan table1,728over 1,407 properties, national, median original principal $13.4m
…of those, reachable by searching for events132over 70 properties. THE SEARCH INDEX REACHES 5% OF THEM. Read the note below.
Building permits201,288City of Boston only
Leases / tenancies3,971national, from securitised disclosure

Where coverage is weak, stated plainly

  • Parcels, recorded sales and ownership are MASSACHUSETTS ONLY. Permits are the City of Boston only. Everything national is federal-programme multifamily: HUD, LIHTC and FHA.
  • Recorded sales carry a buyer and NEVER a seller. The source is an assessor roster, which publishes no grantor, so repeat-sale pairs and hold periods are not derivable from it at any volume. No amount of further ingestion changes this.
  • THE DEBT SEARCH INDEX IS INCOMPLETE AND ITS EMPTY RESULTS ARE NOT EVIDENCE OF AN EMPTY MARKET. DFX holds 1,728 loans maturing inside eighteen months across 1,407 properties, nationally, at a median original principal of $13.4m. Only 132 of them, over 70 properties, are published as dated events, which is what search_property_events reaches: about 5%. The lag is also not uniform by geography, because published maturity events are HUD/FHA nationally plus CMBS in Massachusetts only, while the loan table is national. A cold agent searching New York for near-term maturities received count 0 with complete true, while the loan table held 193 and 245 Park Avenue alone carries thirteen maturing 2027-06-01. Every maturity search now returns this denominator with it. To reach the other 95%, call resolve_address then get_property_record, which reads the loan table directly and does not depend on the event index.
  • A MATURITY IS COUNTED ONCE, WHICH IT WAS NOT UNTIL 2026-08-31. A HUD maturity is published by two sources and a CMBS maturity once per note, so one building on one date could arrive as four rows. Results are now deduplicated on property and date, and `sources` lists every source that agreed. Note that `original_principal` on a CMBS record is the NOTE, not the loan: 245 Park returns thirteen pieces summing to $668.75m against a $1.02bn loan, so summing them is a trap.
  • The Registries of Deeds are closed to automation, so conventional bank and private-credit mortgages are absent entirely. A property absent from a maturity search is NOT a property without debt, and across most of the United States it is a property whose debt we have never been able to see.
  • Ownership relationships are Massachusetts-only and structurally so: HUD publishes a management agent and never an owner.
  • One street address can carry several records. Every property record returns address_group_size so you can see it; above 1, deduplicate by address before summing anything. DFX has not merged them because thousands of these clusters are genuinely different buildings sharing one address.
  • Nothing served here carries a calibrated probability. No prediction in this system has had an outcome resolved, so every score is a ranked signal and is labelled as one.
  • LIHTC compliance periods are statutory and every one falls on 31 December, so a count bucketed by day shows a December cliff that is an artefact of the statute rather than a market event.

Polling for what is new

Short answer

changes_since answers what DFX has learned, not what has happened. Call it with no cursor to get a starting position, then call again with the cursor you were handed. The cursor is opaque: pass it back byte for byte and do not parse it.

# 1. establish a position. returns no events, on purpose.
{"name":"changes_since","arguments":{}}
  -> { "count": 0, "first_call": true,
       "cursor": "2026-08-31T10:38:55.382135+00:00" }

# 2. later, ask what arrived. pass the cursor back unchanged.
{"name":"changes_since","arguments":{"since":"2026-08-31T10:38:55.382135+00:00"}}
  -> { "count": 50, "complete": false,
       "cursor": "2026-08-28T23:23:06.51893+00:00|30adacd5-36e3-4cd8-8752-0e4377353105" }

# 3. keep calling with the newest cursor until complete: true.

The argument is since and the response field is cursor. They are the same value and the names do not match. A client that reads cursor and sends it back as cursor gets a first-call response with zero events and no error, which looks like “nothing changed” forever. It is the first thing a careful caller gets wrong, so it is printed here rather than left to be discovered.

Paging is exact. The cursor is a composite of the learn-time and the event id, so a page boundary falling inside a group of events learned in the same instant does not skip the remainder. Until 2026-08-31 the cursor was the timestamp alone, and because the tape carries 58,743 events across only 254 distinct learn-times, an agent paging to completion saw roughly a fifth of it and was told the tape was complete. Fixed, and pinned by a test that walks tapes with tie groups of 1 to 500 rows at page sizes 1, 7 and 50 and asserts every row is returned exactly once.

An empty response returns your own cursor unchanged, because standing still is safe where advancing is not. A malformed cursor is refused as INVALID_CURSOR with safe_to_retry: false, never as a DFX outage.

Failure states

An empty list is a claim, and this endpoint will not make it carelessly. Five distinct outcomes are served rather than collapsed:

  • Known no result. DFX looked inside applicable coverage and found none.
  • Coverage unavailable. The geography or category is not held. Says so.
  • Resolution failed. The input could not be keyed; the reason is returned.
  • Rights blocked. DFX holds the information and may not republish it.
  • Temporarily unavailable. A DFX availability problem, marked safe to retry, explicitly not a statement about your query or our coverage.

Rights and provenance

Every observation carries its source, the time it was retrieved and a content hash. Rights are determined by reading the operative terms for each source and are recorded as versioned rows: when a determination changes, the old one is superseded rather than edited, because the question diligence asks is what the terms said on the day we ingested.

Unclear means no. Two sources totalling over two million observations are held and not published because their terms could not be established. Sources published under an attribution condition carry that notice in the response envelope itself rather than in documentation somebody may not read.

Latency, price and limits

Measured cold path from a standing start with no prior knowledge: five requests, about 1.5 seconds total, to a first useful answer. Typical single tool call is 200ms to 700ms.

All 134 tools are free, read-only and unauthenticated. No key, no signup, no OAuth, and no account or payment step anywhere on the server.

The loan tape is free too: debt_maturity_schedule returns up to 200 loans per call for one state. It is the loan rather than the event: the principal, the lender, the instrument and the origination, rather than a date and a headline. It also reaches loans the event index does not, which is the gap described above. Every response states how many loans DFX holds for the filter, so a capped answer is never presented as the whole population.

How many rows a state actually holds, because it is not the same everywhere. 19,881 loans carry a maturity date and every one of them carries maturity_basis: confirmed, filed with the SEC by a servicer or recorded by HUD. Not one is estimated or inferred from a term length. But only 1,614 of them fall inside the default eighteen-month window, and they concentrate: California holds 329, New York 193, Texas 117, Ohio 61, and twenty-eight states hold fewer than twenty each. Montana and Wyoming hold one apiece. Widen within_days to reach further out.

Bulk access and higher volumes. If you need the full tape, higher limits or a feed, write to jesse@dfxintel.com and say what you are building.

Rate limits, so you can plan around them instead of discovering them. 20 requests per minute and 300 per hour for any caller. search_property_events and changes_since are additionally capped at 60 per hour, because those two are the paging capabilities. A refusal is a structured answer carrying the state, the reason and a retry time rather than a bare 429. Search results cap at 50 rows per call; the loan tape caps at 200.

One page per capability

Each of these answers one question, states the coverage for that question alone, and shows a real call with the real response. They exist because an agent searching for a capability should land on the capability rather than on a reference manual.

Every count above was measured against the running exchange on 12 September 2026. These pages are built rather than fetched, so a count is a dated reading and not a claim about this moment; call dfx_coverage for the grid as it stands when you read it.

Machine-readable surfaces

Everything on this page is available without reading it. None of these need a key or a handshake:

  • GET https://exchange-production-9123.up.railway.app/mcp returns the full tool schemas, the coverage block and a worked example.
  • GET https://exchange-production-9123.up.railway.app/openapi.json is the OpenAPI description of the same surface.
  • GET https://exchange-production-9123.up.railway.app/.well-known/agent-card.json is the A2A agent card.
  • GET https://exchange-production-9123.up.railway.app/.well-known/mcp/server-cards.json is the SEP-2127 server card.
  • GET https://exchange-production-9123.up.railway.app/ returns the capability manifest with versions and coverage.

GET https://dfxintel.com/ai/real-estate-mcp/catalog.json is the full machine-readable capability catalog: every tool schema, the measured per-family coverage grid, the price, the stated gaps and a real executed example response for each capability. It exists so a machine can decide whether DFX is worth connecting to WITHOUT connecting to it first, which is the decision most evaluating agents actually have to make.

The registry listing and this page are meant to agree. If they ever disagree, the live endpoint is the truth and this page is the thing that is wrong.

Facts on this page were last checked against the running product on . Prices are read from the live billing configuration, so this page and your invoice cannot disagree. The machine-readable version of this record is at /ai/entity.json.