Custom affiliate fields
Add up to 20 fields to the affiliate signup form. Values are stored on each affiliate row (under affiliates.custom_fields JSON) and visible to your team in the affiliate detail page. The schema is defined per-merchant at Settings → Custom fields.
Field schema
[
{
"key": "social_handle", // lowercase + underscores
"label": "Primary social handle",
"type": "text", // text|textarea|url|email|number|select
"required": false,
"max_length": 80
},
{
"key": "country",
"label": "Country",
"type": "select",
"required": true,
"options": ["US", "CA", "UK", "AU"]
}
]Field types
text— single-line input. Honorsmax_length.textarea— multi-line. Defaults to 2000 chars.url— validated as a URL on submission.email— validated as an email.number— stored as a JSON number; validatedisFinite.select— dropdown. Requiresoptions: a string array. Empty values rejected.
Querying custom-field values
Values are GIN-indexed for fast filtering. Via the REST API:
GET /api/v1/affiliates?custom_field=country:US
GET /api/v1/affiliates?custom_field=tier:gold,country:CANote:Renaming or deleting a field doesn't touch existing affiliate rows — old values remain in the JSON until the affiliate updates their profile. Add new fields freely; only delete fields you're sure no team workflow depends on.