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

NameData TypeRequiredDefaultNotes
parentIdintegernoFilter to categories that are children of this parent ID
providerIdstringnoFilter by segment provider. Valid values: IAS, DV
searchstringnoSearch across category names. Case-insensitive, supports partial matching
leafOnlybooleannofalseWhen true, returns only leaf nodes (directly targetable categories)
sortENUM stringnonameField to sort by. Valid values: name, id, parentId
orderENUM stringnoascSort direction. Valid values: asc, desc
cursorstringnoOpaque pagination cursor. Pass the nextCursor value from a previous response to retrieve the next page
limitintegerno50Number of results to return. Pass -1 to return all records

Sample Request

GET https://lifeapi.pulsepoint.com/RestApi/v2/meta/brandSuitabilityCategories?leafOnly=true&limit=50

Response Field List

NameData TypeNotes
dataarray of objectsList of brand suitability category objects
data.idstringUnique segment ID for the category
data.providerIdintegerID of the segment provider (e.g. IAS or DV)
data.namestringDisplay name of the category
data.parentIdintegerID of the parent category. null if this is a top-level category
data.hasChildrenbooleanWhether this category has child categories beneath it
data.isLeafbooleanWhether this is a leaf node with no children (i.e. directly targetable)
data.childrenCountintegerNumber of direct child categories. null if isLeaf is true
paginationobjectPagination metadata
pagination.totalintegerTotal number of records matching the query
pagination.limitintegerThe page size used for this response
pagination.hasMorebooleanWhether additional pages of results exist
pagination.nextCursorstringOpaque cursor to pass as the cursor query parameter to retrieve the next page. null if no more pages
pagination.nextCursorUrlstringFull 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 StatusErrorDescription
400Bad RequestInvalid query parameters
422Unprocessable EntityInvalid filter combinations