API Documentation

Base URL: https://api.bullrundata.com

Authentication

Include your API key in every request using one of these methods:

# Header (recommended)
X-API-Key: brd_your_key_here
# Bearer token
Authorization: Bearer brd_your_key_here
# Query parameter
?api_key=brd_your_key_here

Rate Limits

Limits reset daily at midnight UTC. Check response headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 2026-03-30T00:00:00.000Z

Error Responses

All errors return JSON with an error field. Common status codes:

401Unauthorized
{ "error": "Missing API key", "hint": "Pass your key via Authorization: Bearer <key>, X-API-Key header, or ?api_key= query param", "signup": "https://bullrundata.com/dashboard" }
429Rate Limited
{ "error": "Daily rate limit exceeded", "limit": 100, "reset": "2026-03-31T00:00:00.000Z", "upgrade": "https://bullrundata.com/pricing" }
400Bad Request
{ "error": "purchasePrice and monthlyRent are required" }

Recession Intelligence

GET
/v1/recession/probability

Current recession probability with all model outputs

GET
/v1/recession/indicators

All 15 indicators with scores and values

GET
/v1/recession/fed-stance

Fed policy stance and weight impacts

GET
/v1/recession/regime

Current market cycle phase

GET
/v1/recession/confirmation

Coincident indicator confirmation status

GET
/v1/recession/sahm

Sahm Rule calculation

GET
/v1/recession/history?days=90

Historical probability snapshots

Capital Rotation

GET
/v1/capital-rotation/score

Composite risk-on/risk-off score with playbook

GET
/v1/capital-rotation/instruments

All 9 instruments with signals

GET
/v1/capital-rotation/divergence

Divergence alerts and momentum shifts

GET
/v1/capital-rotation/history?days=90

Historical rotation snapshots

Investment Calculators

POST
/v1/calculators/brrrr

BRRRR deal analysis with success score (0-100)

POST
/v1/calculators/investment-property

Rental property analysis (cap rate, DSCR, cash flow)

Economic Indicators

GET
/v1/fred/indicator/:seriesId?limit, start_date, units

Look up any economic indicator by series ID

GET
/v1/fred/search?q, limit

Search available economic indicators

GET
/v1/fred/interest-rates

Fed funds rate, treasury yields, mortgage rates

GET
/v1/fred/inflation

CPI, PCE, breakeven inflation, expectations

Market Analysis

GET
/v1/analysis/employment

Unemployment, payrolls, claims, JOLTS

GET
/v1/analysis/housing

Mortgage rates, starts, permits, prices

GET
/v1/analysis/yield-curve

Spreads and inversion detection

GET
/v1/analysis/market-sentiment

VIX, financial conditions, consumer sentiment

Example Response

GET /v1/recession/probability

{ "probability": 37.9, "riskLevel": "MODERATE", "trend": "mid_cycle", "confidence": "medium", "fed_stance": "neutral", "fed_weight_impact": 0, "confirmation": { "confirming": 0, "total": 4, "status": "NOT_CONFIRMING" }, "recommendation": "Mixed signals require caution. Begin defensive rotation.", "model": { "version": "v1", "indicators_used": 15, "last_updated": "2026-03-30T06:00:00.000Z" } }

Calculator Request Schemas

POST/v1/calculators/investment-property

All fields except purchasePrice and monthlyRent are optional with sensible defaults.

{ "purchasePrice": 450000, // Required "monthlyRent": 2800, // Required "downPaymentPct": 20, // Default: 20 "interestRate": 7.0, // Default: 7.0 "loanTermYears": 30, // Default: 30 "vacancyRatePct": 8, // Default: 8 "annualPropertyTax": 5400, // Default: 0 "annualInsurance": 1800, // Default: 0 "monthlyHoa": 0, // Default: 0 "maintenancePct": 1, // Default: 1 (% of purchase price/yr) "propertyMgmtPct": 0, // Default: 0 (% of rent) "closingCostsPct": 3 // Default: 3 }

POST/v1/calculators/brrrr

All fields except purchasePrice, arv, and monthlyRent are optional.

{ "purchasePrice": 200000, // Required — acquisition price "arv": 320000, // Required — after repair value "monthlyRent": 2200, // Required "rehabCosts": 45000, // Default: 0 "closingCostsBuyPct": 3, // Default: 3 "holdingCosts": 5000, // Default: 0 (total during rehab) "vacancyRatePct": 8, // Default: 8 "annualPropertyTax": 3600, // Default: 0 "annualInsurance": 1400, // Default: 0 "propertyMgmtPct": 0, // Default: 0 "maintenancePct": 1, // Default: 1 "monthlyHoa": 0, // Default: 0 "monthlyUtilities": 0, // Default: 0 "monthlyOtherExpenses": 0, // Default: 0 "refiLtvPct": 75, // Default: 75 "refiRate": 7.0, // Default: 7.0 "refiTermYears": 30, // Default: 30 "refiClosingCostsPct": 2, // Default: 2 "useInitialLoan": false, // Default: false (cash purchase) "initialLoanAmount": 0 // Default: 0 }