Open Source · Edge-Compatible · Bring Your Own Key

Unify every mortgage settlement vendor behind one API

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
See it in action

One API, five methods, every vendor

Watch the full lifecycle run — or switch to Try it live and run the real library in your browser (keyless, no server).

mortgage-vendor-os — demo

                    
                

Runs the real mortgage-vendor-os in your browser — no keys, no server. Prefer a notebook? Try it on RunKit · npm

Why MortgageVendorOS

The settlement verticals, translated.

One library that turns fragmented third-party settlement services into a consistent, testable API.

🔁

Unified Lifecycle

Five methods drive every vendor: order(), status(), documents(), sendMessage(), getMessages(). Swap vendors without touching your LOS.

🔑

Bring Your Own Key

You pass your own API keys. The library never touches your credentials or your RESPA Section 8 exposure.

🏢

Reggora Provider

ReggoraProvider orders real appraisals through Reggora's Lender API — orders, status, submissions, and conversations — sandbox or production.

🛡️

Typed Errors

Stable error codes (MISSING_PROVIDER, ORDER_NOT_FOUND, PROVIDER_ERROR…) make failure handling predictable in every runtime.

🧪

Testable

MockProvider simulates the full lifecycle without keys, and every provider accepts an injected fetchImpl for deterministic tests.

⚡

Edge-Compatible

Zero runtime dependencies, global fetch only. Runs on Node 18+, Vercel Edge, and Cloudflare Workers.

📧

Email Fallback

RestEmailFallback orders and messages mom-and-pop vendors via Resend or SendGrid — and signals REQUIRES_WEBHOOK_UPDATE when polling isn't possible.

🗂️

Standardized Models

Typed snake_case data models for Appraisal, Title, HOI, VOE, VOA, and Liens that map cleanly onto mortgage-industry APIs.

🔓

Open Source

MIT-licensed and free. Tree-shakeable ESM with full TypeScript types — 20 KB on disk.

🤖 Building with an AI coding agent?

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.

Read AGENTS.md →

Quick Start

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);
For Vibe Coders & AI Agents

Ready-to-use prompts

Copy any prompt below into your AI coding agent to wire MortgageVendorOS into your project. Each one is self-contained.

01

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.

02

Integrate MortgageVendorOS with RestEmailFallback so title orders are emailed to our vendor via Resend, and return REQUIRES_WEBHOOK_UPDATE signals for status and documents.

03

Write a custom BaseProvider for MortgageVendorOS that maps my vendor's REST API onto the five lifecycle methods (placeOrder, getStatus, getDocuments, sendMessage, getMessages).

04

Build a Vercel Edge Function that polls MortgageVendorOS order status on a schedule and pushes completed document URLs to a webhook.

FAQ

Questions, answered

What is a mortgage API wrapper?

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.

How do I order an appraisal via API?

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.

How do I track a real estate settlement order?

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.

How do I integrate an appraisal API into my LOS?

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.

Does MortgageVendorOS work on serverless / edge runtimes?

Yes. It has zero runtime dependencies and only uses the global fetch, so it runs on Node 18+, Vercel Edge Functions, and Cloudflare Workers.

Is MortgageVendorOS free?

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.