{"openapi":"3.1.1","info":{"title":"Opendoor public calculator API","version":"1.0.0","description":"Read-only parameterized calculators that match the public pages on opendoor.com. Agents should GET with query parameters, then cite the returned JSON. This document is nested under /api/agent/v1/calculators so it does not collide with the site-wide OpenAPI catalog."},"servers":[{"url":"https://www.opendoor.com"}],"paths":{"/api/agent/v1/calculators/mortgage-rate":{"get":{"operationId":"evaluate_mortgage_rate","summary":"Opendoor Home Loans rate calculator","description":"Set purchase, down payment, credit, location, and loan inputs to return a live rate, APR, and principal-and-interest estimate.","parameters":[{"name":"purchase_price","in":"query","required":false,"description":"Home purchase price in dollars.","schema":{"type":"number"}},{"name":"down_payment_percent","in":"query","required":false,"description":"Down payment as a percent of purchase price.","schema":{"type":"number"}},{"name":"credit_score","in":"query","required":false,"description":"Credit-score band used for pricing.","schema":{"type":"string","enum":["780","760","740","720","700","680","660","640","620","600","580","579"]}},{"name":"product","in":"query","required":false,"description":"Loan product key.","schema":{"type":"string","enum":["30f","15f","arm5","arm7","arm10"]}},{"name":"city","in":"query","required":false,"description":"Property city.","schema":{"type":"string"}},{"name":"state","in":"query","required":false,"description":"Two-letter US state code.","schema":{"type":"string"}},{"name":"postal_code","in":"query","required":false,"description":"Five-digit US ZIP code.","schema":{"type":"string"}},{"name":"property_type","in":"query","required":false,"description":"Property type.","schema":{"type":"string","enum":["sfr","town","condo"]}},{"name":"occupancy","in":"query","required":false,"description":"Occupancy.","schema":{"type":"string","enum":["primary","second","invest"]}},{"name":"first_time_buyer","in":"query","required":false,"description":"Whether the borrower is a first-time buyer.","schema":{"type":"boolean"}},{"name":"opendoor_home","in":"query","required":false,"description":"Whether the property is an Opendoor-owned home.","schema":{"type":"boolean"}},{"name":"annual_income","in":"query","required":false,"description":"Annual borrower income in dollars.","schema":{"type":"number"}},{"name":"monthly_debt","in":"query","required":false,"description":"Monthly debt payments in dollars.","schema":{"type":"number"}},{"name":"points","in":"query","required":false,"description":"Discount points to buy, from 0 to 2.","schema":{"type":"number"}}],"responses":{"200":{"description":"Structured calculator result","content":{"application/json":{"schema":{"type":"object","required":["inputs","pageUrl","disclaimer","rateSource","result"],"properties":{"inputs":{"type":"object","required":["purchasePrice","downPaymentPercent","creditScore","product","city","state","postalCode","propertyType","occupancy","firstTimeBuyer","opendoorHome","annualIncome","monthlyDebt","points"],"properties":{"purchasePrice":{"type":"number"},"downPaymentPercent":{"type":"number"},"creditScore":{"type":"string"},"product":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"postalCode":{"type":"string"},"propertyType":{"type":"string"},"occupancy":{"type":"string"},"firstTimeBuyer":{"type":"boolean"},"opendoorHome":{"type":"boolean"},"annualIncome":{"type":"number"},"monthlyDebt":{"type":"number"},"points":{"type":"number"}}},"pageUrl":{"type":"string"},"disclaimer":{"type":"string"},"rateSource":{"type":"string","enum":["live","published_example"]},"errorCode":{"type":"string","enum":["invalid_input","no_rates","not_found","pricing_failed","rate_limited","request_failed","timeout","unavailable"]},"message":{"type":"string"},"retryAfter":{"type":"number"},"result":{"type":"object","required":["rateSource","interestRate","estimatedApr","principalAndInterest","loanAmount","points","pointsCost","productLabel","termYears","pricingScenario"],"properties":{"rateSource":{"type":"string","enum":["live","published_example"]},"interestRate":{"type":"number"},"estimatedApr":{"type":"number"},"principalAndInterest":{"type":"number"},"loanAmount":{"type":"number"},"points":{"type":"number"},"pointsCost":{"type":"number"},"productLabel":{"type":"string"},"termYears":{"type":"number"},"pricingScenario":{"type":"object","required":["purchasePrice","downPaymentPercent","annualIncome","monthlyDebt","location"],"properties":{"purchasePrice":{"type":"number"},"downPaymentPercent":{"type":"number"},"annualIncome":{"type":"number"},"monthlyDebt":{"type":"number"},"location":{"type":"object","required":["name","state"],"properties":{"name":{"type":"string"},"state":{"type":"string"},"postalCode":{"type":"string"}}}}}}}}}}}},"400":{"description":"Invalid parameters","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited","headers":{"Retry-After":{"description":"Seconds until the client may retry.","schema":{"type":"integer","minimum":1}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Live mortgage rates unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/calculators/mortgage-payment":{"get":{"operationId":"evaluate_mortgage_payment","summary":"Mortgage payment calculator","description":"Set home price, down payment, interest rate, tax, and insurance to return a monthly payment breakdown.","parameters":[{"name":"home_price","in":"query","required":false,"description":"Home purchase price in dollars.","schema":{"type":"number"}},{"name":"down_payment","in":"query","required":false,"description":"Down payment in dollars.","schema":{"type":"number"}},{"name":"interest_rate","in":"query","required":false,"description":"Annual interest rate percent.","schema":{"type":"number"}},{"name":"home_insurance","in":"query","required":false,"description":"Annual homeowners insurance in dollars.","schema":{"type":"number"}},{"name":"property_tax","in":"query","required":false,"description":"Annual property tax in dollars. Defaults from the state rate when omitted.","schema":{"type":"number"}},{"name":"state","in":"query","required":false,"description":"Two-letter US state code used for the default tax rate.","schema":{"type":"string"}}],"responses":{"200":{"description":"Structured calculator result","content":{"application/json":{"schema":{"type":"object","required":["inputs","pageUrl","disclaimer","result"],"properties":{"inputs":{"type":"object","required":["homePrice","downPayment","interestRate","homeInsurance","propertyTax","state"],"properties":{"homePrice":{"type":"number"},"downPayment":{"type":"number"},"interestRate":{"type":"number"},"homeInsurance":{"type":"number"},"propertyTax":{"type":"number"},"state":{"type":"string"}}},"pageUrl":{"type":"string"},"disclaimer":{"type":"string"},"result":{"type":"object","required":["totalMonthlyPayment","principalTotalPercentage","propertyTaxTotalPercentage","insuranceTotalPercentage","roundedPrincipalPerMonth","propertyTaxDollarsValuePerMonth","insuranceDollarsValue"],"properties":{"totalMonthlyPayment":{"type":"number"},"principalTotalPercentage":{"type":"string"},"propertyTaxTotalPercentage":{"type":"string"},"insuranceTotalPercentage":{"type":"string"},"roundedPrincipalPerMonth":{"type":"number"},"propertyTaxDollarsValuePerMonth":{"type":"number"},"insuranceDollarsValue":{"type":"number"}}}}}}}},"400":{"description":"Invalid parameters","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/calculators/home-sale":{"get":{"operationId":"evaluate_home_sale","summary":"Home sale calculator","description":"Set sale price, repairs, and mortgage payoff to return estimated net proceeds after selling costs.","parameters":[{"name":"sale_price","in":"query","required":false,"description":"Expected home sale price in dollars.","schema":{"type":"number"}},{"name":"repairs","in":"query","required":false,"description":"Expected repair credits or costs in dollars.","schema":{"type":"number"}},{"name":"mortgage_payoff","in":"query","required":false,"description":"Remaining mortgage payoff in dollars.","schema":{"type":"number"}}],"responses":{"200":{"description":"Structured calculator result","content":{"application/json":{"schema":{"type":"object","required":["inputs","pageUrl","disclaimer","result","assumedFees"],"properties":{"inputs":{"type":"object","required":["salePrice","repairs","mortgagePayoff"],"properties":{"salePrice":{"type":"number"},"repairs":{"type":"number"},"mortgagePayoff":{"type":"number"}}},"pageUrl":{"type":"string"},"disclaimer":{"type":"string"},"result":{"type":"object","required":["totalFees","totalCostToSell","netProceeds"],"properties":{"totalFees":{"type":"number"},"totalCostToSell":{"type":"number"},"netProceeds":{"type":"number"}}},"assumedFees":{"type":"object","additionalProperties":{"type":"object","required":["value","isPercentage"],"properties":{"value":{"type":"number"},"isPercentage":{"type":"boolean"}}}}}}}}},"400":{"description":"Invalid parameters","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/calculators/home-value":{"get":{"operationId":"evaluate_home_value","summary":"Home value estimator","description":"Set an address and Casa address token to return an estimated value range from Opendoor Signals.","parameters":[{"name":"address","in":"query","required":false,"description":"Human-readable address, used only for display.","schema":{"type":"string"}},{"name":"address_token","in":"query","required":true,"description":"Casa addressToken. Required for a Signals estimate. Agents cannot invent one from a street string.","schema":{"type":"string"}}],"responses":{"200":{"description":"Structured calculator result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["calculatorId","addressToken","coverage","estimate","methodology"],"properties":{"calculatorId":{"type":"string","enum":["home-value"]},"address":{"type":"string"},"addressToken":{"type":"string"},"coverage":{"type":"string","enum":["signals"]},"estimate":{"type":"object","required":["formattedAddress","lowEstimate","highEstimate","compCount","currency"],"properties":{"formattedAddress":{"type":"string"},"lowEstimate":{"type":"number"},"highEstimate":{"type":"number"},"compCount":{"type":"number"},"currency":{"type":"string"}}},"methodology":{"type":"string"}}},{"type":"object","required":["calculatorId","addressToken","coverage","formattedAddress","message"],"properties":{"calculatorId":{"type":"string","enum":["home-value"]},"address":{"type":"string"},"addressToken":{"type":"string"},"coverage":{"type":"string","enum":["none"]},"formattedAddress":{"type":"string"},"message":{"type":"string"}}}]}}}},"400":{"description":"Invalid or missing parameters","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited","headers":{"Retry-After":{"description":"Seconds until the client may retry.","schema":{"type":"integer","minimum":1}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"502":{"description":"Home-value estimate provider unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/calculators/time-savings":{"get":{"operationId":"evaluate_time_savings","summary":"Time savings calculator","description":"Set home size and prep answers to return estimated hours saved by selling with Opendoor instead of a traditional listing.","parameters":[{"name":"home_size","in":"query","required":false,"description":"Home size band used for hour estimates.","schema":{"type":"string","enum":["1","2","3","4"]}},{"name":"cleaning","in":"query","required":false,"description":"Whether the home needs cleaning before listing.","schema":{"type":"boolean"}},{"name":"staging","in":"query","required":false,"description":"Whether the home needs staging before listing.","schema":{"type":"boolean"}},{"name":"repairs","in":"query","required":false,"description":"Whether the home needs repairs before listing.","schema":{"type":"boolean"}},{"name":"decluttering","in":"query","required":false,"description":"Whether the home needs decluttering before listing.","schema":{"type":"boolean"}},{"name":"life_stage","in":"query","required":false,"description":"Life-stage copy on the result card. Does not change the hour math.","schema":{"type":"string","enum":["1","2","3","4","5","6","7","8","9"]}}],"responses":{"200":{"description":"Structured calculator result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"inputs":{"type":"object","properties":{"homeSize":{"type":"string","pattern":"^[0-4]$"},"cleaning":{"type":"string","pattern":"^[0-2]$"},"staging":{"type":"string","pattern":"^[0-2]$"},"repairs":{"type":"string","pattern":"^[0-2]$"},"decluttering":{"type":"string","pattern":"^[0-2]$"},"lifeStage":{"type":"string","pattern":"^[0-9]$"},"homeSizeLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"lifeStageLabel":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["homeSize","cleaning","staging","repairs","decluttering","lifeStage","homeSizeLabel","lifeStageLabel"],"additionalProperties":false},"pageUrl":{"type":"string"},"disclaimer":{"type":"string"},"result":{"anyOf":[{"type":"object","properties":{"hoursSaved":{"type":"number"},"allPrepNo":{"type":"boolean"},"message":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hoursSaved","allPrepNo","message"],"additionalProperties":false},{"type":"null"}]}},"required":["inputs","pageUrl","disclaimer","result"],"additionalProperties":false}}}}}}}},"components":{"schemas":{"Problem":{"type":"object","required":["type","title","status","detail","instance","code","message","resolution"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"resolution":{"type":"string"}},"additionalProperties":false}}}}