{"openapi":"3.1.0","info":{"title":"MakeMe Estimate API","version":"1.0.0","description":"Pass a commercial-real-estate address and get a MakeMe Estimate, the Zillow-style estimate for commercial real estate. An address we do not have a MakeMe Estimate for yet returns a tracked not-found, and we log it as we expand coverage. The value is an estimate, not an appraisal. We never return owner identity, mailing addresses, or tenant names.","contact":{"name":"makeme1031","url":"https://makeme1031.com"},"license":{"name":"Estimate is not an appraisal; data provided as is, without warranty."}},"servers":[{"url":"https://makeme1031.com"}],"security":[{"bearerAuth":[]},{"apiKeyQuery":[]}],"paths":{"/api/v1/estimate":{"post":{"operationId":"estimateOne","summary":"Estimate one building by address or property id.","description":"Returns the MakeMe Estimate for the address when we have one. A building we have but cannot estimate returns found:true with makeMeEstimate:null and a coverageStatus. An address we do not have returns found:false (coverageStatus:not_covered) and logs the request so we can prioritize adding it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateRequest"}}}},"responses":{"200":{"description":"A found estimate, a found-but-no-number, or a tracked not-found.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/EstimateFound"},{"$ref":"#/components/schemas/EstimateNotFound"}]}}}},"400":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/estimates":{"post":{"operationId":"estimateBatch","summary":"Estimate up to 25 buildings in one call.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchEstimateRequest"}}}},"responses":{"200":{"description":"One result per input address, in order.","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/EstimateFound"},{"$ref":"#/components/schemas/EstimateNotFound"}]}}}}}}},"400":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/{id}":{"get":{"operationId":"getProperty","summary":"PII-safe property facts + estimate by id or address slug.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The property id (kc-...) or its canonical address slug."}],"responses":{"200":{"description":"The found property.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateFound"}}}},"401":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authorization: Bearer mk_live_<key>"},"apiKeyQuery":{"type":"apiKey","in":"query","name":"api_key","description":"Alternatively pass the key as ?api_key=."}},"schemas":{"AddressComponents":{"type":"object","description":"A structured address. Google-ish aliases are accepted (street/locality/region/postalCode), so a Google Places caller can send components directly.","properties":{"line1":{"type":"string","example":"1600 7th Ave"},"street":{"type":"string"},"city":{"type":"string","example":"Seattle"},"locality":{"type":"string"},"state":{"type":"string","example":"WA"},"region":{"type":"string"},"zip":{"type":"string","example":"98101"},"postalCode":{"type":"string"}}},"AddressInput":{"description":"Either a free-text string (a Google Places formattedAddress like '1600 7th Ave, Seattle, WA 98101, USA' is fine; the trailing country is handled) OR a structured AddressComponents object.","oneOf":[{"type":"string","example":"1600 7th Ave, Seattle, WA 98101, USA"},{"$ref":"#/components/schemas/AddressComponents"}]},"EstimateRequest":{"type":"object","description":"Pass exactly one of address or propertyId.","properties":{"address":{"$ref":"#/components/schemas/AddressInput"},"propertyId":{"type":"string","example":"1600-7th-ave-seattle-wa"}}},"BatchEstimateRequest":{"type":"object","required":["addresses"],"properties":{"addresses":{"type":"array","minItems":1,"maxItems":25,"items":{"$ref":"#/components/schemas/AddressInput"}}}},"MakeMeEstimate":{"type":"object","nullable":true,"properties":{"midCents":{"type":"integer","description":"Mid estimate in cents."},"lowCents":{"type":"integer"},"highCents":{"type":"integer"},"confidence":{"type":"string","enum":["high","medium","low"]},"pricePerSqFtCents":{"type":"integer"},"asOf":{"type":"string","format":"date"},"methodologyUrl":{"type":"string","format":"uri"}}},"Property":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"address":{"type":"object","properties":{"line1":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"}}},"assetType":{"type":"string"},"buildingSizeSqFt":{"type":"integer"},"yearBuilt":{"type":"integer"},"countyAssessedValueCents":{"type":"integer","description":"Per the county assessor of record. Not a price, never the estimate."},"url":{"type":"string","format":"uri"}}},"EstimateFound":{"type":"object","properties":{"found":{"type":"boolean","enum":[true]},"property":{"$ref":"#/components/schemas/Property"},"makeMeEstimate":{"$ref":"#/components/schemas/MakeMeEstimate"},"disclaimer":{"type":"string","example":"This is an estimate, not an appraisal."},"coverageStatus":{"type":"string","enum":["market_ready","data_incomplete","public_civic","suppressed","no_county_model"]},"coverageReason":{"type":"string"}}},"EstimateNotFound":{"type":"object","description":"We accept the address but do not have a MakeMe Estimate for it yet. This is NOT an invalid-address error; the request is logged and coverage is expanding.","properties":{"found":{"type":"boolean","enum":[false]},"status":{"type":"string","enum":["not_in_directory"]},"coverageStatus":{"type":"string","enum":["not_covered"]},"message":{"type":"string"},"requestId":{"type":"string"},"query":{"type":"object"}}},"Error":{"type":"object","properties":{"error":{"type":"boolean","enum":[true]},"code":{"type":"string"},"message":{"type":"string"},"docUrl":{"type":"string","format":"uri"}}}}}}