Spaces
Ein Space ist der Behälter für Grids, Seiten und Freigaben. Alle Space-Pfade liegen unter /api/users/{userId}/spaces.
Endpunkte
| Methode | Pfad | Rolle |
|---|---|---|
GET | /spaces | reader |
POST | /spaces | admin |
GET | /spaces/{spaceId} | reader |
PATCH | /spaces/{spaceId} | admin |
DELETE | /spaces/{spaceId} | admin |
POST | /spaces/{spaceId}/copy | reader |
GET | /spaces/{spaceId}/resources | reader |
GET/POST | /spaces/{spaceId}/shares | admin |
POST | /spaces/{spaceId}/invite | admin |
GET | /spaces/{spaceId}/invitations | admin |
POST | /spaces/{spaceId}/uploadCSV | admin |
Pfade sind hier relativ zu /api/users/{userId}. Die Rollenspalte nennt die schwächste ausreichende Rolle; writer und admin schließen reader ein.
Ein Space als JSON
{
"_representation": "full",
"id": "6512aa…",
"name": "Projekte",
"key": "projekte",
"belongsTo": null,
"type": "space",
"metaType": "space",
"displayValue": "Projekte",
"spaceIcon": { "name": "folder", "iconset": "mdi", "color": "#ff8800" },
"icon": "folder",
"iconset": "mdi",
"color": "#ff8800",
"createdAt": "2026-03-14T09:12:00+01:00",
"properties": { },
"plan": "…",
"availableSeats": 4,
"_links": { "self": …, "grids": …, "addGrid": …, "shares": …, "blocks": … },
"_embedded": { "invitations": [ … ] }
}icon, iconset und color sind Altbestand
Dieselbe Information steht als Objekt unter spaceIcon. Neue Integrationen lesen und schreiben spaceIcon.
In Sammlungen (GET /spaces) erscheinen Spaces in der Kurzform: properties, createdAt, plan und availableSeats fehlen dort, erkennbar an "_representation": "summary". Die vollständige Darstellung liefert GET /spaces/{spaceId}.
Auflisten
curl -s -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
"$BASE/api/users/$USER_ID/spaces?pageIndex=1&pageSize=50"| Parameter | Vorgabe | Bedeutung |
|---|---|---|
pageIndex | 1 | Seite, 1-basiert |
pageSize | 300 | Einträge je Seite |
matching | – | Paar aus Eigenschaftsschlüssel und Wert; es werden nur Spaces geliefert, die dazu passen |
Anlegen
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"name": "Projekte", "key": "projekte"}' \
-D - -o /dev/null \
"$BASE/api/users/$USER_ID/spaces"| Feld | Typ | |
|---|---|---|
name | String | Ohne Angabe entsteht ein Space namens Space |
key | String | Stabiler Schlüssel für Verweise aus Integrationen |
belongsTo | String | Zuordnung zu einer Organisation |
icon | Objekt | { "name": …, "iconset": …, "color": … } |
Antwort: 201 Created, Pfad im Header Location.
Namen und Schlüssel sind begrenzt und eindeutig
Ein Name darf höchstens 80 Zeichen haben, ein Schlüssel höchstens 25. Beide müssen innerhalb eines Kontos eindeutig sein. Verstöße ergeben 400.
Ändern
curl -s -X PATCH -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"name": "Projekte 2026"}' \
"$BASE/api/users/$USER_ID/spaces/$SPACE_ID"Änderbar sind name, key, belongsTo, spaceIcon und properties. Nicht genannte Felder bleiben unverändert. Die Antwort ist 200 mit einem leeren Objekt — den neuen Stand liest ein anschließendes GET.
Freigeben
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"email": "kollegin@example.com", "role": "writer"}' \
"$BASE/api/users/$USER_ID/spaces/$SPACE_ID/shares"Eine Freigabe als JSON trägt role, emails und users. POST …/invite mit demselben Rumpf verschickt zusätzlich eine Einladungsmail; die offenen Einladungen stehen unter GET …/invitations.
Kopieren
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"name": "Projekte (Kopie)", "includeEntities": true}' \
"$BASE/api/users/$USER_ID/spaces/$SPACE_ID/copy"Ohne includeEntities entsteht eine Kopie der Struktur ohne Daten.
Inhalt auflisten
GET …/resources liefert die Ressourcen des Space in einer gemeinsamen Liste. types ist dabei Pflicht und sagt, welche Arten aufgenommen werden; mehrere Angaben werden durch Komma getrennt.
curl -s -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
"$BASE/api/users/$USER_ID/spaces/$SPACE_ID/resources?types=grid,form"Erlaubte Bezeichnungen: block, entity, eventhook, externalHook, field, flow, flow activation, flow instance, flow node, form, formlink, grid, linkedGrid, node view, share, space, user, view, virtualGrid.
Jeder Eintrag der Liste besteht aus type und href.
Grid aus einer CSV-Datei erzeugen
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"name": "Import Mai", "key": "import-mai"}' \
"$BASE/api/users/$USER_ID/spaces/$SPACE_ID/uploadCSV"Antwort 201 mit dem Pfad des neuen Grids im Location-Header.
Löschen
curl -s -X DELETE -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
"$BASE/api/users/$USER_ID/spaces/$SPACE_ID"Löschen entfernt den gesamten Inhalt
Grids, Einträge, Ansichten, Formulare und Seiten des Space verschwinden mit. Die API fragt nicht nach.