Dynamic Type Scale Service
API Contract
REST
/api/v1/type-scales
6 endpoints
GET
/api/v1/type-scales/api/v1/type-scales
List all registered type scale configurations
Public
Response Example
{
"data": [
{
"id": "ts-001",
"text_role": "body",
"base_size_sp": 14,
"max_scale_factor": 1.3,
"os_scale": 1,
"effective_scale": 1,
"created_at": "2026-03-26T08:00:00Z"
},
{
"id": "ts-002",
"text_role": "headline",
"base_size_sp": 24,
"max_scale_factor": 1.5,
"os_scale": 1,
"effective_scale": 1,
"created_at": "2026-03-26T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 8
}
}
GET
/api/v1/type-scales/api/v1/type-scales/:id
Get a specific type scale entry
Public
Response Example
{
"id": "ts-001",
"text_role": "body",
"base_size_sp": 14,
"max_scale_factor": 1.3,
"os_scale": 1.2,
"effective_scale": 1.2,
"listeners_registered": 3,
"created_at": "2026-03-26T08:00:00Z",
"updated_at": "2026-03-26T09:30:00Z"
}
POST
/api/v1/type-scales/api/v1/type-scales
Register a new type scale configuration
Public
Request Example
{
"text_role": "caption",
"base_size_sp": 11,
"max_scale_factor": 1.2
}
Response Example
{
"id": "ts-009",
"text_role": "caption",
"base_size_sp": 11,
"max_scale_factor": 1.2,
"os_scale": 1,
"effective_scale": 1,
"created_at": "2026-03-26T10:00:00Z"
}
PUT
/api/v1/type-scales/api/v1/type-scales/:id
Update a type scale configuration
Public
Request Example
{
"max_scale_factor": 1.4,
"base_size_sp": 12
}
Response Example
{
"id": "ts-009",
"text_role": "caption",
"base_size_sp": 12,
"max_scale_factor": 1.4,
"os_scale": 1,
"effective_scale": 1,
"created_at": "2026-03-26T10:00:00Z",
"updated_at": "2026-03-26T10:10:00Z"
}
DELETE
/api/v1/type-scales/api/v1/type-scales/:id
Remove a type scale configuration
Public
Response Example
{
"deleted": true,
"id": "ts-009"
}
GET
/api/v1/type-scales/api/v1/type-scales/effective
Get effective scale for a role given OS scale factor
Public
Response Example
{
"text_role": "body",
"os_scale": 1.4,
"max_scale_factor": 1.3,
"effective_scale": 1.3,
"clamped": true
}