> ## Documentation Index
> Fetch the complete documentation index at: https://docs.leadpipe.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Preview audience

> Validate audience configs, estimate audience size, and inspect sample rows

## Validate config

Use validation to check a config and see the normalized version without running a preview query.

```bash theme={null}
POST /v1/intent/audiences/validate
x-api-key: YOUR_API_KEY
Content-Type: application/json
```

```json theme={null}
{
  "topicIds": [117805, 117890],
  "minScore": 70,
  "maxScore": 99,
  "minTopicOverlap": 1,
  "filters": {
    "role.seniority": {
      "values": ["director", "vp", "c_suite"]
    },
    "contact.hasBusinessEmail": true
  }
}
```

Validation returns `valid`, `configHash`, `normalizedConfig`, `appliedFilters`, and the query `strategy`.

## Preview audience

Preview returns the total count and sample rows before you save or run an audience.

```bash theme={null}
POST /v1/intent/audiences/preview
x-api-key: YOUR_API_KEY
Content-Type: application/json
```

```json theme={null}
{
  "topicIds": [117805, 117890],
  "minScore": 70,
  "maxScore": 99,
  "minTopicOverlap": 1,
  "filters": {
    "company.industries": {
      "values": ["software development"]
    },
    "role.seniority": {
      "values": ["director", "vp", "c_suite"]
    },
    "contact.hasBusinessEmail": true
  }
}
```

### Response

```json theme={null}
{
  "data": {
    "configHash": "e37de01af6cc6fec...",
    "dataDate": "2026-05-04",
    "strategy": "serving_table_in",
    "totalCount": 1480,
    "breakdowns": {
      "industries": [
        { "value": "software development", "label": "Software Development", "count": 415 }
      ],
      "seniorities": [
        { "value": "director", "label": "Director", "count": 540 }
      ]
    },
    "sample": [
      {
        "hashedEmail": "50c41e8bb3919b48...",
        "firstName": "christine",
        "lastName": "chen",
        "jobTitle": "senior director product marketing",
        "seniority": "director",
        "company": {
          "name": "salesforce",
          "domain": "salesforce.com",
          "industry": "software development"
        },
        "intent": {
          "score": 87,
          "topicOverlap": 2,
          "matchedTopics": [
            {
              "topicId": 117805,
              "topicName": "Marketing ROI",
              "type": "b2b",
              "industry": "Marketing",
              "category": "Service"
            }
          ]
        }
      }
    ],
    "appliedFilters": ["company.industries", "role.seniority", "contact.hasBusinessEmail"],
    "normalizedConfig": {
      "topicIds": [117805, 117890],
      "minScore": 70,
      "maxScore": 99,
      "minTopicOverlap": 1
    }
  }
}
```

## Notes

* `topicIds` is required and supports `1` to `250` topics.
* `minScore` accepts `0` to `99`; values below `50` are normalized to `50`.
* `maxScore` accepts `50` to `99`.
* `minTopicOverlap` must be at least `1`.
* Expected preview performance depends on topic breadth and filter complexity.
