# saveSpaceTextFile

Save new text as the next version of a text file you can edit (earlier versions are kept and can be restored in the app). Pass `baseVersionId` (the `versionId` getSpaceTextContent returned) so a save over someone else's newer version is refused instead of overwriting it.

- Call: `POST https://server.goliathdata.com/api/v1/call` with `{ "operationId": "saveSpaceTextFile", "variables": {...} }`
- Scope: `WRITE`
- Type: mutation
- Idempotency: honors `Idempotency-Key` (24 h)
- Rate-limited: no

## Variables

- `input`: `SaveSpaceTextFileInput!` (required)
  - `itemId`: `ID!` (required)
  - `content`: `String!` (required)
  - `baseVersionId`: `ID`. The version the editor started from; a save over someone else's newer one is refused.
  - `editSessionId`: `ID`. The open editor's session id. While the same person keeps saving from one session (saves no more than 10 minutes apart), each save replaces that session's version instead of adding one.

## Response (data, an example)

```json
{
  "spacesMutation": {
    "saveTextFile": {
      "id": "<ID>",
      "spaceId": "<ID>",
      "spaceName": "…",
      "parentId": "<ID>",
      "kind": "FOLDER",
      "name": "…",
      "description": "…",
      "fileType": "…",
      "sizeBytes": 0,
      "accessMode": "INHERIT",
      "systemLocked": true,
      "viewerRole": "VIEWER",
      "abilities": {
        "addChildren": true,
        "edit": true,
        "move": true,
        "trash": true,
        "share": true
      },
      "owner": {
        "id": "<ID>",
        "name": "…"
      },
      "createdBy": {
        "kind": "PERSON",
        "label": "…"
      },
      "childCount": 0,
      "shareCount": 0,
      "currentVersion": {
        "id": "<ID>",
        "versionNumber": 0
      },
      "path": [
        {
          "id": "<ID>",
          "name": "…"
        }
      ],
      "updatedAt": "2026-01-01T00:00:00.000Z",
      "trashedAt": "2026-01-01T00:00:00.000Z"
    }
  }
}
```

## Example

```bash
curl https://server.goliathdata.com/api/v1/call \
  -H "Authorization: Bearer $GOLIATH_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "operationId": "saveSpaceTextFile",
    "variables": {
      "input": {
        "itemId": "<itemId>",
        "content": "<String>"
      }
    }
  }'
```
