Discover Brand Suitability Categories
Returns a paginated list of brand suitability categories available for tactic-level brand safety targeting. Categories are organized in a two-tier hierarchy — aggregated parent categories and specific risk leaf categories. Use the parentId parameter to drill into children of a given parent, or leafOnly=true to retrieve only directly targetable categories.
Endpoint
GET
https://lifeapi.pulsepoint.com/RestApi/v2/meta/brandSuitabilityCategories
Query Parameters
| Name | Data Type | Required | Default | Notes |
|---|---|---|---|---|
| parentId | integer | no | Filter to categories that are children of this parent ID | |
| providerId | string | no | Filter by segment provider. Valid values: IAS, DV | |
| search | string | no | Search across category names. Case-insensitive, supports partial matching | |
| leafOnly | boolean | no | false | When true, returns only leaf nodes (directly targetable categories) |
| sort | ENUM string | no | name | Field to sort by. Valid values: name, id, parentId |
| order | ENUM string | no | asc | Sort direction. Valid values: asc, desc |
| cursor | string | no | Opaque pagination cursor. Pass the nextCursor value from a previous response to retrieve the next page | |
| limit | integer | no | 50 | Number of results to return. Pass -1 to return all records |
Sample Request
GET https://lifeapi.pulsepoint.com/RestApi/v2/meta/brandSuitabilityCategories?leafOnly=true&limit=50Response Field List
| Name | Data Type | Notes |
|---|---|---|
| data | array of objects | List of brand suitability category objects |
| data.id | string | Unique segment ID for the category |
| data.providerId | integer | ID of the segment provider (e.g. IAS or DV) |
| data.name | string | Display name of the category |
| data.parentId | integer | ID of the parent category. null if this is a top-level category |
| data.hasChildren | boolean | Whether this category has child categories beneath it |
| data.isLeaf | boolean | Whether this is a leaf node with no children (i.e. directly targetable) |
| data.childrenCount | integer | Number of direct child categories. null if isLeaf is true |
| pagination | object | Pagination metadata |
| pagination.total | integer | Total number of records matching the query |
| pagination.limit | integer | The page size used for this response |
| pagination.hasMore | boolean | Whether additional pages of results exist |
| pagination.nextCursor | string | Opaque cursor to pass as the cursor query parameter to retrieve the next page. null if no more pages |
| pagination.nextCursorUrl | string | Full URL for the next page of results. null if no more pages |
Sample Response
{
"data": [
{
"id": "1791",
"providerId": 101,
"name": "Unknown Brand Safety",
"parentId": null,
"hasChildren": false,
"isLeaf": true
},
{
"id": "1891",
"providerId": 101,
"name": "Aggregated: All Severe Content",
"parentId": null,
"hasChildren": true,
"isLeaf": false,
"childrenCount": 8
},
{
"id": "982",
"providerId": 101,
"name": "Adult & Sexual - High & Medium Risk",
"parentId": 1891,
"hasChildren": false,
"isLeaf": true
},
{
"id": "789",
"providerId": 101,
"name": "Drug Abuse - High & Medium Risk",
"parentId": 1891,
"hasChildren": false,
"isLeaf": true
}
],
"pagination": {
"total": 350,
"limit": 50,
"hasMore": true,
"nextCursor": "eyJpZCI6Ijk2NzkifQ==",
"nextCursorUrl": "/v2/meta/brandSuitabilityCategories?cursor=eyJpZCI6Ijk2NzkifQ==&limit=50"
}
}Errors
| HTTP Status | Error | Description |
|---|---|---|
| 400 | Bad Request | Invalid query parameters |
| 422 | Unprocessable Entity | Invalid filter combinations |
Updated 8 days ago
