Rent Roll API
About
Rent roll extraction API with built-in verification
Details
- Author
- Unknown
- Categories
- Finance, Knowledge Base, Other
Jump to
One endpoint does the work: upload a rent roll, get structured data back with a deterministic verification report. No async jobs, no polling — a single HTTP call.
Machine-readable spec:OpenAPI 3.0 (openapi.json)— import into Postman, Insomnia, or your codegen tool.
Pass your API key in theX-Api-Keyheader (or as a bearer token). Get a key from thepricing page; manage it atyour account.
X-Api-Key: rr_live_your_key_here # or Authorization: Bearer rr_live_your_key_here
No key? The web app allows 3 free extractions/day per IP for evaluation.
Extracts structured data from one document. Sendmultipart/form-datawith afilefield.
- PDF — digital or scanned (OCR handled automatically), up to 25 MB
- Excel —.xlsx,.xlsm
- CSV, HTML
curl -X POST "https://rentrollapi.com/v1/extract?format=json" \ -H "X-Api-Key: rr_live_your_key_here" \ -F "file=@rent-roll.pdf"
Official client on NuGet:RentRollAPI.Client(netstandard2.0 / net8.0).
using RentRollApi.Client; using var client = new RentRollClient("rr_live_your_key_here"); var result = await client.ExtractAsync("rent-roll.pdf"); Console.WriteLine($"{result.Units.Count} units, confidence {result.Verification.DocumentConfidence:P0}"); foreach (var check in result.Verification.Checks) Console.WriteLine($"[{check.Result}] {check.Name}: {check.Detail}"); // Or get Excel / CSV directly: byte[] xlsx = await client.ExtractToXlsxAsync(stream, "rent-roll.pdf");
Every field carries a value, status (Extracted/Missing/Flagged), and confidence. The verification block is computed deterministically — totals are re-added and reconciled against what the document states, so you know when to trust the output.
{ "propertyName": { "value": "Maplewood Commerce Center", "status": "Extracted", "confidence": 0.9 }, "asOfDate": { "value": "2026-06-30", "status": "Extracted", "confidence": 0.9 }, "units": [ { "unitNumber": { "value": "101", "status": "Extracted", "confidence": 0.9 }, "tenantName": { "value": "Cedar Point Dental", "status": "Extracted", "confidence": 0.9 }, "squareFeet": { "value": 1850, "status": "Extracted", "confidence": 0.9 }, "monthlyRent": { "value": 4625.0, "status": "Extracted", "confidence": 0.9 }, "leaseStart": { "status": "Missing" }, "leaseEnd": { "value": "2028-03-31", "status": "Extracted", "confidence": 0.9 }, "occupancy": { "value": "Occupied", "status": "Extracted", "confidence": 0.9 } } ], "totals": { "unitCount": 8, "monthlyRent": 28155.0, "squareFeet": 13750 }, "verification": { "documentConfidence": 0.9, "flaggedFieldCount": 0, "allChecksPassed": true, "checks": [ { "name": "UnitCountReconciliation", "result": "Pass", "detail": "Extracted 8 units; document states 8." }, { "name": "TotalMonthlyRentReconciliation", "result": "Pass", "detail": "Computed 28,155.00 vs stated 28,155.00 (within tolerance)." }, { "name": "TotalSquareFeetReconciliation", "result": "Pass", "detail": "Computed 13,750.00 vs stated 13,750.00 (within tolerance)." }, { "name": "DuplicateUnits", "result": "Pass", "detail": "No duplicate unit numbers." }, { "name": "LeaseDateOrder", "result": "Pass", "detail": "All lease end dates follow start dates." }, { "name": "NonNegativeRents", "result": "Pass", "detail": "No negative rents." } ] } }
All errors return{"error": "human-readable message"}.
Extract a T12 / operating statement (trailing-twelve-month income & expense report) into structured line items. Same inputs, auth, metering, andformatoptions as/v1/extract— one extraction counts as one document against your quota.
curl -X POST "https://rentrollapi.com/v1/extract/operating-statement" \ -H "X-Api-Key: rr_live_your_key_here" \ -F "file=@t12.pdf"
{ "propertyName": { "value": "Maplewood Apartments", "status": "extracted", "confidence": 0.95 }, "basis": { "value": "Accrual", "status": "extracted", "confidence": 0.9 }, "months": ["2025-08", "2025-09", "...", "2026-07"], "lineItems": [ { "label": { "value": "Gross Potential Rent", "status": "extracted", "confidence": 0.95 }, "kind": "Income", "category": "GrossPotentialRent", "monthlyValues": [ { "value": 52000, "status": "extracted", "confidence": 0.9 }, "..." ], "total": { "value": 631200, "status": "extracted", "confidence": 0.95 } } ], "verification": { "documentConfidence": 0.9, "allChecksPassed": true, "checks": [ { "name": "RowTotalReconciliation", "result": "pass", "detail": "All 15 row totals reconcile with their monthly values." }, { "name": "NoiReconciliation", "result": "pass", "detail": "EGI − OpEx matches stated NOI (within tolerance)." } ] } }
Deterministic checks: row totals vs monthly values, EGI = income sum, Total OpEx = expense sum, NOI = EGI − OpEx, non-negative expenses, and consecutive-month continuity. Line-itemkindisIncome,Expense,Subtotal, orOther;categorynormalizes labels into ~23 standard buckets (RealEstateTaxes, Insurance, Utilities, RepairsMaintenance, Payroll, ManagementFee,...). Contra-revenue rows like vacancy and concessions are Income-kind with negative values.
{ "mcpServers": { "rentrollapi": { "type": "http", "url": "https://rentrollapi.com/mcp", "headers": { "X-Api-Key": "rr_live_your_key_here" } } } }
Omit the header to use the free 3-docs/day demo allowance. Metering is identical to the REST API.
All authenticated with the sameX-Api-Keyheader.
- Subscriptions(Starter 50/mo, Pro 300/mo): quota resets on the 1st (UTC). Overage draws from prepaid credits when you have them.
- Pay-as-you-go: each extraction consumes one prepaid credit.
- Credits never expire and survive key rotation and subscription cancellation.
Documents are processed in memory and never stored after your extraction completes. See theprivacy policy.
Prediction market intelligence for AI agents - 30 read-only tools over Polymarket and Kalshi data: S-F trader grades, real-time large-trade feed, smart money flow, suspicious-activity flags, and analytics reports. Remote at https://api.0xinsider.com/api/v1/mcp or npx -y @0xinsider/mcp.
Prepaid virtual cards for AI agents: one-time cards, spend caps, human approvals.
Personal wealth & portfolio tracker — 23 OAuth-scoped tools for holdings, performance, FIRE status, crypto P&L, and confirm-gated transaction writes across 20+ markets.
Spanish accounting from an agent: invoices, expenses, bank reconciliation, VAT and Veri*Factu.
Remote MCP for commodities research — knowledge graph, COT positioning, natural gas storage/weather, futures quotes, and private stories/journals. Requires Arc Research Starter + bearer token.
Free crypto address labels. Identify known addresses on major networks with a free API.
Read-only stop/go risk gateway for prediction-market agents before capital moves: dispute lifecycle, resolution risk, action-aware preflight, alerts, token checks.
Check live market data and execute real trades — buy/sell tokens and stocks, open leveraged perp positions, trade prediction markets, move funds in and out of savings
Enable AI agents to generate payments, retrieve transaction history, and interact with ifthenpay services through MCP.
Official MCP bridge to the Invoket x402 gateway: 68 pay-per-call endpoints (IBAN validation and sanctions screening, phone validation, French and EU law in force, weather and climate, medication data) exposed as typed tools, paid in USDC on Base with non-custodial BYOK spend caps.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





