Billie R · Updated March 18, 2026
You can set up custom fields for any type of post to collect additional data. These fields will be rendered dynamically in the post editor.
Custom Fields - [TYPE]Example: Custom Fields - Blogs
We support two formats:
NAME:LABEL:TYPEExample:
package_price:Package Price:numberThis format allows full customization and supports UI options.
[
{
"name": "package_price",
"label": "Package Price",
"type": "number",
"default_value": 100,
"placeholder": "Enter your package price",
"required": false,
"ui": {
"help_text": "Enter price in USD"
}
}
]Any unknown type will fallback to a normal input field.
{
"name": "title",
"label": "Title",
"type": "text"
}{
"name": "price",
"label": "Price",
"type": "number"
}{
"name": "description",
"label": "Description",
"type": "textarea"
}{
"name": "price_category",
"label": "Price Category",
"type": "select",
"values": [
{ "label": "Moderate", "value": "moderate" },
{ "label": "Luxury", "value": "luxury" }
],
"placeholder": "Select category"
}Rendered using Tagify input.
{
"name": "country_codes",
"label": "Country Codes",
"type": "tags",
"whitelist": ["us", "ca"],
"enforce_whitelist": true
}Rich text editor (full HTML editing).
{
"name": "content",
"label": "Content",
"type": "html_editor"
}Uses a date picker input.
{
"name": "publish_date",
"label": "Publish Date",
"type": "date",
"placeholder": "Select date"
}name – field key (used in post[data])label – display labeltype – input typedefault_value – default valueplaceholder – input placeholderrequired – make field requiredui.help_text – helper text shown below inputAll custom field values are stored inside:
post[data][FIELD_NAME]Example:
post[data][package_price] = 100html_editor and textarea use full widthselect, number, and date use smaller width