Skip to content

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

FieldTypeRequiredDescription
searchstringNoOptional 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

FieldTypeRequiredDescription
categoriesinteger[]NoAffinity category ids to cascade the sub-categories from (e.g. [1, 2]).
pageintegerNoPage number (standard pagination).
per_pageintegerNoItems per page, capped at 500.
searchstringNoOptional 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

FieldTypeRequiredDescription
categoriesinteger[]NoAffinity category ids to cascade the brands from (e.g. [1, 2]).
subcategoriesstring[]NoSub-category strings to cascade the brands from.
pageintegerNoPage number (standard pagination).
per_pageintegerNoItems per page, capped at 500.
searchstringNoOptional 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

FieldTypeRequiredDescription
pageintegerNoPage number (standard pagination).
per_pageintegerNoItems per page, capped at 500.
searchstringNoOptional 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

FieldTypeRequiredDescription
pageintegerNoPage number (standard pagination).
per_pageintegerNoItems per page, capped at 500.
searchstringNoOptional 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

FieldTypeRequiredDescription
pageintegerNoPage number (standard pagination).
per_pageintegerNoItems per page, capped at 500.
searchstringNoOptional 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

FieldTypeRequiredDescription
pageintegerNoPage number (standard pagination).
per_pageintegerNoItems per page, capped at 500.
searchstringNoOptional 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
    }
  }
}