Feature Management
Features are functional units within a project — used to organise and scope capabilities across spaces.
All System API endpoints require X-Server-Key from your config.yml.
Create Features
Create one or more features under a project in a single request. Send an array of feature objects.
Request Body
Send an array of feature objects — even for a single feature, always wrap in [].
| Field | Type | Required | Description |
|---|---|---|---|
org_id | string | Yes | Organisation identifier |
project_id | string | Yes | Project identifier the feature belongs to |
name | string | Yes | Display name of the feature |
description | string | No | Optional description |
email | string | Yes | Contact email for the feature owner |
touched_by | string | Yes | ID of the user creating or modifying the feature |
owner_id | string | Yes | Identifier of the feature owner |
Required Headers
| Header | Description |
|---|---|
X-Org-Id | Organisation identifier |
X-Project-Id | Project identifier |
X-User-Id | Authenticated user's identifier |
X-User-Roles | Comma-separated roles (e.g., admin,user) |
X-Server-Key | Server key from config.yml |
Response
201 Created:
{
"code": 201,
"status": "Created",
"message": "features created successfully"
}
Update Features
Update one or more existing features. Pass feature_id in each object to identify which feature to update.
Request Body
Send an array of feature objects. Each object must include feature_id to identify which feature to update.
| Field | Type | Required | Description |
|---|---|---|---|
feature_id | string | Yes | ID of the feature to update |
org_id | string | Yes | Organisation identifier |
project_id | string | Yes | Project identifier the feature belongs to |
name | string | Yes | Updated display name of the feature |
description | string | No | Optional description |
email | string | Yes | Contact email for the feature owner |
touched_by | string | Yes | ID of the user updating the feature |
owner_id | string | Yes | Identifier of the feature owner |
Required Headers
| Header | Description |
|---|---|
X-Org-Id | Organisation identifier |
X-Project-Id | Project identifier |
X-Space-Id | Space identifier |
X-User-Id | Authenticated user's identifier |
X-User-Roles | Comma-separated roles (e.g., admin,user) |
X-Server-Key | Server key from config.yml |
Response
200 OK:
{
"code": 200,
"status": "OK",
"message": "features updated successfully"
}
Get Features
Returns all features under a specific organisation and project.
Required Headers
| Header | Description |
|---|---|
X-Org-Id | Organisation identifier |
X-Project-Id | Project identifier |
X-User-Id | Authenticated user's identifier |
X-Server-Key | Server key from config.yml |
Response
200 OK:
[
{
"feature_id": "01KHX2SERSNQ1B3FVNB65G3251",
"name": "Feature 1",
"description": "Organization workspace enhancement",
"email": "admin@mycompany.com"
},
{
"feature_id": "01KHX2SERSM00KJ0ASAWFSNTJY",
"name": "Feature 2",
"description": "Project related enhancements",
"email": "admin@mycompany.com"
}
]
Common Errors
| Code | Cause |
|---|---|
400 | Body is not a valid JSON array, or a required field is missing |
401 | Missing X-User-Id header |
403 | Invalid or missing X-Server-Key |
404 | Project or org not found — check X-Project-Id and X-Org-Id |
208 | A feature with the same name already exists under this project |