Skip to content

Attribute catalog with pricing

GET
/v1/catalog/fields
curl --request GET \
--url 'https://api.infiniteaudience.ai/v1/catalog/fields?compact=false&product_usage=audience&template_id=standard_iag' \
--header 'Authorization: Bearer <token>'

Browse output fields, allowed filter operators, coded values and descriptions. product_usage=audience supports audience outputs; filterable and operators determine filtering support. feature_store adds enrichment output fields. compact=true returns bounded pages (20 fields by default), template summaries, and no pricing unless requested. Follow next_cursor; to page enum values pass field_name and values_next_cursor as value_cursor. Coverage is non-null availability, not flag prevalence; array non-empty coverage is unavailable. Requires ‘discovery’ scope.

compact
boolean

Bound response size and use template summaries. MCP and A2A default to this mode.

product_usage
string
Allowed values: audience feature_store

Filter by registry product usage.

template_id
string
Allowed values: standard_iag standard_enrichment

Restrict fields to a delivery template.

field_name
string

Exact field name; required with value_cursor.

search
string

Case-insensitive name, label and description search.

limit
integer
>= 1 <= 100

Maximum fields per page; compact mode defaults to 20.

cursor
string

Next_cursor from a previous page.

value_cursor
integer

Values_next_cursor from the selected field.

value_limit
integer
>= 1 <= 100

Maximum enum values per field; defaults to 100 for one field or 25 in a compact list.

include_pricing
boolean

Defaults to false in compact mode and true otherwise. Set false to discover fields without billing setup.

Attribute catalog.

Media typeapplication/json
object
fields
required

Available enrichment attributes from the column registry.

Array<object>
object
field_name
required
string
aliases
required

Accepted input names for this field; saved definitions use field_name.

Array<string>
label
required
string
data_type
required
string
description
required
string
product_usage
required
Array<string>
groupable
required

Whether this field can be used for group_by or a crosstab dimension. Filtering support alone does not imply grouping support.

boolean
filterable
required
boolean
operators
required
Array<string>
text_comparison_modes
required
Array<string>
Allowed values: exact case_insensitive
default_text_comparison
required
string | null
Allowed values: exact
trim_whitespace_supported
required
boolean
enum_values
required
Array<string> | null
value_labels
required
object | null
coverage_rate
required

Non-null availability, not true-flag prevalence. Null when non-empty array coverage is unavailable.

number | null
coverage_basis
required
string
Allowed values: non_null unavailable
coverage_note
string
values_total
required
integer
values_next_cursor
required
integer | null
templates
required

Standard IAG contains audience fields. Standard Enrichment contains audience and feature-store output fields.

Array<object>
object
template_id
required
string
Allowed values: standard_iag standard_enrichment
label
required
string
fields

Field names in full mode.

Array<string>
field_count

Number of template fields in compact mode.

integer
pricing
required

Effective per-record pricing for the calling org.

object
base_record_price
required

Base cost per record (USD).

number
matched_record_price
required

Cost per resolved record for matched audiences (USD).

number
micro_batch_price_per_record
required

Cost per resolved record for synchronous micro-batch matching (USD).

number
field_surcharges
required

Additional per-record cost for specific attributes (field_name → USD).

object
key
additional properties
number
delivery_surcharges
required

Per-record surcharge by destination (destination → USD).

object
key
additional properties
number
usage_discount_bps
required

Contract usage-rate discount in basis points; commitment charges and minimums are unchanged.

integer
<= 10000
projected_at
required
string | null format: date-time
source
required
string
Allowed values: metronome_contract shopify_plan
pricing_version
required

Approved Shopify pricing version; null for native contract pricing.

string | null
total
required

Number of fields matching the filters, before pagination.

integer
next_cursor
required

Pass as cursor for the next page; null when complete.

string | null
product_usage_definitions
required
object
key
additional properties
string
Example
{
"fields": [
{
"text_comparison_modes": [
"exact"
],
"default_text_comparison": "exact",
"coverage_basis": "non_null"
}
],
"templates": [
{
"template_id": "standard_iag",
"label": "Standard IAG",
"fields": [
"age",
"gender",
"estimated_household_income"
]
},
{
"template_id": "standard_enrichment",
"label": "Standard Enrichment",
"fields": [
"age",
"gender",
"estimated_household_income",
"acs_median_age"
]
}
],
"pricing": {
"source": "metronome_contract"
}
}

