curl --request POST \
--url https://useorgx.com/api/v1/workflows/legacy-scaffold-batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"version": "legacy_entity_batch_v1",
"workspace_id": "33333333-3333-4333-8333-333333333333",
"entities": [
{
"type": "initiative",
"title": "Prepare release documentation",
"ref": "release"
}
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version: 'legacy_entity_batch_v1',
workspace_id: '33333333-3333-4333-8333-333333333333',
entities: [{type: 'initiative', title: 'Prepare release documentation', ref: 'release'}]
})
};
fetch('https://useorgx.com/api/v1/workflows/legacy-scaffold-batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://useorgx.com/api/v1/workflows/legacy-scaffold-batch"
payload = {
"version": "legacy_entity_batch_v1",
"workspace_id": "33333333-3333-4333-8333-333333333333",
"entities": [
{
"type": "initiative",
"title": "Prepare release documentation",
"ref": "release"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"summary": "Created 1/1 entities.",
"total": 1,
"created_count": 1,
"failed_count": 0,
"results": [
{
"index": 0,
"success": true,
"type": "initiative",
"ref": "release",
"id": "44444444-4444-4444-8444-444444444444",
"title": "Prepare release documentation",
"data": {
"id": "44444444-4444-4444-8444-444444444444",
"title": "Prepare release documentation",
"owner_id": "55555555-5555-4555-8555-555555555555",
"workspace_id": "33333333-3333-4333-8333-333333333333"
}
}
],
"created": [
{
"index": 0,
"type": "initiative",
"id": "44444444-4444-4444-8444-444444444444",
"title": "Prepare release documentation",
"ref": "release"
}
],
"failed": [],
"warnings": [],
"ref_map": {
"release": "44444444-4444-4444-8444-444444444444"
}
},
"meta": {
"apiVersion": "1",
"batchVersion": "legacy_entity_batch_v1",
"workspaceId": "33333333-3333-4333-8333-333333333333"
}
}Create a staged legacy scaffold batch
Machine-only staged contract for initiative/workstream/milestone/task nodes in one admitted workspace. Every child names its full hierarchy through explicit IDs or batch refs; implicit backlog generation is excluded before writes. Goal/objective references must be arrays. Rich node fields pass through the existing entity handler. The 4 MiB JSON body limit is enforced before execution. Results may be partial; do not replay a failed or uncertain write or fall back to another create endpoint. Existing entity guards, per-node credential admission and gateway token expiration still apply. Dedicated scaffold launch/mirror follow-ups remain at the existing client edge. Existing entity-write side effects are retained; this route does not grant action authority. Generic entity types, session credentials and parent context types outside the supported hierarchy/project/objective/goal set require the existing client path until a separately verified migration.
curl --request POST \
--url https://useorgx.com/api/v1/workflows/legacy-scaffold-batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"version": "legacy_entity_batch_v1",
"workspace_id": "33333333-3333-4333-8333-333333333333",
"entities": [
{
"type": "initiative",
"title": "Prepare release documentation",
"ref": "release"
}
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version: 'legacy_entity_batch_v1',
workspace_id: '33333333-3333-4333-8333-333333333333',
entities: [{type: 'initiative', title: 'Prepare release documentation', ref: 'release'}]
})
};
fetch('https://useorgx.com/api/v1/workflows/legacy-scaffold-batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://useorgx.com/api/v1/workflows/legacy-scaffold-batch"
payload = {
"version": "legacy_entity_batch_v1",
"workspace_id": "33333333-3333-4333-8333-333333333333",
"entities": [
{
"type": "initiative",
"title": "Prepare release documentation",
"ref": "release"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"summary": "Created 1/1 entities.",
"total": 1,
"created_count": 1,
"failed_count": 0,
"results": [
{
"index": 0,
"success": true,
"type": "initiative",
"ref": "release",
"id": "44444444-4444-4444-8444-444444444444",
"title": "Prepare release documentation",
"data": {
"id": "44444444-4444-4444-8444-444444444444",
"title": "Prepare release documentation",
"owner_id": "55555555-5555-4555-8555-555555555555",
"workspace_id": "33333333-3333-4333-8333-333333333333"
}
}
],
"created": [
{
"index": 0,
"type": "initiative",
"id": "44444444-4444-4444-8444-444444444444",
"title": "Prepare release documentation",
"ref": "release"
}
],
"failed": [],
"warnings": [],
"ref_map": {
"release": "44444444-4444-4444-8444-444444444444"
}
},
"meta": {
"apiVersion": "1",
"batchVersion": "legacy_entity_batch_v1",
"workspaceId": "33333333-3333-4333-8333-333333333333"
}
}Authorizations
OrgX API key, sent as Authorization: Bearer oxk_...
Headers
Optional header accepted for forward compatibility. This staged batch does not use the header to claim, cache or deduplicate execution; the same header does not make resending safe. Reconcile partial or uncertain results before considering further writes.
1 - 200^[A-Za-z0-9][A-Za-z0-9._:/-]{0,199}$Body
"legacy_entity_batch_v1"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$11 <= x <= 20