Appearance
Get Started
Build a server-side integration that previews fee + turnaround, creates an Open Quote, and optionally receives webhooks.
Compliance
Never display estimated values, AVMs, assessed values, or sale prices as part of a quote offer when using this API. Appraiser Flow will not return those fields on public quote endpoints.
1. Create a test key
In Appraiser Flow: Company → Public API → Create Key.
Scopes for MVP:
products:readfees:readquotes:writequotes:readfiles:write
Copy the secret once. Store it in your server environment — never in browser JavaScript.
2. Pick an environment
| Env | API host | Key |
|---|---|---|
| Local | http://localhost:8000 | af_test_ |
| Staging | https://staging-api.appraiserflow.ai | af_test_ |
| Production | https://api.appraiserflow.ai | af_live_ |
See Environments.
3. Preview fee + turnaround
bash
curl -sS "$AF_API/public/v1/fees/preview" \
-H "Authorization: Bearer $AF_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_code": "1004",
"subject": {
"line1": "123 Main St",
"city": "Nashville",
"state": "TN",
"postal_code": "37203",
"county": "Davidson"
}
}'4. Create an Open Quote
Always send Idempotency-Key on creates.
bash
curl -sS "$AF_API/public/v1/quotes" \
-H "Authorization: Bearer $AF_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"schema_version": 1,
"product_code": "1004",
"subject": {
"line1": "123 Main St",
"city": "Nashville",
"state": "TN",
"postal_code": "37203",
"county": "Davidson"
},
"client": {
"name": "Acme Mortgage",
"email": "orders@acme.example",
"phone": "(615) 555-0100"
},
"source": "website"
}'Your office completes and sends the quote inside Appraiser Flow.