Create an entry on a form owned by the current user. Unknown field api_codes in
field_values are dropped silently; missing required fields produce a validation error.
Required scope: entry:write.
Documentation Index
Fetch the complete documentation index at: https://formhug.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
Personal Access Token prefixed with fh_. Sent as Authorization: Bearer fh_xxx.
The scope required by each endpoint is listed in that endpoint's description.
Form token
Map keyed by field api_code; unknown keys are dropped silently
{ "field_1": "Jane Doe" }Created
A submitted entry. In addition to the fixed fields below, every field of the
parent form appears as a top-level key on the entry under its api_code. The
JSON value type for each such key is determined by the corresponding field's
type.
Each field of the parent form appears as a top-level key on the entry, keyed by its
api_code. The JSON shape of the value depends on the field's type:
Field type (type) | Submitted value |
|---|---|
short_text | String. The submitted text. |
long_text | String. Multi-line text. |
radio | Object { value, other_text?, extended_text? }, or null when unset. value is the api_code of the selected choice. other_text carries the respondent's free-text input and is only present when the selected choice has is_other: true. extended_text carries the free-text input for a choice that has allow_extended_text: true. The two text keys are mutually exclusive per choice (an is_other choice cannot also enable allow_extended_text) and both are omitted when blank. On write, a bare string is accepted as shorthand for { value: <string> }; null clears the field; text keys that don't match the selected choice's configuration are ignored. |
checkbox | Array of { value, other_text?, extended_text? } objects with the same per-choice semantics as radio. Empty array when nothing is selected. At most one element may carry other_text (the element whose value corresponds to the is_other choice). On write, null clears the field; bare strings in the array are accepted as shorthand for { value: <string> }. |
dropdown | Object { value, other_text? }, or null when unset. Same value and other_text semantics as radio. dropdown does not support extended_text. |
number | Number. Stored as a float; integer-looking values may serialize without a decimal point. |
email | String — an email address. |
phone | Object { country_id, country_code, number }. country_id is an ISO 3166-1 alpha-2 country code (e.g. "CN", "US") and is required; country_code is the dialing code without + (e.g. "86", "1") and is optional on write — when omitted it is derived from country_id; number is the local number without the dialing-code prefix. |
date | Naive wall-clock string formatted per the field's precision: "YYYY-MM" (month), "YYYY-MM-DD" (day), "YYYY-MM-DD HH:mm" (minute), "YYYY-MM-DD HH:mm:ss" (second). Values are interpreted in the form's timezone setting. Forms created via V1 default to UTC when no timezone is supplied at creation time. |
name | String — the submitted name. |
url | String — a URL. |
address | Object { address_line1, address_line2, city, state, postal_code, country }. country is an ISO 3166-1 alpha-2 country code; state is an ISO 3166-2 subdivision code (e.g. "CA", "NY"), not a localized label. |
rating | Integer — the chosen rating level (1..rating_max). |
nps | Integer — the selected score (0..10). |
attachment | Array of objects { id: string, name: string, url: string, file_size: integer, content_type: string }. url is a signed download link valid for 24 hours — refetch the entry to get a fresh link rather than caching it; name is the original filename. |
cascade | Object { level_1: <api_code>, level_2: <api_code>, ... } — one key per level (the field's levels setting, default 2). Each value is the api_code of the choice selected at that level. |
ranking | Object { <choice_api_code>: <rank> } — rank is a positive integer, contiguous starting at 1 for the highest-ranked choice. Unranked choices are omitted. |
matrix | Nested object { <statement_api_code>: { <dimension_api_code>: <cell_value> }, ... }. The inner cell value type depends on the matrix cell field type. |
likert | Object { <statement_api_code>: [<choice_api_code>, ...] }. The value is always an array — a single-choice answer is wrapped in a one-element array. |
time | Object { hour: string, minute: string }, plus second: string when the field has include_second enabled. The pieces are decimal strings without zero padding (e.g. "9", "05"). |
location | Object { longitude: number, latitude: number, address: string }. |
signature | String — a signed download URL for the signature image, valid for 24 hours. Refetch the entry to obtain a fresh link rather than caching it. |
matrix_rating | Nested object { <statement_api_code>: { <dimension_api_code>: <integer> } }. The inner integer is the chosen rating level (1..rating_max). |
table | Array of row objects [{ <dimension_api_code>: <cell_value>, ... }]. The inner cell value type depends on each dimension's field type. |
product | Array [{ api_code, number, specification? }]. specification is present when the goods item has dimensions; it is an object of { <dim_api_code>: <option_api_code> }. |
booking | Array [{ api_code, scheduled_at, end_at?, number, item_name, time_range_code }]. scheduled_at / end_at are ISO8601 date-time strings. |
linked_form | On write: string — the entry_token of an entry in the associated form, or null to clear. The server resolves the token against associated_form_token; an unknown token yields 422. On read: one of three shapes — (1) null if not linked; (2) { "deleted": true } if the linked entry has been deleted; (3) Object { entry_token, serial_number, associated_fields, display_fields } describing the linked entry, where associated_fields / display_fields map each api_code (from associated_field_api_codes / display_field_api_codes respectively) to that field's value, formatted per the linked field's own type (recursive — e.g. a date field renders as its naive wall-clock string, an attachment field renders as its array of file objects). |