Real estate deal memo API

One US street address in. Owner, automated value estimate, long-term rent estimate, comps, cap rate, cash-on-cash, DSCR, red flags and a one-paragraph memo out. Deterministic underwriting over RentCast data, built for AI agents: MCP server, Apify Actor and a plain HTTP endpoint that answers 402 with payment options.

Try it free (no key)

curl "https://agentwares-deal-memo.vercel.app/api/v1/memo?sample=true&address=1547%20Example%20Ave%2C%20Cleveland%2C%20OH%2044109"

sample=true returns a realistic recorded example (1547 Example Ave, Cleveland, OH 44109) at no charge and never calls a model. It ignores the address you pass.

Paid call ($ 0.75 per memo, $0.1 per lookup)

curl -X POST https://agentwares-deal-memo.vercel.app/api/v1/memo \
  -H "Authorization: Bearer $DEAL_MEMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"<full US address>","strategy":"rental","assumptions":{"down_payment_pct":0.2}}'

Paid calls are paused on this deployment: it has no property-data source connected, so /api/v1/memo and /api/v1/lookup answer 503 SERVICE_NOT_READY before quoting a price, and neither a funded key nor an x402 payment in USDC can buy a call here today. sample=true still answers, free.

MCP server

{
  "mcpServers": {
    "deal-memo": {
      "url": "https://agentwares-deal-memo.vercel.app/api/mcp",
      "headers": {
        "Authorization": "Bearer <your api key — omit for sample mode>"
      }
    }
  }
}
ToolInputPrice
realestate_deal_memoaddress, strategy (rental | flip | hold), assumptions?, memo?, sample?$0.75
realestate_lookupaddress, kind (property | value | rent), sample?$0.1

Buy a key ($10, $50 or $200 of credit)

No signup and no human in the loop. POST /v1/keys returns a key with a $0 balance; POST its fund_url for a Stripe Checkout, pay the card form, and each call comes off the balance.GET /v1/credits shows the balance and ledger, POST buys another pack. Repeat a call with the same Idempotency-Key and it is charged once; a call that fails is refunded. Apify users pay per event on the Apify Store instead and need no key.

curl -X POST https://agentwares-deal-memo.vercel.app/v1/keys                        # a key with a $0 balance + fund_url
curl -H "Authorization: Bearer $KEY" https://agentwares-deal-memo.vercel.app/v1/credits   # balance and ledger

Card payments are live: the Checkout URL charges a real card. A person completes it; an unattended agent pays over x402 instead.

Response shape

{ "data": { ... }, "sources": [{ "name": "RentCast", "endpoint": "/v1/avm/value", "fetched_at": "…", "cached": false }],
  "as_of": "…", "confidence": { "level": "high", "score": 0.95, "factors": [] }, "notice": "Not financial advice…", "sample": false }

Not financial, legal, tax or investment advice. Values and rents are third-party automated estimates; the underwriting applies stated assumptions. Verify every figure independently before any offer, loan or investment decision. Provided as-is, without warranty.