Order, track, message, and download from APPRAISAL, TITLE,
HOI, VOE/VOA, and LIEN vendors through a single
standardized lifecycle — no custom state machine per vendor.
# one dependency, zero runtime deps
npm install mortgage-vendor-os
Watch the full lifecycle run — or switch to Try it live and run the real library in your browser (keyless, no server).
Runs the real mortgage-vendor-os in your browser — no keys, no server. Prefer a notebook?
Try it on RunKit ·
npm
One library that turns fragmented third-party settlement services into a consistent, testable API.
Five methods drive every vendor: order(), status(), documents(), sendMessage(), getMessages(). Swap vendors without touching your LOS.
You pass your own API keys. The library never touches your credentials or your RESPA Section 8 exposure.
ReggoraProvider orders real appraisals through Reggora's Lender API — orders, status, submissions, and conversations — sandbox or production.
Stable error codes (MISSING_PROVIDER, ORDER_NOT_FOUND, PROVIDER_ERROR…) make failure handling predictable in every runtime.
MockProvider simulates the full lifecycle without keys, and every provider accepts an injected fetchImpl for deterministic tests.
Zero runtime dependencies, global fetch only. Runs on Node 18+, Vercel Edge, and Cloudflare Workers.
RestEmailFallback orders and messages mom-and-pop vendors via Resend or SendGrid — and signals REQUIRES_WEBHOOK_UPDATE when polling isn't possible.
Typed snake_case data models for Appraisal, Title, HOI, VOE, VOA, and Liens that map cleanly onto mortgage-industry APIs.
MIT-licensed and free. Tree-shakeable ESM with full TypeScript types — 20 KB on disk.
Point your vibe coder at AGENTS.md — a knowledge file that teaches any coding agent how to use MortgageVendorOS: install, the lifecycle API, providers, and gotchas.
import { MortgageVendorOS, MockProvider, RestEmailFallback } from 'mortgage-vendor-os';
const os = new MortgageVendorOS();
// Register vendors (swap MockProvider for a real provider when you have keys)
os.use('APPRAISAL', new MockProvider());
os.use('TITLE', new RestEmailFallback('orders@bobstitle.com', process.env.RESEND_KEY));
// 1. Place an order
const order = await os.order('APPRAISAL', { address: '123 Main St', loan_amount: 500000 });
// 2. Check status (poll on your own cadence)
const status = await os.status('APPRAISAL', order.vendorOrderId);
if (status.isComplete) {
// 3. Retrieve final XML / PDF
const docs = await os.documents('APPRAISAL', order.vendorOrderId);
console.log(docs.downloadUrls);
}
// 4. Handle underwriting stipulations / messages
await os.sendMessage('APPRAISAL', order.vendorOrderId, { text: 'Appraiser needs gate code: 1234' });
const messages = await os.getMessages('APPRAISAL', order.vendorOrderId);
Copy any prompt below into your AI coding agent to wire MortgageVendorOS into your project. Each one is self-contained.
Add MortgageVendorOS to my project and set up API routes for ordering an appraisal and checking its status, using MockProvider so it runs without keys.
Integrate MortgageVendorOS with RestEmailFallback so title orders are emailed to our vendor via Resend, and return REQUIRES_WEBHOOK_UPDATE signals for status and documents.
Write a custom BaseProvider for MortgageVendorOS that maps my vendor's REST API onto the five lifecycle methods (placeOrder, getStatus, getDocuments, sendMessage, getMessages).
Build a Vercel Edge Function that polls MortgageVendorOS order status on a schedule and pushes completed document URLs to a webhook.
A mortgage API wrapper is a library that normalizes how a loan origination system (LOS) talks to third-party settlement vendors — appraisal management companies, title companies, insurers, and verification services — behind one consistent interface. MortgageVendorOS is a free, open-source mortgage API wrapper for Node.js and edge serverless runtimes.
Register an appraisal provider with os.use('APPRAISAL', provider), then call await os.order('APPRAISAL', { address: '123 Main St', loan_amount: 500000 }). The returned vendorOrderId tracks the order for the rest of its lifecycle.
Call await os.status('TITLE', vendorOrderId) to get the current state plus an isComplete boolean, os.documents() to fetch final XML/PDF download URLs, and os.getMessages() for the stipulation thread. This is real estate settlement order management without per-vendor code.
Install mortgage-vendor-os, write a BaseProvider subclass that maps the vendor's REST endpoints onto the five lifecycle methods, register it with os.use('APPRAISAL', provider), and route your LOS through the orchestrator. LOS API integrations never need to change when you switch vendors.
Yes. It has zero runtime dependencies and only uses the global fetch, so it runs on Node 18+, Vercel Edge Functions, and Cloudflare Workers.
Yes — MIT-licensed open source. You supply your own vendor API keys (BYOK), so the library itself never collects fees or acts as a settlement service provider.