Appearance
POST /public/v1/quotes
| Auth | Required |
| Scope | quotes:write |
| Idempotency-Key | Required |
Creates an Open Quote for the office queue. Does not auto-send to the client.
Compliance
Public response is fee + turnaround only. Value language in notes is stripped.
Request
json
{
"schema_version": 1,
"external_reference": "WEB-10482",
"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"
},
"notes": "Gate code 1234",
"source": "website",
"metadata": { "utm_campaign": "spring" }
}metadata max 8 KB. source is api | website | zapier.
Response fields
| Field | Type |
|---|---|
id | uuid |
status | string |
external_reference | string or null |
product_code | string or null |
fee | string or null |
turnaround_days | int or null |
created_at | datetime |
source | string |
Webhook: quote.created (minimized payload).
Try It
Try It — uses https://staging-api.appraiserflow.ai/public/v1. Keys stay in sessionStorage only. af_live_ keys are blocked.
Errors
| Status | Code |
|---|---|
| 400 | idempotency_key_required |
| 409 | idempotency_conflict |
| 403 | insufficient_scope |