Invalid request — malformed body, missing required attribute, or failed validation. See error and message for details.

Media typeapplication/json
object
error
required

Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.

string
message

Human-readable explanation of the error.

string
code

Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.

string
request_id

Opaque support/debug identifier when available.

string
next_step

Public action for correcting the request or retrying later.

string
issues
Array<object>
object
path
required

JSON path to the invalid filter field or value.

string
code
required
string
Allowed values: INVALID_FILTER_SHAPE UNKNOWN_FILTER_FIELD FIELD_NOT_FILTERABLE UNSUPPORTED_FILTER_OPERATOR UNSUPPORTED_TEXT_COMPARISON INVALID_FILTER_VALUE INVALID_ENUM_VALUE AMBIGUOUS_ENUM_VALUE
message
required
string
suggestions
Array<string>
key
additional properties
any
Examples
Examplevalidation_error
{
"error": "Bad Request",
"code": "MISSING_SEGMENTS",
"message": "segment_ids is required for filter audiences."
}

Missing or invalid Bearer token. Obtain one via POST /v1/auth/token. When a token was supplied but rejected, code distinguishes TOKEN_EXPIRED (the token’s lifetime has passed — request a new one via POST /v1/auth/token and retry) from TOKEN_INVALID (malformed or revoked — re-authenticate).

Media typeapplication/json
object
error
required

Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.

string
message

Human-readable explanation of the error.

string
code

Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.

string
request_id

Opaque support/debug identifier when available.

string
next_step

Public action for correcting the request or retrying later.

string
issues
Array<object>
object
path
required

JSON path to the invalid filter field or value.

string
code
required
string
Allowed values: INVALID_FILTER_SHAPE UNKNOWN_FILTER_FIELD FIELD_NOT_FILTERABLE UNSUPPORTED_FILTER_OPERATOR UNSUPPORTED_TEXT_COMPARISON INVALID_FILTER_VALUE INVALID_ENUM_VALUE AMBIGUOUS_ENUM_VALUE
message
required
string
suggestions
Array<string>
key
additional properties
any
Examples
{
"error": "Unauthorized: Missing or invalid Authorization header"
}

Token is valid but lacks the required scope for this endpoint. Check the endpoint description for the required scope (discovery, purchase, or account).

Media typeapplication/json
object
error
required

Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.

string
message

Human-readable explanation of the error.

string
code

Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.

string
request_id

Opaque support/debug identifier when available.

string
next_step

Public action for correcting the request or retrying later.

string
issues
Array<object>
object
path
required

JSON path to the invalid filter field or value.

string
code
required
string
Allowed values: INVALID_FILTER_SHAPE UNKNOWN_FILTER_FIELD FIELD_NOT_FILTERABLE UNSUPPORTED_FILTER_OPERATOR UNSUPPORTED_TEXT_COMPARISON INVALID_FILTER_VALUE INVALID_ENUM_VALUE AMBIGUOUS_ENUM_VALUE
message
required
string
suggestions
Array<string>
key
additional properties
any
Examples
Examplemissing_scope
{
"error": "SCOPE_REQUIRED",
"message": "This endpoint requires the creator scope."
}

An upstream billing provider rejected or could not complete the operation.

Media typeapplication/json
object
error
required

Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.

string
message

Human-readable explanation of the error.

string
code

Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.

string
request_id

Opaque support/debug identifier when available.

string
next_step

Public action for correcting the request or retrying later.

string
issues
Array<object>
object
path
required

JSON path to the invalid filter field or value.

string
code
required
string
Allowed values: INVALID_FILTER_SHAPE UNKNOWN_FILTER_FIELD FIELD_NOT_FILTERABLE UNSUPPORTED_FILTER_OPERATOR UNSUPPORTED_TEXT_COMPARISON INVALID_FILTER_VALUE INVALID_ENUM_VALUE AMBIGUOUS_ENUM_VALUE
message
required
string
suggestions
Array<string>
key
additional properties
any
Example
{
"issues": [
{
"code": "INVALID_FILTER_SHAPE"
}
]
}