Appraisal Data Extraction API
Programmatic access to BRAVE-format data extraction from commercial real estate appraisal PDFs. Upload an appraisal, receive structured JSON with all 99 fields — ready for your underwriting models, Argus, or internal databases.
REST API
Simple multipart/form-data upload. JSON responses.
Authenticated
Bearer token auth. Rate-limited per key.
99 BRAVE Fields
Full extraction in under 60 seconds per PDF.
Base URL
All endpoints require an Authorization: Bearer YOUR_API_KEY header. API keys are issued on request — contact us for access.
Authentication
API access is not self-serve
To protect the integrity of our extraction pipeline and manage costs, API keys are issued on a case-by-case basis. Contact help@appraisalapi.com with your use case, expected volume, and company details. We typically respond within one business day.
Looking to extract a few appraisals? Use the free web tool — no API key needed, up to 5 extractions per day.
Endpoints
/api/v1/extract Requires API KeyUpload a commercial real estate appraisal PDF and extract all 99 BRAVE-format fields. The API validates the document is a CRE appraisal before running the full extraction pipeline.
Request
Content-Type: multipart/form-data
file — PDF file (max 50 MB, must be application/pdf)
curl -X POST https://appraisalapi.com/api/v1/extract \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "file=@appraisal.pdf"Response
{
"ok": true,
"cached": false,
"data": {
"Job.ClientRef": "LOAN-2026-0442",
"Job.ReportDate": "2026-03-15",
"Property.Name": "Oakwood Business Park",
"Property.AddressStreet": "1200 Commerce Dr",
"Property.AddressCity": "Dallas",
"Property.AddressState": "TX",
"Property.Type": "Industrial",
"Property.GBA": 142000,
"Income.PGI": 1850000,
"Income.EGI": 1665000,
"Income.NOI": 1248000,
"Value.CapRate": 6.75,
"Value.ReconciledFinal": 18500000
},
"pages": { "Job.ClientRef": 3, "Property.Name": 1 },
"hash": "5ef557a6b945..."
}Error Codes
400Missing or invalid file401Invalid or missing API key422Document is not a CRE appraisal429Rate limit exceeded503Extraction service unavailable/api/v1/download Requires API KeyGenerate and deliver BRAVE-format XLSX and CSV files from a completed extraction. Files are emailed to the specified address with both formats attached.
Request
Content-Type: application/json
email — Delivery email address
termsAccepted — Must be true
hash — PDF hash from the extract response
data — The extracted BRAVE fields object
curl -X POST https://appraisalapi.com/api/v1/download \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "analyst@yourfirm.com",
"termsAccepted": true,
"hash": "5ef557a6b945...",
"data": { ... }
}'Response
{
"ok": true,
"message": "BRAVE XLSX + CSV sent to analyst@yourfirm.com",
"formats": ["xlsx", "csv"]
}/api/healthCheck API availability and current version. This endpoint does not require authentication and is not versioned.
Response
{
"status": "ok",
"version": "1.0.0",
"timestamp": "2026-03-26T14:30:00.000Z"
}BRAVE Field Schema
Every extraction returns all 99 fields from the BRAVE (Banking Real Estate Appraisal Valuation Exchange) standard, organized into 5 categories. Fields use dot-notation keys matching the official specification.
Job
3 fieldsJob.ClientRefJob.ReportDateJob.CurrencyTypeProperty
52 fieldsProperty.NameProperty.TypeProperty.GBAProperty.AddressCityProperty.Tax.YearProperty.Latitude+46 moreIncome
16 fieldsIncome.PGIIncome.EGIIncome.NOIIncome.VacancyRateIncome.OpEx+11 moreValue
24 fieldsValue.CapRateValue.ReconciledFinalValue.IncomeApproachValue.SalesCompApproachValue.DiscountRate+19 moreAppraiser
4 fieldsAppraiser.NameAppraiser.LicenseNumberAppraiser.CompanyAppraiser.StateSee the complete BRAVE 99-field reference for full field descriptions, types, and validation rules.
Rate Limits
| Tier | Extractions / Day | Max File Size | Concurrent |
|---|---|---|---|
| Free (Web) | 5 | 50 MB | 1 |
| Starter API | 50 | 50 MB | 3 |
| Enterprise | Custom | 100 MB | 10+ |
Ready to integrate?
Tell us about your use case and we'll get you set up with API access.