Log Custom Exposure Events

Manually logs exposure events for experiments or feature gates. Useful for analytics-only experiments, delayed exposure logging, or when automatic exposure l…

Manually logs exposure events for experiments or feature gates. Useful for analytics-only experiments, delayed exposure logging, or when automatic exposure logging is disabled.

posthttps://api.statsig.com/v1/log_custom_exposure

Authorizations

statsig-api-keystringrequired

apiKey (header)

Body

application/json
exposuresobject[]required

Array of exposure events to log

Show child attributes
experimentNamestring

Name of the experiment or dynamic config

Constraints:min length: 1
userobject

User object containing identification and attributes for evaluation. At minimum, provide at least one identifier.

userIDstring

Primary user identifier

Example:user-123
emailstring

User email address

Example:user@example.com
Constraints:format: email
ipstring

User IP address for geo-targeting

Example:192.168.1.1
userAgentstring

User agent string for device/browser targeting

Example:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
countrystring

2-letter country code (ISO 3166-1 alpha-2)

Example:US
localestring

Locale/language code

Example:en_US
appVersionstring

Application version

Example:1.2.3
customobject

Custom user attributes for targeting (string, number, boolean, or array of strings)

Example:{"subscription_plan":"premium","account_age_days":45,"is_beta_tester":true}
privateAttributesobject

Private attributes used for evaluation but not logged to analytics

Example:{"internal_user_id":"12345"}
customIDsobject

Additional custom identifier mappings

Example:{"companyID":"company-456","deviceID":"device-789"}
statsigEnvironmentobject

Environment tier for targeting

tierstring

Environment tier

Allowed values:productionstagingdevelopment
groupstring

Group name (use this OR ruleID)

Constraints:min length: 1
ruleIDstring

Rule ID (use this OR group)

timeoneOf

Exposure timestamp

Constraints:integer (format: int64)string
secondaryExposuresobject[]
gatestringrequired

Name of the gate

gateValuestringrequired

Gate value as string ('true' or 'false')

ruleIDstringrequired

Rule ID that was evaluated

gateNamestring

Name of the feature gate

Constraints:min length: 1
passesboolean

Whether the gate passed

userobject

Shared user object for all exposures

Show child attributes
userIDstring

Primary user identifier

Example:user-123
emailstring

User email address

Example:user@example.com
Constraints:format: email
ipstring

User IP address for geo-targeting

Example:192.168.1.1
userAgentstring

User agent string for device/browser targeting

Example:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
countrystring

2-letter country code (ISO 3166-1 alpha-2)

Example:US
localestring

Locale/language code

Example:en_US
appVersionstring

Application version

Example:1.2.3
customobject

Custom user attributes for targeting (string, number, boolean, or array of strings)

Example:{"subscription_plan":"premium","account_age_days":45,"is_beta_tester":true}
privateAttributesobject

Private attributes used for evaluation but not logged to analytics

Example:{"internal_user_id":"12345"}
customIDsobject

Additional custom identifier mappings

Example:{"companyID":"company-456","deviceID":"device-789"}
statsigEnvironmentobject

Environment tier for targeting

tierstring

Environment tier

Allowed values:productionstagingdevelopment
statsigMetadataobject

SDK metadata for tracking SDK type, version, and other diagnostic information

Example:{"sdkType":"js-client","sdkVersion":"4.20.0","exposureLoggingDisabled":false}
Show child attributes
sdkTypestring

SDK type sending the request (e.g., js-client)

sdkVersionstring

SDK version

exposureLoggingDisabledboolean

When true, prevents the HTTP API from automatically logging exposures. Use this only if you will handle exposure logging yourself.

Response

application/json
202· Exposures accepted for processing
successbooleanrequired

Whether the request was successful

Was this helpful?