REST /api/v1/plain-language-content 8 endpoints
GET /api/v1/plain-language-content/api/v1/plain-language-content

List all plain language content entries (supports ?locale= and ?type= filters)

Public

Response Example

{
  "data": [
    {
      "content_id": "plc-001",
      "key": "wizard.step.confirm_button",
      "type": "label",
      "value": "Continue to next step",
      "locale": "en-IE",
      "screen_id": null,
      "field_id": null,
      "updated_at": "2026-02-01T12:00:00Z"
    },
    {
      "content_id": "plc-002",
      "key": "ERR_REQUIRED_FIELD",
      "type": "error_message",
      "value": "This field is required. Please fill it in before continuing.",
      "locale": "en-IE",
      "screen_id": null,
      "field_id": null,
      "updated_at": "2026-02-01T12:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 87
  }
}
GET /api/v1/plain-language-content/api/v1/plain-language-content/:key

Get a single content entry by key

Public

Response Example

{
  "content_id": "plc-001",
  "key": "wizard.step.confirm_button",
  "type": "label",
  "value": "Continue to next step",
  "locale": "en-IE",
  "screen_id": null,
  "field_id": null,
  "updated_at": "2026-02-01T12:00:00Z"
}
POST /api/v1/plain-language-content/api/v1/plain-language-content

Create a new plain language content entry

Public

Request Example

{
  "key": "wizard.screen_04.subtitle",
  "type": "label",
  "value": "Tell us a little more about your situation",
  "locale": "en-IE",
  "screen_id": "screen-04",
  "field_id": null
}

Response Example

{
  "content_id": "plc-088",
  "key": "wizard.screen_04.subtitle",
  "type": "label",
  "value": "Tell us a little more about your situation",
  "locale": "en-IE",
  "created_at": "2026-03-26T10:30:00Z"
}
PUT /api/v1/plain-language-content/api/v1/plain-language-content/:key

Update an existing content entry's value

Public

Request Example

{
  "value": "Go to the next step",
  "locale": "en-IE"
}

Response Example

{
  "content_id": "plc-001",
  "key": "wizard.step.confirm_button",
  "value": "Go to the next step",
  "updated_at": "2026-03-26T10:35:00Z"
}
DELETE /api/v1/plain-language-content/api/v1/plain-language-content/:key

Delete a content entry

Public

Response Example

{
  "deleted": true,
  "key": "wizard.screen_04.subtitle"
}
GET /api/v1/plain-language-content/api/v1/plain-language-content/help/:screenId/:fieldId

Get contextual help text for a specific screen and field

Public

Response Example

{
  "screen_id": "screen-02",
  "field_id": "date_of_birth",
  "help_text": "Enter your date of birth in the format DD/MM/YYYY. For example, 15/03/1985.",
  "locale": "en-IE"
}
GET /api/v1/plain-language-content/api/v1/plain-language-content/errors/:errorCode

Get plain language error message for a given error code

Public

Response Example

{
  "error_code": "ERR_INVALID_DATE",
  "title": "Date format is incorrect",
  "message": "Please enter the date as DD/MM/YYYY — for example, 15/03/1985.",
  "suggestion": "Check that the day and month are the right way round.",
  "locale": "en-IE"
}
POST /api/v1/plain-language-content/api/v1/plain-language-content/load-bundle

Load a full content bundle for a locale from an asset path

Public

Request Example

{
  "locale": "ga-IE",
  "asset_path": "assets/content/ga-IE.json"
}

Response Example

{
  "locale": "ga-IE",
  "entries_loaded": 87,
  "entries_updated": 3,
  "entries_created": 84,
  "loaded_at": "2026-03-26T10:45:00Z"
}

Additional Metadata

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