Skip to main content
POST
/
v1
/
custom-fields
Create a custom field
curl --request POST \
  --url https://api.minimo.it/v1/custom-fields \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "key": "COMPANY_SIZE",
  "display_name": "Company Size",
  "type": "text",
  "category": "Company Info"
}
'
{
  "data": {
    "id": 1,
    "key": "COMPANY_SIZE",
    "display_name": "Company Size",
    "type": "text",
    "category": "Company Info",
    "visibility": true,
    "source": "Manual"
  }
}
Custom fields allow you to define and organize additional attributes for your contacts beyond the standard fields (email, phone, name).

Use Cases

  • Lead qualification: Store lead score, source, or stage
  • Segmentation: Categorize contacts by industry, plan, or region
  • Personalization: Store preferences for personalized messaging
  • Integration sync: Map external CRM fields to Minimo

Field Types

TypeDescription
textFree text input
numberNumeric value
booleanTrue/false
dateDate value
datetimeDate and time
selectSingle selection from options
jsonJSON object

Best Practices

Use SNAKE_CASE for keys (e.g., COMPANY_SIZE, LEAD_SOURCE). Keys are automatically uppercased.
Group related fields using categories like “Company Info”, “Lead Data”, “Preferences” for better organization.
Choose the right type for your data. Use number for numeric values, date for dates, and select for predefined options.

Common Errors

ErrorCauseSolution
key already existsDuplicate key in accountUse a different key name
validation_errorMissing required fieldsInclude key, display_name, and type
unauthorizedInvalid API keyCheck Authorization header

Code Examples

const response = await fetch('https://api.minimo.it/v1/custom-fields', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer mn-YOUR_CLIENT_ID-YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    key: 'LEAD_SOURCE',
    display_name: 'Lead Source',
    type: 'select',
    category: 'Lead Data'
  })
});
const { data } = await response.json();
console.log(data);
import requests

headers = {
    'Authorization': 'Bearer mn-YOUR_CLIENT_ID-YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.post(
    'https://api.minimo.it/v1/custom-fields',
    headers=headers,
    json={
        'key': 'LEAD_SOURCE',
        'display_name': 'Lead Source',
        'type': 'select',
        'category': 'Lead Data'
    }
)
print(response.json())

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
key
string
required

Unique identifier (will be uppercased)

Example:

"COMPANY_SIZE"

display_name
string
required

Human-readable label

Example:

"Company Size"

type
enum<string>
required

Field type

Available options:
text,
number,
boolean,
date,
datetime,
select,
json
Example:

"text"

category
string

Category for grouping fields

Example:

"Company Info"

acceptable_values
object

Acceptable values for select/enum types

metadata
object

Additional metadata

visibility
boolean
default:false

Whether field is visible in UI

Response

Custom field created successfully

data
object
Example:
{
"id": 1,
"key": "COMPANY_SIZE",
"display_name": "Company Size",
"type": "text",
"category": "Company Info",
"visibility": true,
"source": "Manual"
}