Developers

Fynsor CRE Intelligence API

The API is the product. Consume Dallas County CRE intelligence — pricing, comps, scoring, risk, deal analysis, ownership and market analytics — from agents and tools.

Interactive API reference (OpenAPI)Base URL: https://cre.fynsor.ai/api/v1

Authentication

Two interchangeable methods, both tenant-scoped identically.

Human (JWT)

curl -s https://cre.fynsor.ai/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"you@firm.com","password":"..."}'
# then send: -H "Authorization: Bearer <access_token>"

Machine (API key) — created by a tenant admin, shown once

curl -s https://cre.fynsor.ai/api/v1/keys \
  -H "Authorization: Bearer <admin-jwt>" -H "Content-Type: application/json" \
  -d '{"name":"production-agent","role":"analyst"}'
# -> {"api_key":"fyn_...", ...}
curl -s https://cre.fynsor.ai/api/v1/properties/top -H "X-API-Key: fyn_..."

Pagination & filters

List endpoints return { data, total, skip, limit, has_more }. The global filters exclude_govt and exclude_land default ON; pass ?exclude_govt=false&exclude_land=false to include everything. Every county-aware endpoint accepts ?county=dallas.

Intelligence endpoints by capability

Properties & Search

  • GET /properties/{acct}Full property record
  • POST /properties/searchAdvanced filtered search (paginated)
  • GET /properties/topTop properties by value

Pricing, Scoring & Risk

  • GET /scoring/top-dealsTop opportunities by deal score
  • GET /intelligence/risk/{acct}Monte-Carlo risk: IRR, prob-of-loss, VaR
  • GET /intelligence/forecast/{acct}Value forecast

Comps & Deal Analysis

  • GET /intelligence/comps/{acct}Adjusted comp set + indicated value
  • POST /financial/auto-populate/{acct}Intelligent, explained assumptions
  • POST /financial/dealNOI, cap rate, DSCR, IRR, exit

Owners & Market

  • GET /owners/{portfolio_id}Owner portfolio intelligence
  • GET /market/cycleMarket cycle position & phase
  • GET /market/cap-ratesCap-rate forecasts

Financing

  • POST /financing/calculateDebt metrics: DSCR, debt yield, breakeven
  • POST /financing/scenariosSave & compare tenant-scoped loan scenarios
  • POST /financing/lenders/matchRank lenders against a deal
  • GET /financing/maturing/summaryRefinance-prospect dashboard

Tax Protest

  • GET /tax-protest/scanOver-assessed properties + estimated savings
  • GET /tax-protest/properties/{acct}/analysisProtest deep-dive + evidence package
  • GET /tax-protest/market-intelMarket-wide over-assessment KPIs

Example: screen, underwrite, assess risk

KEY="fyn_..."; B="https://cre.fynsor.ai/api/v1"
curl -s "$B/scoring/top-deals?limit=25" -H "X-API-Key: $KEY"
curl -s -X POST "$B/financial/auto-populate/<acct>" -H "X-API-Key: $KEY"
curl -s "$B/financial/deal" -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"assumptions":{"purchase_price":10000000,"building_sf":100000,"rent_psf_annual":9,"opex_psf_annual":3,"going_in_cap_rate":6.5,"exit_cap_rate":7,"ltv_pct":60,"interest_rate":6,"hold_years":5}}'
curl -s "$B/intelligence/risk/<acct>" -H "X-API-Key: $KEY"

Rate limits & errors

Per key, 120 requests / minute (AI 10/min, export 20/min). Over the limit returns 429 with Retry-After and X-RateLimit-* headers. Errors use a uniform JSON envelope and never leak stack traces in production.

MCP server (agent-native)

A Model Context Protocol server exposes 8 high-value tools (search, intelligence, owners, deal analysis, comps, market cycle, screening, risk) so an agent can consume Fynsor directly. Configure Claude Desktop / Claude Code:

claude mcp add fynsor-cre \
  --env FYNSOR_API_KEY=fyn_... \
  --env FYNSOR_API_URL=https://cre.fynsor.ai/api/v1 \
  -- python /opt/dallas-cre/mcp-server/server.py
Estimates are for screening, not appraisals. Texas is a non-disclosure state; price proxies are derived. v1.0.0