Homeowner portal data map

Each screen of the portal prototype, what it shows and what it collects, and the API call and field that serve it. The status says whether the API serves it today. This page is generated from the API contract and a mapping file kept beside it, so it changes when the API does.

See the API reference for every portal call with examples, try the API live against this sandbox, or download the OpenAPI file.

Ready: the API serves it now. Partly built: part of it is served, and the note says what is missing. Not built yet: nothing serves it; the note names the planned change. A field is a path into the answer (for what a screen shows) or into the request body (for what it collects); * means every item in a list.

Insured screens

Sign in from the emailed link

The homeowner opens the link in their email and lands on their property.

WhatShows or collectsAPI callFieldStatusNote
The single-use link token from the emailCollectsPOST /lcr/v1/portal/session
exchangePortalLink
/linkTokenReadySend method passwordless_link. The answer is a session token for one property.
Who is signed in (homeowner or broker)ShowsPOST /lcr/v1/portal/session
exchangePortalLink
/personaReady
Ask for a new link when the old one has expiredCollectsPOST /lcr/v1/portal/links/reissue
requestPortalLinkReissue
/linkTokenReadyAlways answers the same way, so it never reveals whether a link was valid.
Sign outCollectsDELETE /lcr/v1/portal/session
endPortalSession
ReadyNo body; the session token is revoked.

Property header and property list

The top of every screen names the property, the policy and the people on it.

