Plain Language Content Service
API Contract
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"
}