Skip to content

Field formats ​

Pro

Most fields read and write the same value. A few read back richer data than they accept: choice fields return a label, media returns an object, relations return references. When a write doesn't round-trip, check this page first.

Text and numbers ​

Field typeReadWrite
Text, Textarea, Email, URL, Phone, Colorstringstring. Phone in international format (+351912345678); Color as #RRGGBB or #RRGGBBAA
Rich textHTML stringHTML string, cleaned on save
Markdown (Pro){ content, formatted }, where formatted is HTMLthe Markdown string only
Code{ content, language, filename }{ code, language, filename } or a plain string. The code is content on read and code on write.
Number, Steppernumber, or nullnumber, rounded to the decimals the field's Step allows: whole by default, one decimal on a step of 0.5
Slidernumber, or nullnumber, kept within range and snapped to the step
Range slider{ start, end }{ start, end } or [start, end]
Listarray of stringsarray of strings

Choices ​

Field typeReadWrite
Select, Radio Buttons, Button Group{ value, label }the value string only
Multiselect, Checkboxesarray of { value, label }array of value strings
Switchertrue or falseboolean ("1" and "0" also accepted)

A value that isn't one of the field's choices is cleared.

Dates ​

Field typeReadWrite
Date"2026-06-12""2026-06-12"
Date & Time"2026-06-12 19:00:00""2026-06-12 19:00:00"
Time"19:00""19:00:00": seconds are required on write
Date range{ start, end }{ start, end }; end on or after start
Recurring Date (Pro)[ { start, end, tz, allday, rrule } ]the same

Media ​

Field typeReadWrite
Image, SVG, Video, Audioa media objectan attachment ID
Gallery, Files (Pro)array of media objectsarray of attachment IDs, in order

A media object is { id, url, alt, title, caption, mime }. Alt text is on images only, and audio adds duration. See Uploading media.

Relations ​

Field typeReadWrite
Select Post, Post Relation (Pro)array of { id, type, title, url, vx }array of post IDs
Select User, User Relation (Pro)array of user referencesarray of user IDs
Taxonomyarray of term referencesarray of term IDs. On posts, this sets the post's terms.

Fields limited to one item accept one ID. "Has one" and "belongs to one" relations take over a link held by another entry; see Reassignment.

Containers ​

Field typeReadWrite
Group{ sub_key: value, … }the whole object; omitted sub-fields are cleared
Repeater, Field Table (Pro)array of row objectsarray of row objects; replaces every row
Content sections (Pro)[ { id, layout, layout_label, fields } ][ { layout, fields } ]
Clone (Pro)expanded: the cloned fields appear as if defined herewrite the cloned fields directly

Content sections: read each row's layout before its fields, since two layouts can use the same key for different things. An unknown layout on write is an error. A row whose layout was removed reads with an empty layout_label and no fields.

Geo ​

Field typeReadWrite
Location (Pro){ address, lat, lng, street, locality, postcode, country, … }the same; coordinates rounded to 5 decimals
Area (Pro)not includednot writable

Never included ​

Password fields, layout fields and Area shapes are never read or written through the API.

Technical details for LLMs
  • Asymmetric types: select / radio / button_group (read object, write value), multiselect / checkboxes, markdown (read {content, formatted}, write string), code (read content, write code), time (read HH:MM, write HH:MM:SS), range_slider (write array or object), media and relations (read objects, write ids), content_sections (layout_label read-only), recurring_date (stored id / multiday omitted on read).
  • Numbers: number / stepper store any number as given, rounded only at 10 decimals — their step is presentation and constrains nothing; slider clamps and snaps; range_slider orders [start, end].
  • Limits enforced on write: max_count on relations (truncated), max_entries on recurring dates, media policy. Advisory: min_*, max_rows, lengths → vx_warnings.
  • Not serialized: password, ui_*, area. clone expands before serialization and isn't itself a key.

Documentation for the VX Framework.