Map nodes
The nodes of a mind map: the same tree a checklist has, with a side and a colour.
Every call here carries Authorization: Bearer <key> and
answers JSON. What is true of every call,
and what every refusal means.
GET
/api/v1/w/:workspace_id/notes/:note_id/nodes
A map's nodes, as a tree.
- needs
- read on the thing it touches
- answers
nodes, each with itschildren.- refusals
- unauthorized, not_found
| Parameter | In | Type | Description |
|---|---|---|---|
text
|
query | boolean |
An example
curl -X GET https://goscribi.com/api/v1/w/10835/notes/11868/nodes \
-H "Authorization: Bearer $GO_SCRIBI_KEY"
Answers 200:
{
"nodes": [
{
"id": 1116,
"content": "Trip",
"note": null,
"side": "right",
"colour": null,
"position": 1,
"children": [
{
"id": 1117,
"content": "Ferry",
"note": null,
"side": "right",
"colour": null,
"position": 1,
"children": []
}
]
}
]
}
POST
/api/v1/w/:workspace_id/notes/:note_id/nodes
Add a node.
- needs
- write on the thing it touches
- answers
- **201**, and the whole note.
- refusals
- unauthorized, not_found, forbidden, read_only_key, workspace_locked, invalid
| Parameter | In | Type | Description |
|---|---|---|---|
content
|
body | string | |
annotation
|
body | string | |
parent_id
|
body | integer | |
after_id
|
body | integer | |
side
|
body | string | left or right. Anything else is ignored rather than refused. |
An example
curl -X POST https://goscribi.com/api/v1/w/11055/notes/12959/nodes \
-H "Authorization: Bearer $GO_SCRIBI_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Move house"
}'
Answers 201:
{
"note": {
"id": 12959,
"title": "Plan",
"type": "map",
"folder": null,
"diary_date": null,
"subject": null,
"created_at": "2026-09-16T01:10:30Z",
"updated_at": "2026-09-16T01:10:30Z",
"lock_version": 1,
"url": "https://goscribi.com/w/11055/notes/12959"
},
"nodes": [
{
"id": 1174,
"content": "Move house",
"note": null,
"side": "right",
"colour": null,
"position": 1,
"children": []
}
]
}
PATCH
PUT
/api/v1/w/:workspace_id/notes/:note_id/nodes/:id
Change a node, colour it, or move it.
- needs
- write on the thing it touches
- answers
- The whole note.
- refusals
- unauthorized, not_found, forbidden, read_only_key, workspace_locked, invalid
| Parameter | In | Type | Description |
|---|---|---|---|
content
|
body | string | |
annotation
|
body | string | |
colour
|
body | string | |
side
|
body | string | |
parent_id
|
body | integer | |
position
|
body | integer |
An example
curl -X PATCH https://goscribi.com/api/v1/w/11086/notes/11159/nodes/1193 \
-H "Authorization: Bearer $GO_SCRIBI_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "The trip",
"colour": "#d1495b",
"side": "left"
}'
Answers 200:
{
"note": {
"id": 11159,
"title": "Ideas",
"type": "map",
"folder": null,
"diary_date": null,
"subject": null,
"created_at": "2026-09-16T01:10:30Z",
"updated_at": "2026-09-16T01:10:30Z",
"lock_version": 1,
"url": "https://goscribi.com/w/11086/notes/11159"
},
"nodes": [
{
"id": 1193,
"content": "The trip",
"note": null,
"side": "left",
"colour": "#d1495b",
"position": 1,
"children": []
}
]
}
DELETE
/api/v1/w/:workspace_id/notes/:note_id/nodes/:id
Remove a node, and the branch under it.
- needs
- write on the thing it touches
- answers
- The whole note.
- refusals
- unauthorized, not_found, forbidden, read_only_key, workspace_locked
An example
curl -X DELETE https://goscribi.com/api/v1/w/11055/notes/12959/nodes/1174 \
-H "Authorization: Bearer $GO_SCRIBI_KEY"
Answers 200:
{
"note": {
"id": 12959,
"title": "Plan",
"type": "map",
"folder": null,
"diary_date": null,
"subject": null,
"created_at": "2026-09-16T01:10:30Z",
"updated_at": "2026-09-16T01:10:30Z",
"lock_version": 3,
"url": "https://goscribi.com/w/11055/notes/12959"
},
"nodes": []
}