Teaser

Teaser as exposed on the public API. The shape is the same regardless of parent context (project / property pre-market / room) — the parent determines authorship, authorization, and lifecycle, not the field shape.

  • When the current teaser version was saved (UTC); each save creates a new version, so this matches updatedUtc. Before the teaser is first saved (when id is "0": the default teaser is shown) it is the creation time of the project, Case Room or property the teaser belongs to, so it never moves between reads.

  • ETag for concurrency control. Send back in If-Match on PATCH.

  • Teaser ID. Opaque string — clients should treat the value as opaque (do not parse). "0" while the teaser has never been saved.

  • When the teaser was last saved (UTC). Before the first save (when id is "0") it is the creation time of the project, Case Room or property the teaser belongs to.

  • Origin of the change: api, mcp, ui, or system. Returned only on write responses; null on GET.

  • Type of change that produced this version: create, update, or delete. Returned only on write responses; null on GET.

  • When the teaser was first communicated to prospects (UTC). Null if not yet communicated.

  • Project sales exclusivity: exclusive, non_exclusive, or other. Mirrored from the parent project (null on property / room contexts). Aligned with the project resource's exclusivity field.

  • True when the teaser is pre-market (investor-initiated portfolio teaser, before a project exists).

  • Propstreet app deeplink in the propstreet:// URI scheme. Opaque to integrators; used by first-party clients (Propstreet app, Propstreet agent) for in-app navigation.

  • Optional steerable hint when a prerequisite is missing or the current state blocks the obvious next move. Carries a stable code alongside the human-readable message — branch on the code.

    Properties: 3
  • Author-curated visibility matrix for each teaser field. The author is whoever owns the parent — broker on project / room, investor on property pre-market. Drives what third-party investors see in the projection.

    Properties: 19
  • Third-party investor projection — what investors actually see in the prospect feed and shortlist views, rendered from the stored fields after applying the author's visibility matrix. Hidden fields are absent (not null) so the JSON shape mirrors the investor view.

    Properties: 18
  • When the teaser was published — submitted to Propstreet for review (UTC). Null if not yet published.

  • Teaser workflow stage. Values, in order: property_added — a property is linked but no teaser draft exists yet; drafting — a draft exists and is still editable; investors cannot see it; published — the author has submitted the teaser to Propstreet for review and it is locked from edits until unpublished; investors still cannot see it; verified — Propstreet has reviewed and approved the teaser, so the author may now communicate it; communicated — the teaser has been sent to prospects. Null if the teaser workflow has not started.

  • Snapshot of tags visible on this teaser — the exact set the author chose to disclose to investors at write time. Stored verbatim and rendered verbatim; never resolved against the property's current pool. Subsequent property-tag edits do not change what investors see on this teaser; the author writes a new teaser to pick them up. Omitted on thin steerable envelopes (e.g., when nudge.code is no_property_attached, no_pre_market_yet, or transferred_to_other_broker).

  • What the author is allowed to choose for each option, given the active billing plan, the underlying property data, and the parent context (project / property pre-market / room).

    Properties: 20
  • Author-side display title (the teaser title as seen by whoever owns the parent — broker on project / room, investor on property pre- market). Composed from categories and locality at read time; never stored. Null when both categories and locality are unknown.

  • Opaque canonical Propstreet entity URI for deep linking.

  • When Propstreet reviewed and approved the teaser (UTC). Null if not yet verified.