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
    }
  ]
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}