Fields API Reference
This reference covers field management and configuration in the FG API platform.
Field Types
Data Types
Fields support the following data types:
String
- Description: Text data
- Use cases: Names, emails, messages, descriptions
- Example values:
"John Doe","user@example.com","Hello world"
Number
Description: Numeric data
Use cases: Ages, prices, quantities, ratings
Example values:
25,99.99,1000
Boolean
Description: True/false values
Use cases: Yes/no questions, checkboxes, flags
Example values:
true,false
Array
Description: Lists of items
Use cases: Multiple selections, tags, categories
Example values:
["tag1", "tag2"],[1, 2, 3]
Object
Description: Complex data structures
Use cases: Nested information, structured data
Example values:
{"name": "John", "age": 25}
Field Types
Fields support the following presentation types:
Text
Description: Single-line text input
Data types: string, number
Use cases: Names, emails, single values
Single Select
Description: Dropdown with one selection
Data types: string
Use cases: Categories, ratings, single choices
Configuration: Requires options list
Multi Select
Description: Dropdown with multiple selections
Data types: array
Use cases: Tags, multiple interests, checkboxes
Configuration: Requires options list
Date
Description: Date picker
Data types: string
Use cases: Birthdays, event dates, deadlines
Format: ISO 8601 date format (YYYY-MM-DD)
Object
Description: Complex nested data
Data types: object
Use cases: Addresses, complex forms, structured data
Field Configuration
Field Properties
Each field has the following configurable properties:
Field Name
Type: string
Required: Yes
Description: The parameter name used in API requests
Format: lowercase with underscores
Examples:
first_name,email_address,phone_number
Data Type
Type: enum
Required: Yes
Options:
string,number,boolean,array,objectDescription: The type of data this field accepts
Field Type
Type: enum
Required: Yes
Options:
text,single_select,multi_select,date,objectDescription: How the field is presented and validated
Required
Type: boolean
Required: No
Default: false
Description: Whether this field must be provided in API requests
Active
Type: boolean
Required: No
Default: true
Description: Whether this field is enabled and accepts data
Field Management API
Get Fields
Get all fields for a specific endpoint.
Endpoint: GET /api/fields?endpointId={endpointId}
Query Parameters:
endpointId(string, required): The endpoint ID
Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/jsonResponse:
{
"data": [
{
"id": "field123",
"endpoint": "cmf1234567890",
"field_name": "name",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
]
}Create Field
Add a new field to an endpoint.
Endpoint: POST /api/fields
Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/jsonRequest Body:
{
"endpoint": "cmf1234567890",
"field_name": "email",
"data_type": "string",
"field_type": "text",
"required": true
}Response:
{
"data": {
"id": "field456",
"endpoint": "cmf1234567890",
"field_name": "email",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true,
"created_at": "2024-01-15T11:00:00Z",
"updated_at": "2024-01-15T11:00:00Z"
}
}Update Field
Update an existing field configuration.
Endpoint: PUT /api/fields/{fieldId}
Parameters:
fieldId(string, required): The field ID
Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/jsonRequest Body:
{
"field_name": "user_email",
"data_type": "string",
"field_type": "text",
"required": false,
"active": true
}Response:
{
"data": {
"id": "field456",
"endpoint": "cmf1234567890",
"field_name": "user_email",
"data_type": "string",
"field_type": "text",
"required": false,
"active": true,
"created_at": "2024-01-15T11:00:00Z",
"updated_at": "2024-01-15T11:30:00Z"
}
}Field Examples
Text Fields
Name Field
{
"field_name": "name",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true
}API Usage:
{
"name": "John Doe"
}Age Field
{
"field_name": "age",
"data_type": "number",
"field_type": "text",
"required": true,
"active": true
}API Usage:
{
"age": 25
}Select Fields
Category Field (Single Select)
{
"field_name": "category",
"data_type": "string",
"field_type": "single_select",
"required": true,
"active": true
}API Usage:
{
"category": "Support"
}Interests Field (Multi Select)
{
"field_name": "interests",
"data_type": "array",
"field_type": "multi_select",
"required": false,
"active": true
}API Usage:
{
"interests": ["Technology", "Design", "Marketing"]
}Date Fields
Event Date Field
{
"field_name": "event_date",
"data_type": "string",
"field_type": "date",
"required": true,
"active": true
}API Usage:
{
"event_date": "2024-12-25"
}Boolean Fields
Newsletter Signup Field
{
"field_name": "newsletter_signup",
"data_type": "boolean",
"field_type": "text",
"required": false,
"active": true
}API Usage:
{
"newsletter_signup": true
}Field Validation
Built-in Validation
Required Fields
Fields marked as
required: truemust be provided in API requestsMissing required fields return a 400 Bad Request error
Data Type Validation
String fields accept text data
Number fields accept numeric data
Boolean fields accept true/false values
Array fields accept lists of items
Object fields accept structured data
Field Type Validation
Text fields accept single values
Select fields validate against predefined options
Date fields validate ISO 8601 date format
Validation Errors
Missing Required Field
{
"error": "validation failed",
"details": "Field 'name' is required"
}Invalid Data Type
{
"error": "validation failed",
"details": "Field 'age' must be a number"
}Invalid Field Type
{
"error": "validation failed",
"details": "Field 'category' must be one of: General, Support, Sales"
}Best Practices
Field Naming
Good Examples
✅ first_name
✅ email_address
✅ phone_number
✅ user_message
✅ event_dateBad Examples
❌ firstName (use underscores)
❌ email (too generic)
❌ phone# (special characters)
❌ msg (abbreviations)
❌ date (too generic)Data Type Selection
Choose Appropriate Types
✅ Use "string" for names, emails, messages
✅ Use "number" for ages, prices, quantities
✅ Use "boolean" for yes/no questions
✅ Use "array" for multiple selections
✅ Use "object" for complex dataAvoid Common Mistakes
❌ Don't use "string" for phone numbers that need formatting
❌ Don't use "number" for IDs that start with zeros
❌ Don't use "boolean" for multi-state valuesField Configuration
Required Fields
✅ Only mark essential fields as required
✅ Consider user experience when setting requirements
✅ Provide clear error messages for missing fieldsField Organization
✅ Group related fields together
✅ Use logical field ordering
✅ Keep field names consistent across endpointsCommon Field Configurations
Contact Form Fields
[
{
"field_name": "name",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true
},
{
"field_name": "email",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true
},
{
"field_name": "subject",
"data_type": "string",
"field_type": "single_select",
"required": true,
"active": true
},
{
"field_name": "message",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true
}
]User Registration Fields
[
{
"field_name": "first_name",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true
},
{
"field_name": "last_name",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true
},
{
"field_name": "email",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true
},
{
"field_name": "phone",
"data_type": "string",
"field_type": "text",
"required": false,
"active": true
},
{
"field_name": "newsletter_signup",
"data_type": "boolean",
"field_type": "text",
"required": false,
"active": true
}
]Product Feedback Fields
[
{
"field_name": "product_id",
"data_type": "string",
"field_type": "text",
"required": true,
"active": true
},
{
"field_name": "rating",
"data_type": "string",
"field_type": "single_select",
"required": true,
"active": true
},
{
"field_name": "review",
"data_type": "string",
"field_type": "text",
"required": false,
"active": true
},
{
"field_name": "recommend",
"data_type": "boolean",
"field_type": "text",
"required": true,
"active": true
}
]Troubleshooting
Common Issues
Field Not Accepting Data
Check if field is marked as "Active"
Verify field name matches API request
Ensure data type matches field configuration
Validation Errors
Check required field settings
Verify data format matches field type
Review field configuration for errors
Field Not Appearing
Check if field is marked as "Active"
Verify field is associated with correct endpoint
Check field configuration for errors
Error Messages
Field Not Found
{
"error": "Field not found"
}Invalid Field Configuration
{
"error": "Invalid field configuration",
"details": "Field type 'text' not compatible with data type 'array'"
}Field Already Exists
{
"error": "Field already exists",
"details": "A field with name 'email' already exists for this endpoint"
}