Exposure
An Exposure is the moment one unit meets the Variant its Flag assigned, logged with every option and its propensity.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
unit | string | required | What was randomized: a Visitor, a Customer, a request, or an agent choice. |
options | json | required | Every Variant that was possible at that moment. |
propensity | number | required | The probability the assigned Variant had, kept for later estimates. |
at | datetime | required | When the unit met the Variant. |
triggered | boolean | True when the unit reached the point the Variant changes. |
Object
{
"$id": "https: //api.sb/ patentpad.com/ exposures/ exposure_1",
"$type": "Exposure",
"unit": "Example unit",
"options": {},
"propensity": 1,
"at": "2026-10-22T12: 00: 00Z",
"triggered": true
}Relationships
- An Exposure meets one Variant: the Variant the Flag assigned to this unit.
meets, inverseexposures.
Verbs
createCreates an Exposure.POST /{namespace}/exposuresgetReturns one Exposure by id.GET /{namespace}/exposures/{id}listReturns Exposures, newest first, one page at a time.GET /{namespace}/exposures
An Exposure is kept forever and never edited: it has no update or delete.
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Exposure.create | Yes | Yes | Yes | No |
Exposure.get | Yes | Yes | Yes | Yes |
Exposure.list | Yes | Yes | Yes | Yes |
Call it
Add an exposure to ShiftNote.Example
A Visitor who scrolls to a tutoring site's pricing table meets its Flag split. One Exposure records both Variants as options, the challenger assigned at a propensity of 0.5.