Org Field Config Loader
API Contract
REST
/api/v1/org-field-configs
6 endpoints
GET
/api/v1/org-field-configs/api/v1/org-field-configs
List field configurations for all orgs
Public
Response Example
{
"data": [
{
"config_id": "cfg_nansen_post_session",
"org_id": "org_nansen_01",
"form_type": "post_session",
"field_count": 9,
"is_default": false,
"updated_at": "2026-02-10T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 5
}
}
GET
/api/v1/org-field-configs/api/v1/org-field-configs/:id
Get a field config by ID
Public
Response Example
{
"config_id": "cfg_nansen_post_session",
"org_id": "org_nansen_01",
"form_type": "post_session",
"field_definitions": [
{
"field_id": "fld_session_date",
"label": "Session date",
"type": "date",
"required": true,
"order": 1,
"visible_to_roles": [
"peer_mentor",
"coordinator"
]
},
{
"field_id": "fld_attendance",
"label": "Number of participants",
"type": "number",
"required": true,
"min": 0,
"max": 50,
"order": 2,
"visible_to_roles": [
"peer_mentor",
"coordinator"
]
}
],
"is_default": false,
"updated_at": "2026-02-10T08:00:00Z"
}
POST
/api/v1/org-field-configs/api/v1/org-field-configs
Create a field configuration for an org and form type
Public
Request Example
{
"org_id": "org_nansen_01",
"form_type": "post_session",
"field_definitions": [
{
"field_id": "fld_session_date",
"label": "Session date",
"type": "date",
"required": true,
"order": 1
},
{
"field_id": "fld_attendance",
"label": "Number of participants",
"type": "number",
"required": true,
"min": 0,
"max": 50,
"order": 2
}
]
}
Response Example
{
"config_id": "cfg_nansen_post_session",
"org_id": "org_nansen_01",
"form_type": "post_session",
"field_count": 2,
"created_at": "2026-03-26T08:30:00Z"
}
PUT
/api/v1/org-field-configs/api/v1/org-field-configs/:id
Update an org's field configuration
Public
Request Example
{
"field_definitions": [
{
"field_id": "fld_session_date",
"label": "Date of session",
"type": "date",
"required": true,
"order": 1
},
{
"field_id": "fld_attendance",
"label": "Participants attended",
"type": "number",
"required": true,
"min": 0,
"max": 50,
"order": 2
},
{
"field_id": "fld_location",
"label": "Session location",
"type": "text",
"required": false,
"order": 3
}
]
}
Response Example
{
"config_id": "cfg_nansen_post_session",
"field_count": 3,
"updated_at": "2026-03-26T09:45:00Z"
}
DELETE
/api/v1/org-field-configs/api/v1/org-field-configs/:id
Delete an org field configuration
Public
Response Example
{
"deleted": true,
"config_id": "cfg_nansen_post_session"
}
GET
/api/v1/org-field-configs/api/v1/org-field-configs/default/:formType
Get the default field configuration for a form type
Public
Response Example
{
"config_id": "cfg_default_post_session",
"form_type": "post_session",
"is_default": true,
"field_definitions": [
{
"field_id": "fld_session_date",
"label": "Session date",
"type": "date",
"required": true,
"order": 1
},
{
"field_id": "fld_attendance",
"label": "Number of participants",
"type": "number",
"required": true,
"min": 0,
"max": 100,
"order": 2
},
{
"field_id": "fld_mentor_notes",
"label": "Mentor notes",
"type": "textarea",
"required": false,
"supports_speech_input": true,
"order": 3
}
]
}