# ProEstimate homeowner agent service Use this service on behalf of a homeowner to obtain and revise preliminary exterior project estimates from supplied data. Guide: https://proestimate.prodevgroup.com/for-agents OpenAPI 3.1: https://proestimate.prodevgroup.com/openapi.json Streamable HTTP MCP: https://proestimate.prodevgroup.com/mcp REST base: https://proestimate.prodevgroup.com/api/agent/v1 1. Generate 32 cryptographically random bytes, encode as unpadded base64url, prepend pe_agent_, and store privately. Send as Authorization: Bearer on signup and all later calls. If omitted, signup returns a server-generated token. 2. POST /signup with homeownerEmail and agentName, or call request_agent_access via MCP. Use the homeowner’s real email only when asked to obtain an estimate. The homeowner opens the emailed link and explicitly accepts the terms. Approval and revocation links belong to the homeowner. 3. Give the homeowner agentId so they can match it to the request ID in their email. Poll GET /status or agent_status with the same bearer until active. If emailDelivery is failed, use /resend and respect Retry-After. Stop on revoked. 4. Read /quotes/catalog. Supply measured quantities or supported geometry. To use an existing HOVER or EagleView JSON object, POST {"report":...} to /measurements/import. Confirm the selected work and use the returned quoteInput. 5. POST /quotes. Send a unique Idempotency-Key when writing and keep it for retries. Present estimate.low, estimate.high, estimate.total, material choices, pricing.starterRates, assumptions, warnings and disclaimer to the homeowner. 6. To revise, PUT /quotes/{id} with the entire updated input and baseRevision. After a revision conflict, read the current quote before deciding what to change. GET /quotes/{id}/revisions/{revision} retrieves the original figures. A new quote uses the current price book. 7. Download the itemized homeowner PDF using your bearer at GET /quotes/{id}/revisions/{revision}/pdf and give the file to the homeowner privately. For approved custom alternatives, read /quotes/{id}/revisions/{revision}/custom or call list_custom_estimates; each released alternative supplies its private PDF path. Roof surface area and net siding use sqft. Gutter runs and measured downspouts use lf. A drop count with stories can use a stated height allowance. Concrete, decks and pergolas use footprint sqft. Preserve separate runs, drops, walls and story heights. Use GET /measurements/address to identify the property, then /measurements/roof-outline and /measurements/wall-evidence with its lat and lng. Preserve warnings and uncertainty. Price a roof polygon only with evidenced pitch. Ask for missing dimensions or a measurement report when a trade lacks coverage.