Image · real estate

Real estate listing photo QA

Screen listing photography for AI-generated staging, impossible fixtures, or misleading visual edits before MLS publication and syndication to Zillow, Realtor.com, and Redfin. Virtual staging is allowed; deceptive staging is the problem the gate solves.

Get API key All use cases Docs

Business value

  • Distinguishes the two categories of AI in real estate photography: disclosed virtual staging (allowed and useful) and undisclosed deceptive staging (an MLS rules violation and a litigation risk).
  • Catches listings where renovated 'after' photos don't match the actual property condition, before a buyer schedules a showing and discovers the difference.
  • Reduces MLS-listing-suppression incidents and the resulting carrier-broker disputes.

Agent job to be done

Be a listing-compliance reviewer. Allow disclosed virtual staging and authentic photography. Hold listings with undisclosed manipulation cues. Reject listings where AI-generated rooms misrepresent the actual property state.

format: otherintended_use: publishdomain: real estate listing photo QA / virtual staging

MLS disclosure rules and the virtual-staging line

NAR's Code of Ethics Article 12 requires truthful representation in advertising — including photos. Most regional MLS systems (Bright MLS, CRMLS, Stellar MLS) have explicit virtual-staging disclosure rules: virtually staged photos must be labeled, and structural/fixed-property features cannot be virtually altered. The gate's value is enforcing the disclosure step uniformly across an agent's listings, especially when listings are syndicated to multiple portals with different disclosure requirements.

When to call VeracityAPI

Before MLS submission, before listing syndication to third-party portals, and on any photo replacement during the listing lifecycle.

What image URL to submit

Public HTTPS image URL for each listing photo. For listings with both 'original' and 'virtually staged' versions, score both and confirm the disclosure label matches.

Decision policy

  • allow: low risk, OR medium risk with a disclosed 'virtually staged' label visible on the photo.
  • revise: medium risk without disclosure — add the staging-disclosure overlay or replace with an unstaged photo.
  • human_review: high risk on photos representing fixed-property condition (foundation, structural elements, exterior shots) — these can't be 'virtually staged' under most MLS rules.
  • reject: photos showing rooms or features that don't exist in the actual property.

Request template

The exact payload shape this use case sends. The sample below uses representative content for this workflow; substitute your own.

curl https://api.veracityapi.com/v1/analyze \
  -H "Authorization: Bearer $VERACITY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"image","content":"https://veracityapi.com/demo/influencer-beauty-tonic.jpg","context":{"format":"other","intended_use":"publish","domain":"real estate listing photo QA / virtual staging"},"store_content":false}'

Automation recipe

  • Listing-agent worker receives the photo bundle.
  • Score each photo with intended_use=publish.
  • Cross-reference with the listing's 'has virtual staging' disclosure field — undisclosed manipulation is the failure mode to surface.
  • Allow-tagged listings flow to MLS submission.
  • Held listings route to the broker with evidence categories pinned, plus a 'add staging disclosure or replace photo' prompt.

Evidence spans agents should inspect

  • 'virtual_staging_undisclosed' — furniture, decor, or finishes inserted into otherwise-authentic room photos without staging-disclosure overlay
  • 'impossible_fixture' — fixtures or features that don't exist in the property (a 'kitchen' inserted into a room that's actually unfinished)
  • 'composite_exterior' — exterior shots with grass, landscaping, or views composited in
  • 'staging_inconsistency' — staging style that doesn't match across photos of the same room

Policy pseudocode

if (result.recommended_action === "allow") continueWorkflow();
if (result.recommended_action === "revise") rewriteWith(result.evidence, result.recommended_fixes);
if (result.recommended_action === "human_review") queueForHumanReview(result);
if (result.recommended_action === "reject") discardOrRebuild();

KPIs to track

  • % of listings with held photos before MLS submission
  • MLS rule-violation incidents per 1,000 listings (target: drop after deployment)
  • carrier-broker dispute volume
  • buyer-side complaints citing 'photos didn't match property' per quarter
  • median time from photo upload to listing-live

What can go wrong

  • Virtual staging is explicitly allowed by most MLS systems WITH disclosure. The gate's job is to enforce the disclosure step, not to prohibit virtual staging.
  • Drone photography has aerial-perspective cues that can occasionally trip 'composite_exterior' on real photos. Calibrate against your local-market drone-photography prevalence.
  • Real estate photography is highly post-processed even when it's authentic (HDR, color correction, perspective straightening). 'Low confidence' on heavily-edited photos is normal.

Cost and latency notes

Image analysis is a flat $0.02 per image. The endpoint accepts HTTPS image URLs, stores no image bytes, and logs only a URL hash plus hostname. Current v0.1 latency is vision-model-bound, so preflight balance and retry carefully.

Agent evaluation checklist