WhatShows or collectsAPI callFieldStatusNote
Case referenceShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/referenceReady
Property addressShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/propertyAddressPartly builtIn the contract, but the portal strips it from the answer today. Build list item 2.
Policy numberShowsNone yetNot built yetBuild list item 2, fed by Part C's enrichment.
Policy periodShowsNone yetNot built yetBuild list item 2.
Insured nameShowsNone yetNot built yetBuild list item 2.
Broker or agentShowsNone yetNot built yetBuild list item 2.
Front-of-home photoShowsNone yetNot built yetBuild list item 2.
Name of the person signed inShowsNone yetNot built yetBuild list item 2.
List of my propertiesShowsGET /lcr/v1/portal/associations
portalListAssociatedAssessments
/items/*/referencePartly builtBrokers only today; a homeowner is refused (403). Build list item 2.

Plan and recommendations

The plan the homeowner received, one card per recommended action.

WhatShows or collectsAPI callFieldStatusNote
Action number (Recommendation N)ShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/labelReady
Action titleShowsNone yetNot built yetThe catalog holds a title but the portal does not expose it. Build list item 5.
What to doShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/actionTextReady
Why it mattersShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/whyItMattersReady
Building it applies toShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/affectedStructureReady
Photos of the conditionShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/images/*/access/urlReadyShort-lived signed links; fetch them again when they expire.
Due dateShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/currentDueDateReadyoriginalDueDate keeps the first date when an extension is approved.
Action status, in customer wordingShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/statusLabelReadystatus holds the stable value; statusLabel the words to show.
Plan progress (done out of total)ShowsGET /lcr/v1/portal/assessment/progress
portalGetProgress
/completeReadytotal, open, overdue and underReview sit beside it.
Agree-by deadlineShowsGET /lcr/v1/portal/assessment/intent
portalGetIntent
/deadlinePartly builtOne deadline for the whole plan today (14 days). Per action, 30 days after delivery, is B1 (PR
Messages that need the homeowner's attentionShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/needsAttention/*/messageReady
Download the plan as a PDFShowsGET /lcr/v1/portal/assessment/report
portalGetReportPdf
/urlReadyOnly when pdfAvailable is true on the assessment.

Answer each action

For each action the homeowner says "I'll do this", "I need a change" or "I will not complete this".

WhatShows or collectsAPI callFieldStatusNote
"I'll do this" for one actionCollectsPUT /lcr/v1/portal/assessment/intent
portalPutIntent
/choicePartly builtOne answer for the whole plan today (comply_by_current_dates). Per action is B1 (PR
"I will not complete this" with a reason, for one actionCollectsPUT /lcr/v1/portal/assessment/intent
portalPutIntent
/commentPartly builtWhole plan only today (no_intent_to_comply with a comment). Per action is B1 (PR
"I need a change": more timeCollectsPOST /lcr/v1/portal/recommendations/{recommendationId}/requests
portalCreateItemRequest
/requestedDateReadykind date_adjustment, with a reason.
"I need a change": a different approachCollectsPOST /lcr/v1/portal/recommendations/{recommendationId}/requests
portalCreateItemRequest
/requestedOutcomeReadykind alternate_mitigation, with a reason.
More time and a different approach in one requestCollectsPOST /lcr/v1/portal/recommendations/{recommendationId}/requests
portalCreateItemRequest
/kindPartly builtA second request while one is open is refused (409 open_request_exists). Build list item 1.
Reason for the changeCollectsPOST /lcr/v1/portal/recommendations/{recommendationId}/requests
portalCreateItemRequest
/reasonReady
State of the change requestShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/openRequest/stateReadypending, approved, rejected or withdrawn.
Each action's own answer and its stateShowsNone yetNot built yetB1 (PR
Outcome when the team denies "I will not complete this"ShowsNone yetNot built yetB1. Our system never cancels; the app decides what to show.

Send photos and documents

The homeowner sends proof that an action is done, at any time, one file or many.

WhatShows or collectsAPI callFieldStatusNote
Choose the files to sendCollectsPOST /lcr/v1/portal/recommendations/{recommendationId}/evidence/uploads
portalInitiateEvidenceUpload
/files/*/fileNameReadyEach file gets a signed upload link; JPEG, PNG, PDF and Word (.docx) today.
File limits to show before sendingShowsPOST /lcr/v1/portal/recommendations/{recommendationId}/evidence/uploads
portalInitiateEvidenceUpload
/limits/maxFilesReadyAlso maxBytesPerFile and allowedMediaTypes.
Files refused and whyShowsPOST /lcr/v1/portal/recommendations/{recommendationId}/evidence/uploads
portalInitiateEvidenceUpload
/rejected/*/messageReady
Finish sendingCollectsPOST /lcr/v1/portal/evidence/uploads/{uploadId}/confirm
portalConfirmEvidenceUpload
/files/*/clientRefReady
A statement instead of a photo (attestation)ShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/attestation/statementReadyOnly on actions whose catalog entry allows one.
The homeowner's answer to the statementCollectsPOST /lcr/v1/portal/recommendations/{recommendationId}/attestations
portalSubmitAttestation
/selectedResponseReady
What the reviewer still needsShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/moreEvidenceExplanationReadyOnly while the action is more_evidence_needed.
Photo areas tied to the before photos (one after-photo per area)ShowsNone yetNot built yetBuild list item 3.
HEIC photos from iPhonesCollectsNone yetNot built yetRefused as an unsupported type today. Build list item 3.
More than 10 files in one batchCollectsPOST /lcr/v1/portal/recommendations/{recommendationId}/evidence/uploads
portalInitiateEvidenceUpload
/filesPartly builtThe 11th and later files are refused today. Build list item 3.
Invoice as a document kind, and .doc filesCollectsNone yetNot built yetBuild list item 3.
Recorded confirmation: these photos were taken at this property and show the work todayCollectsNone yetNot built yetBuild list item 3.
What was sent, when and by whomShowsNone yetNot built yetNo portal read of sent files yet. Build list item 3.

Action history

Dates and people for each step of an action, and the plan's completion.

WhatShows or collectsAPI callFieldStatusNote
Date the plan was agreed, and by whomShowsGET /lcr/v1/portal/assessment/intent
portalGetIntent
/current/respondedAtPartly builtFor the whole plan today; per action is B1 (PR
Change request details and outcomeShowsPOST /lcr/v1/portal/recommendations/{recommendationId}/requests
portalCreateItemRequest
/statePartly builtReturned when the request is made; later the assessment shows only its id and state. Build list item 4.
Date photos were sent, with the personShowsNone yetNot built yetBuild list item 4.
Date an action was verified, with the personShowsNone yetNot built yetBuild list item 4.
The action is completeShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/statusReadyThe value complete, only once the team has accepted the proof.
The plan's Completed dateShowsNone yetNot built yetShown automatically once every action is verified; staff still close the official record. Build list item 4.

What the plan covers

The wider picture around the actions, so the homeowner sees what is already in good shape.

WhatShows or collectsAPI callFieldStatusNote
Guidance for each actionShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/guidanceReady
What You Don't Need to DoShowsNone yetNot built yetBuild list item 5.
How to Keep This UpShowsNone yetNot built yetBuild list item 5.
Conditions already in good shape ("17 checked, 13 in great shape")ShowsNone yetNot built yetBuild list item 5.
Completed and Verified badgeShowsNone yetNot built yetBuild list item 5.

Questions and chat

The homeowner asks the loss-control team a question and reads the replies.

WhatShows or collectsAPI callFieldStatusNote
The conversationShowsGET /lcr/v1/portal/questions
portalListQuestions
/items/*/bodyReadysender and sentAt sit beside each message.
Ask a questionCollectsPOST /lcr/v1/portal/questions
portalAskQuestion
/bodyReadyrecommendationId ties it to one action.
Unread message countShowsNone yetNot built yetBuild list item 6.
Ask for help with the portalCollectsPOST /lcr/v1/portal/support-requests
portalRequestSupport
/descriptionReady

Broker screens

Broker sign-in

Brokers sign in with email, password and an emailed code; they never get a passwordless link.

WhatShows or collectsAPI callFieldStatusNote
Email and passwordCollectsPOST /lcr/v1/portal/signin
startPortalSignin
/emailReadyStarts a challenge; a code is emailed.
The emailed codeCollectsPOST /lcr/v1/portal/signin/verify
verifyPortalSignin
/codeReadyThe answer is a sign-in assertion for the session call.
Open a session with the assertionCollectsPOST /lcr/v1/portal/session
exchangePortalLink
/signinAssertionReadySend method conventional_signin.
Set or reset a passwordCollectsPOST /lcr/v1/portal/recovery
startPortalRecovery
/emailReadyFinished with completePortalRecovery.

My properties

A broker sees every property they are associated with and moves between them.

WhatShows or collectsAPI callFieldStatusNote
Property reference for each propertyShowsGET /lcr/v1/portal/associations
portalListAssociatedAssessments
/items/*/referenceReady
Open one propertyCollectsPOST /lcr/v1/portal/session/switch
portalSwitchAssessment
/assessmentIdReadyEach property needs its own session token.
Property address in the listShowsNone yetNot built yetBuild list item 2.
Each property's progress in the listShowsNone yetNot built yetToday the broker opens each property to see it.

A property's plan

The same plan, actions and history the homeowner sees, for the property the broker opened.

WhatShows or collectsAPI callFieldStatusNote
Recommended actionsShowsGET /lcr/v1/portal/assessment
portalGetAssessment
/recommendations/*/actionTextReadySame answer as the homeowner's plan screen.
Plan progressShowsGET /lcr/v1/portal/assessment/progress
portalGetProgress
/items/*/statusReady
Policy number and insured nameShowsNone yetNot built yetBuild list item 2.

Broker questions and chat

The broker's conversation with the loss-control team about one property.

WhatShows or collectsAPI callFieldStatusNote
The conversationShowsGET /lcr/v1/portal/questions
portalListQuestions
/items/*/bodyReady
Ask a questionCollectsPOST /lcr/v1/portal/questions
portalAskQuestion
/bodyReady
Unread message count across propertiesShowsNone yetNot built yetBuild list item 6.

Portal operations not used by the prototype

These calls exist but no prototype screen uses them yet.