POST /messaging/features/evaluate to read decisions for feature keys supplied with
your integration. A decision describes availability for the requested surface;
it does not authorize an action or change your plan.
Send an organization or project credential in the Authorization header. Client
tokens cannot call this endpoint. The credential determines the organization;
do not send an organization ID in the request.
The request contains surface and keys. Both use lowercase identifiers with
optional dots or hyphens. Request at most 50 keys and keep the body below 16 KiB.
Unknown, retired, and unauthorized keys are omitted from the response. Betas
that are neither offered nor enrolled are also omitted. Offered betas include
their terms before enrollment and remain unavailable until enrollment succeeds.
Enrolled betas remain visible after an offer is withdrawn. An empty key list
returns an empty list.
Each returned item contains a decision with key, version, available,
enrolled, variant, and experimentAssigned, alongside title, description,
termsRevision, withdrawal, and exposureToken. Feature versions are positive
integers.
Machine credentials receive the control variant for experiments,
experimentAssigned: false, and exposureToken: null. The optional
measurementAllowed request field does not enable measurement for machine
credentials.
Do not cache decisions or reuse them after switching organizations. The API checks
authority again when you perform a protected action. A failed availability read
does not grant access. Retrying a read does not enroll your organization or change
a feature setting.
See the API reference for the request and response
schema. Use an authenticated HTTP request when your SDK has no matching method.