Preview a support operation cohort
curl --request POST \ --url https://auth.example.com/api/admin/support-ops/cohorts/preview \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "resource": "User", "selector": { "field": "status", "op": "eq", "value": "active" }, "intent": { "action": "suspend" } }'Preview matched, actionable, and blocked counts for a support operation selector without saving a cohort. After low-count and complementary suppression, visible counts and the risk summary’s matched count are rounded down in steps of the resource’s minimum count. Preview privacy reports count_exact=false and count_precision=min_count. Preview audit counts use the same values. Frozen cohort counts retain their existing privacy rules.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”Preview a resource selector without saving a cohort. Only resource is required. Omitting selector selects all active records; omitting intent.action applies no action-specific blockers. Use the resource registry for allowed fields, operators, and implemented actions. Currently only User and its suspend action are supported.
object
A field/op/value condition or a nested all/any group of 1-20 selectors. Fields must be filterable and non-sensitive, and operators and values must be allowed by the resource registry. PII fields such as email are refused.
object
object
Example
{ "resource": "User", "selector": { "field": "status", "op": "eq", "value": "active" }, "intent": { "action": "suspend" }}Responses
Section titled “ Responses ”A privacy-preserving selector preview. Counts are suppressed when necessary, then rounded down in steps of privacy.count_precision. No cohort, target identities, or selector values are returned.
object
Distinct sorted blocker codes, empty when blocked reasons are suppressed.
object
Equal to min_count, the resource’s minimum count.
object
Equal to privacy.low_count_suppressed.
Sensitive selector fields are refused rather than read.
Example
{ "resource": "User", "matched_count": 30, "actionable_count": 20, "blocked_count": 10, "blocked_reasons": [ "not_active" ], "blocked_reasons_suppressed": false, "privacy": { "min_count": 10, "low_count_suppressed": false, "count_exact": false, "count_precision": 10 }, "risk": { "min_count": 10, "matched_count": 30, "low_count_suppressed": false, "uses_sensitive_field": false, "risk_level": "low", "approval_required": true }, "selector_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}The resource, requested action, or selector is unsupported or invalid.
object
Example
{ "error": "invalid_selector", "error_description": "Invalid selector"}The caller lacks admin:support_ops:cohorts:preview.
object
Example
{ "error": "forbidden", "error_description": "Missing permission: admin:support_ops:cohorts:preview"}An account exists in more than one account database (account_store_ambiguous), or counts changed while their ownership was checked (count_unverified). No counts are returned.
object
Example
{ "error": "count_unverified", "error_description": "The counts could not be verified across the account databases"}default
Section titled “default ”Error response.
object
Example generated
{ "error": "example", "message": "example", "error_description": "example"}