Download OpenAPI specification:
Logistics operations API for the 4klyft platform.
This API provides comprehensive endpoints for managing:
All API endpoints (except /api/docs and /api/v1/iam/auth/*) require JWT Bearer token authentication.
Include the token in the Authorization header:
Authorization: Bearer <your-jwt-token>
API requests are rate-limited to ensure fair usage. Standard limits are:
Represents a configuration setting in the system.
Settings store configurable values for the application, organized by categories. Settings can have different types (string, integer, boolean, JSON) and support default values and encryption for sensitive data.
Retrieve all settings, optionally filtered by category.
| category | string Enum: "general" "routing" "warehousing" "notifications" "billing" "integrations" "security" Example: category=routing Filter by setting category |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination |
| itemsPerPage | integer [ 1 .. 100 ] Default: 50 Example: itemsPerPage=50 Number of items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "key": "routing.default_node_duration_minutes",
- "value": 30,
- "type": "string",
- "category": "general",
- "label": "Default Node Duration",
- "description": "Default time in minutes allocated for each stop on a route",
- "defaultValue": "30",
- "isDefault": true,
- "isEncrypted": false,
- "createdAt": "2024-01-01T00:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}
]
}Retrieve all settings in a specific category.
| category required | string Enum: "general" "routing" "warehousing" "notifications" "billing" "integrations" "security" Example: routing Setting category |
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "key": "routing.default_node_duration_minutes",
- "value": 30,
- "type": "string",
- "category": "general",
- "label": "Default Node Duration",
- "description": "Default time in minutes allocated for each stop on a route",
- "defaultValue": "30",
- "isDefault": true,
- "isEncrypted": false,
- "createdAt": "2024-01-01T00:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}
]
}Retrieve a single setting by its key.
| key required | string Example: routing.default_node_duration_minutes Setting key |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "key": "routing.default_node_duration_minutes",
- "value": 30,
- "type": "string",
- "category": "general",
- "label": "Default Node Duration",
- "description": "Default time in minutes allocated for each stop on a route",
- "defaultValue": "30",
- "isDefault": true,
- "isEncrypted": false,
- "createdAt": "2024-01-01T00:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Create or update many settings in a single request, keyed by the dotted-notation setting key. Existing keys are updated in place; new keys are created using type+category drawn from the default catalog. Unknown keys are rejected with 400. Returns no body — re-read GET /settings to refresh.
List of {key, value} pairs to upsert
required | Array of objects [ 1 .. 200 ] items |
{- "settings": [
- {
- "key": "session_timeout",
- "value": 3600
}
]
}{- "type": "/errors/validation-error",
- "title": "Validation Error",
- "status": 400,
- "detail": "The provided input is invalid",
- "violations": [
- {
- "propertyPath": "code",
- "message": "This value should not be blank."
}
], - "instance": "string"
}Retrieve a single setting by its UUID.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Setting UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "key": "routing.default_node_duration_minutes",
- "value": 30,
- "type": "string",
- "category": "general",
- "label": "Default Node Duration",
- "description": "Default time in minutes allocated for each stop on a route",
- "defaultValue": "30",
- "isDefault": true,
- "isEncrypted": false,
- "createdAt": "2024-01-01T00:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Update a setting value.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Setting UUID |
Setting update data
| value required | any New value for the setting |
{- "value": 45
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "key": "routing.default_node_duration_minutes",
- "value": 30,
- "type": "string",
- "category": "general",
- "label": "Default Node Duration",
- "description": "Default time in minutes allocated for each stop on a route",
- "defaultValue": "30",
- "isDefault": true,
- "isEncrypted": false,
- "createdAt": "2024-01-01T00:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Reset a setting to its default value. Only works for settings that have a default value defined.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Setting UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "key": "routing.default_node_duration_minutes",
- "value": 30,
- "type": "string",
- "category": "general",
- "label": "Default Node Duration",
- "description": "Default time in minutes allocated for each stop on a route",
- "defaultValue": "30",
- "isDefault": true,
- "isEncrypted": false,
- "createdAt": "2024-01-01T00:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}