Appearance
Quotes
Scopes: quotes:write, quotes:read, files:write.
API-created quotes enter the tenant Open Quote queue (same family as email ingest). Staff complete, adjust, and send from Appraiser Flow unless a future tenant automation explicitly allows auto-send.
Create quote
http
POST /public/v1/quotes
Authorization: Bearer af_test_••••
Idempotency-Key: …
Content-Type: application/jsonjson
{
"schema_version": 1,
"external_reference": "WEB-10482",
"product_code": "1004",
"subject": {
"line1": "123 Main St",
"line2": null,
"city": "Nashville",
"state": "TN",
"postal_code": "37203",
"county": "Davidson"
},
"client": {
"name": "Acme Mortgage",
"email": "orders@acme.example",
"phone": "(615) 555-0100"
},
"borrower": {
"name": "Jane Doe",
"email": null,
"phone": null
},
"notes": "Gate code 1234",
"source": "website",
"metadata": {
"form_id": "contact-appraisal"
}
}Phone fields should use US display form (XXX) XXX-XXXX when provided.
Response (illustrative)
json
{
"id": "uuid",
"status": "open",
"external_reference": "WEB-10482",
"product_code": "1004",
"fee": "450.00",
"turnaround_days": 7,
"created_at": "2026-08-19T18:00:00Z"
}No value estimates are returned.
Get quote
http
GET /public/v1/quotes/{id}Public-safe summary + status for tracking UIs. Unknown or cross-tenant ids → 404.
Lookup by your reference:
http
GET /public/v1/quotes?external_reference=WEB-10482Attach document
http
POST /public/v1/quotes/{id}/documents
Authorization: Bearer af_test_••••
Content-Type: multipart/form-data| Field | Description |
|---|---|
file | PDF or image (PNG/JPEG/WebP) within size limits (max 15 MB) |
document_type | e.g. letter_of_engagement, other |
Uploads are antivirus-scanned. Rejected or quarantined files return an error — do not assume attach succeeded without a 2xx.
Store engagement letters and supporting files here so staff do not re-upload.
Status values (typical)
| status | Meaning |
|---|---|
open | In office queue |
sent | Quote sent to client |
accepted | Converted / accepted |
expired | Past validity |
declined | Client declined |
Exact enum ships with OpenAPI when implemented.