Skip the federal-API plumbing. Use the data.
WALDO aggregates BLS, Census, FRED, building permits, and WARN into one CRE-native schema — exposed through REST, HMAC-signed webhooks, and an MCP server your LLMs can call directly.
Trusted data sources
What goes away when you adopt WALDO
The five things every internal CRE data project rebuilds — and why they’re a waste of your team’s time.
Stitching BLS QCEW, Census ACS, FRED, and permit APIs by hand
One auth, one schema, one API across all five sources
Re-implementing CCIM Economic Base methodology in a notebook
Call /v1/analyses and get location quotients, multipliers, and shift-share — already computed
No clean way to notify downstream systems when an analysis finishes
HMAC-signed outbound webhooks fire on completion, with retries and a DLQ
Pasting numbers from PDF reports into a model or dashboard
Pull structured JSON via REST or have an LLM call MCP tools directly
No usage visibility or rate-limit guarantees from a vendor
Per-key audit logs, rate limits, and X-Request-ID on every response
A platform built for integration
The same six analyses your CRE team relies on — but addressable, signable, and AI-callable.
Unified data layer
BLS, QCEW, Census ACS, Census Building Permits, FRED, and WARN — aggregated into one consistent schema. No per-source quirks to learn.
REST API at /v1/*
List analyses, fetch economic-base / shift-share / market-metrics / supply, kick off new analyses with idempotency keys, export PDFs and Excel.
Outbound webhooks
Subscribe a URL, get an HMAC-SHA256 signed POST when an analysis completes, fails, or has an export ready. Exponential backoff retry and DLQ tracking.
MCP server for AI agents
Eight typed tools exposed at /api/mcp — search_markets, list_analyses, get_analysis, get_economic_base, get_shift_share, get_supply, get_market_metrics, run_analysis. Works with Claude, ChatGPT, Cursor.
Scheduled exports
Recurring PDF, Excel, and PowerPoint deliveries on cron schedules. Email attachment or signed download URL. Per-schedule signing secrets.
Same data, every channel
REST, MCP, and the dashboard share serializers — what you read in JSON byte-matches what an analyst sees in the UI. No reconciliation work.
Three doors. Same data.
Pick the integration surface that matches your stack.
/v1/*
GET /v1/analyses/:id, POST /v1/analyses, GET /v1/markets — fully audited, rate-limited, idempotent on writes.
WebhooksHMAC-signed POST
analysis.completed, analysis.failed, export.ready — delivered with backoff retry and a DLQ for failures.
MCP/api/mcp
Stateless HTTP transport. 8 typed tools. Drop-in for Claude Desktop, claude.ai, Cursor, ChatGPT.
Questions from data and engineering teams
The technical questions we hear most often. Open a support ticket and include your X-Request-ID for anything not answered here.
WALDO does the aggregation, normalization, and analysis on top of the raw federal feeds. Instead of querying five different APIs with five different geography conventions and five different rate limits, you call one endpoint and get a fully-computed economic base, shift-share, or supply analysis with consistent FIPS-based geography. The raw data is free; what you’re paying for is the layer that turns it into something queryable.
Functionally they expose the same data. The MCP server lets a model — Claude, ChatGPT, Cursor — call WALDO tools live during a chat without you writing glue code. Your IC can ask "what’s the location quotient for healthcare in Cuyahoga County?" mid-meeting and the answer comes from a live tool call, not a stale screenshot.
API keys are scoped — you can issue a read-only key for evaluation, then upgrade to a write-capable key when you’re ready to trigger analyses. All keys carry rate limits and a per-call audit log; every response includes an X-Request-ID for support.
POST /v1/analyses accepts an Idempotency-Key header. Retried requests with the same key return the original analysis, never a duplicate. We dispatch async via QStash; you get a job ID immediately and a webhook (or polling endpoint) when the analysis completes.
Each webhook subscription gets its own signing secret. Outbound POSTs include a signature header (HMAC-SHA256 over the raw body) and a timestamp; verify both server-side. Failed deliveries retry with exponential backoff and land in a DLQ for inspection if all retries fail.
Yes. REST API, webhooks, MCP, scheduled exports, and AcquisitionPRO® / CRM sync are all gated to the Professional tier. Basic is dashboard-only. See the pricing page for the comparison.
Wire it up in an afternoon.
Generate a key, hit /v1/analyses, subscribe a webhook. The full integration surface is on the Professional plan.