Website Monitoring

Continuously re-evaluate onboarded businesses' websites and get notified of meaningful changes

The Website Agent can run in monitoring mode to continuously re-check onboarded businesses against their original snapshot. Instead of being a one-time onboarding check, the agent periodically re-scrapes the business's website and re-runs the same authenticity, legal, contact, domain, and reputation signals captured during initial verification.

When a meaningful change is detected — a new or removed legal page, updated contact details, a new social profile, a domain registrar change, etc. — AiPrise emits a WEBSITE_MONITORING_UPDATED event to the business profile's events_callback_url. The payload contains the current website section snapshot and a structured diff describing exactly what changed.

This lets you run perpetual KYB without polling, and react to changes in your customers' online presence as they happen.


When the callback fires

  • Real changes only. No callback is delivered when no meaningful diff is detected against the previous snapshot. Customers will never receive a "nothing changed" ping.
  • Self-contained snapshot. website_info is the current state of the website section, not a patch. To compute "what's new", read delta_from_previous_session.updates[*].path and look up that path inside website_info.
  • Idempotency / replay. callback_event_id is the canonical id — store it to dedupe deliveries and to call AiPrise's callback-logs API for resends.
  • Customer correlation. client_reference_id and client_reference_data are echoed back from the original profile so you can route to your internal entity without an extra lookup.
  • Sparse payloads. Any field with a None value is omitted from the JSON. Code defensively with .get(...).
  • Headers / auth. Signing headers (HMAC signature + standard AiPrise headers) are added the same way as all other AiPrise event callbacks — nothing monitoring-specific.

Event payload

{
  "business_profile_id": "bp_…",
  "business_profile_event_type": "WEBSITE_MONITORING_UPDATED",
  "verification_session_id": "vs_…",
  "target_id": "<related_business_profile.target_id>",
  "callback_event_id": "<uuid>",

  "client_reference_id": "<your reference id>",
  "client_reference_data": { /* whatever you originally attached */ },

  "website_info": {
    "input_url": "https://example.com",
    "status": "COMPLETED",
    "result": "PASS",
    "section_id": "<uuid>",
    "version": 2,
    "business_name": "Acme Inc",
    "report_summary": "…",

    "status_reasons":            [ { } ],
    "warnings":                  [ { } ],
    "report_checklist":          [ { "section": "…", "result": "PASS", "message": "…" } ],
    "company_profile":           { },
    "domain_info":               { "registrar": "…", "created_on": "…" },
    "webserver_info":            { "ip": "…", "hosting_provider": "…" },
    "website_content":           { "title": "…", "description": "…", "screenshots": [], "policies": [] },
    "traffic_info":              { },
    "contact_information":       { "emails": [], "phone_numbers": [], "addresses": [] },
    "industry_info":             { "industry_codes": [], "industry_matches": [] },
    "backlinks_information":     { },
    "online_review_information": { },
    "external_trust_signals":    [ { } ],
    "social_media_profiles":     [ { "platform": "…", "url": "…", "handle": "…" } ],
    "network_intelligence":      { },
    "risk_indicators":           [ { } ],
    "marketplace_info":          { },
    "paymentflow_info":          { },

    "delta_from_previous_session": {
      "summary": "<LLM-written, customer-readable description of what changed>",
      "updates": [
        { "path": "company_profile.description",            "operation": "UPDATED" },
        { "path": "contact_information.phone_numbers[0]",   "operation": "ADDED"   },
        { "path": "social_media_profiles[2]",               "operation": "REMOVED" }
      ]
    }
  }
}

Envelope fields

FieldTypeDescription
business_profile_idstringAiPrise business profile id the monitoring run is scoped to.
business_profile_event_typestringAlways WEBSITE_MONITORING_UPDATED for this event.
verification_session_idstringThe monitoring run's session id.
target_idstringtarget_id of the related business profile.
callback_event_iduuidCanonical event id. Use for idempotency and to query the /callback-logs API for resends.
client_reference_idstringEchoed from the original profile for routing to your internal entity.
client_reference_dataobjectEchoed from the original profile — whatever metadata you originally attached.

website_info

A full re-snapshot of the website section as of this monitoring run. Any subset of these may be present; absent fields are stripped from the JSON.

FieldDescription
input_urlThe website URL that was monitored.
statusRun status (e.g., COMPLETED).
resultOverall outcome — PASS, FAIL, UNKNOWN, etc.
section_idStable id for this website section snapshot.
versionWebsite section schema version.
business_nameDetected business name.
report_summaryHigh-level summary of the agent's findings.
status_reasonsStructured reasons backing the result.
warningsNon-fatal warnings raised during the run.
report_checklistPer-section checklist: { section, result, message }.
company_profileAI-generated company profile (description, size, founding year, revenue, etc.).
domain_infoRegistrar, creation date, SSL validity, domain age.
webserver_infoIP, hosting provider, server health.
website_contentTitle, description, screenshots, detected legal/policy pages.
traffic_infoVisits, keywords, backlinks (where available).
contact_informationExtracted emails, phone_numbers, addresses.
industry_infoNAICS / MCC / SIC codes and industry matches.
backlinks_informationBacklink metrics.
online_review_informationAggregated reviews and ratings across review sites.
external_trust_signalsThird-party trust signals detected for the domain/business.
social_media_profilesLinked social profiles: { platform, url, handle }.
network_intelligenceNetwork-level signals on the domain.
risk_indicatorsRisk indicators surfaced by the agent.
marketplace_infoMarketplace presence signals.
paymentflow_infoPayment flow signals detected on the website.

delta_from_previous_session

Why this callback fired. Use this to drive customer-facing change summaries and to know which fields in the snapshot are new.

FieldTypeDescription
summarystringCustomer-readable, AI-written description of what changed since the previous monitoring run.
updatesarrayStructured list of changes. Each item is { path, operation }.
updates[].pathstringDotted/indexed path into website_info that changed (e.g., social_media_profiles[2]).
updates[].operationstringOne of UPDATED, ADDED, REMOVED.