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), at most 10,000.
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), at most 10,000.
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), at most 10,000.
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), at most 10,000.
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), at most 10,000.
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), at most 10,000.
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
    }
  }
}