Transactions
Read-only catalogs of the affinity purchase data. They back two things: the
AffinityTransactions dataset on
Create Audience, and the
target values a cross purchase analysis is
scoped to.
The purchase taxonomy cascades: pick categories, use them to read sub-categories, and both to read brands:
categories -> subcategories (?categories[]) -> brands (?categories[], ?subcategories[])Four flat demographic dictionaries - incomes, ages, genders and ethnicities - sit alongside the taxonomy and take no cascade parameters.
Every read here is authenticated and JSON-only (bearer token + Accept: application/json) and uses the read rate bucket (120 requests/min per caller).
Get Affinity Categories
GET /api/v2/analyses/reference/affinity-transactions/categories
The affinity purchase categories. Flat list of { value, text } pairs where
value is the category id an AffinityTransactions dataset’s categories and
the create body’s crosspurchase.target_categories take.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
search | string | No | Optional free-text filter on the category name (case-insensitive contains). |
curl "https://console.intuizi.com/api/v2/analyses/reference/affinity-transactions/categories" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json"Response
{
"status": "success",
"code": 200,
"message": "Resources fetched successfully.",
"data": [
{ "value": 1, "text": "Dining" },
{ "value": 2, "text": "Retail" }
]
}Get Affinity Subcategories
GET /api/v2/analyses/reference/affinity-transactions/subcategories
The affinity purchase sub-categories (merchant category descriptions),
optionally cascading from the selected category ids. value and text are
both the literal sub-category string an AffinityTransactions dataset’s
subcategories and the create body’s crosspurchase.target_subcategories
take. Paginated.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
categories | integer[] | No | Affinity category ids to cascade the sub-categories from (e.g. [1, 2]). |
page | integer | No | Page number (standard pagination). |
per_page | integer | No | Items per page, capped at 500. |
search | string | No | Optional free-text filter on the sub-category (case-insensitive contains). |
curl "https://console.intuizi.com/api/v2/analyses/reference/affinity-transactions/subcategories?categories[]=1" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json"Response
{
"status": "success",
"code": 200,
"message": "Resources fetched successfully.",
"data": {
"items": [
{ "value": "Eating Places, Restaurants", "text": "Eating Places, Restaurants" }
],
"pagination": {
"current_page": 1,
"per_page": 500,
"total": 1,
"last_page": 1
}
}
}Get Affinity Brands
GET /api/v2/analyses/reference/affinity-transactions/brands
The affinity purchase brands, optionally cascading from the selected category
ids and/or sub-categories. value is the brand id string an
AffinityTransactions dataset’s brands and the create body’s
crosspurchase.target_brands take; text is the brand name. Paginated.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
categories | integer[] | No | Affinity category ids to cascade the brands from (e.g. [1, 2]). |
subcategories | string[] | No | Sub-category strings to cascade the brands from. |
page | integer | No | Page number (standard pagination). |
per_page | integer | No | Items per page, capped at 500. |
search | string | No | Optional free-text filter on the brand name (case-insensitive contains). |
curl "https://console.intuizi.com/api/v2/analyses/reference/affinity-transactions/brands?categories[]=1&search=coffee" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json"Response
{
"status": "success",
"code": 200,
"message": "Resources fetched successfully.",
"data": {
"items": [
{ "value": "501", "text": "Coffee Co" }
],
"pagination": {
"current_page": 1,
"per_page": 500,
"total": 1,
"last_page": 1
}
}
}Get Affinity Incomes
GET /api/v2/analyses/reference/affinity-transactions/incomes
The affinity income bands. value and text are both the literal band string
an AffinityTransactions dataset’s incomes takes. Paginated.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number (standard pagination). |
per_page | integer | No | Items per page, capped at 500. |
search | string | No | Optional free-text filter on the band (case-insensitive contains). |
curl "https://console.intuizi.com/api/v2/analyses/reference/affinity-transactions/incomes" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json"Response
{
"status": "success",
"code": 200,
"message": "Resources fetched successfully.",
"data": {
"items": [
{ "value": "100k-150k", "text": "100k-150k" }
],
"pagination": {
"current_page": 1,
"per_page": 500,
"total": 1,
"last_page": 1
}
}
}Get Affinity Ages
GET /api/v2/analyses/reference/affinity-transactions/ages
The affinity age bands. value and text are both the literal band string an
AffinityTransactions dataset’s ages takes. Paginated.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number (standard pagination). |
per_page | integer | No | Items per page, capped at 500. |
search | string | No | Optional free-text filter on the band (case-insensitive contains). |
curl "https://console.intuizi.com/api/v2/analyses/reference/affinity-transactions/ages" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json"Response
{
"status": "success",
"code": 200,
"message": "Resources fetched successfully.",
"data": {
"items": [
{ "value": "25-34", "text": "25-34" }
],
"pagination": {
"current_page": 1,
"per_page": 500,
"total": 1,
"last_page": 1
}
}
}Get Affinity Genders
GET /api/v2/analyses/reference/affinity-transactions/genders
The affinity gender values. value and text are both the literal value an
AffinityTransactions dataset’s genders takes. Paginated.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number (standard pagination). |
per_page | integer | No | Items per page, capped at 500. |
search | string | No | Optional free-text filter on the value (case-insensitive contains). |
curl "https://console.intuizi.com/api/v2/analyses/reference/affinity-transactions/genders" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json"Response
{
"status": "success",
"code": 200,
"message": "Resources fetched successfully.",
"data": {
"items": [
{ "value": "F", "text": "F" },
{ "value": "M", "text": "M" }
],
"pagination": {
"current_page": 1,
"per_page": 500,
"total": 2,
"last_page": 1
}
}
}Get Affinity Ethnicities
GET /api/v2/analyses/reference/affinity-transactions/ethnicities
The affinity ethnicity values. value and text are both the literal value an
AffinityTransactions dataset’s ethnicities takes. Paginated.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number (standard pagination). |
per_page | integer | No | Items per page, capped at 500. |
search | string | No | Optional free-text filter on the value (case-insensitive contains). |
curl "https://console.intuizi.com/api/v2/analyses/reference/affinity-transactions/ethnicities" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json"Response
{
"status": "success",
"code": 200,
"message": "Resources fetched successfully.",
"data": {
"items": [
{ "value": "Hispanic", "text": "Hispanic" }
],
"pagination": {
"current_page": 1,
"per_page": 500,
"total": 1,
"last_page": 1
}
}
}