FullVision
Audiences

Compile Audience Criteria

posthttps://db.fullvision.io/v1/audiences/compile

Returns a sized, floor-checked preview of who the audience would contain — no activation.

Use it when you are still drafting the rules and want to know "how many people is this?" before creating anything. Nothing is persisted.

Validate a criteria tree and get a fast row-count estimate without writing. The authoring loop is build → compile → revise → commit. Validation errors land in the 200 body as { valid: false, errors[] } — not as a 422. When the estimator hits the 5s CH budget the response carries estimated_count: { count: null, is_estimate: true, hit_limit: true }.

Authorization

AuthorizationBearer <token>

API key as Bearer token

In: header

Request Body

application/json

Responses

Compile result (validation errors land in errors[] with valid: false).

Validation-and-estimate result. Validation failures land inside errors[] with valid: false — NOT as a 422. Shape branches on valid: when false only errors accompanies it; when true errors is omitted and is_time_windowed + estimated_count are present.

post/v1/audiences/compile
curl -X POST "https://db.fullvision.io/v1/audiences/compile" \  -H "Content-Type: application/json" \  -d '{    "criteria_json": {      "version": 1,      "root": {        "op": "and",        "children": [          null        ]      }    }  }'
Example Request Body
json
{  "criteria_json": {    "version": 1,    "root": {      "op": "and",      "children": [        null      ]    }  }}
Example Responses
{  "valid": true,  "errors": [    {      "code": "invalid_envelope",      "path": "string",      "message": "string"    }  ],  "is_time_windowed": true,  "estimated_count": {    "count": 0,    "is_estimate": true,    "hit_limit": true  }}
application/json