---
title: "Update a document"
method: POST
path: "/documents.update"
tags: ["Documents"]
---

# Update a document

`POST /documents.update`

This method allows you to modify an already created document

## Request body

- object
  - `id` string, required — Unique identifier for the document. Either the UUID or the urlId is acceptable.
  - `title` string — The title of the document.
  - `text` string — The body of the document, may contain markdown formatting.
  - `append` boolean — If true the text field will be appended to the end of the existing document, rather than the default behavior of replacing it. This is potentially useful for things like logging into a document.
  - `publish` boolean — Whether this document should be published and made visible to other team members, if a draft
  - `done` boolean — Whether the editing session has finished, this will trigger any notifications. This property will soon be deprecated.

## Response `200`

OK

- object
  - `data` Document
    - `id` string, uuid — Unique identifier for the object.
    - `collectionId` string, uuid — Identifier for the associated collection.
    - `parentDocumentId` string, uuid — Identifier for the document this is a child of, if any.
    - `title` string — The title of the document.
    - `fullWidth` boolean — Whether this document should be displayed in a full-width view.
    - `emoji` string — An emoji associated with the document.
    - `text` string — The text content of the document, contains markdown formatting
    - `urlId` string — A short unique ID that can be used to identify the document as an alternative to the UUID
    - `collaborators` User[]
      - `id` string, uuid — Unique identifier for the object.
      - `name` string — The name of this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if neccessary.
      - `avatarUrl` string, uri — The URL for the image associated with this user, it will be displayed in the application UI and email notifications.
      - `email` string, email — The email associated with this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if neccessary.
      - `role` 'admin' | 'member' | 'viewer' | 'guest'
      - `isSuspended` boolean — Whether this user has been suspended.
      - `lastActiveAt` string, date-time — The last time this user made an API request, this value is updated at most every 5 minutes.
      - `createdAt` string, date-time — The date and time that this user first signed in or was invited as a guest.
    - `pinned` boolean — Whether this document is pinned in the collection
    - `template` boolean — Whether this document is a template
    - `templateId` string, uuid — Unique identifier for the template this document was created from, if any
    - `revision` number — A number that is auto incrementing with every revision of the document that is saved
    - `createdAt` string, date-time — The date and time that this object was created
    - `createdBy` User
      - `id` string, uuid — Unique identifier for the object.
      - `name` string — The name of this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if neccessary.
      - `avatarUrl` string, uri — The URL for the image associated with this user, it will be displayed in the application UI and email notifications.
      - `email` string, email — The email associated with this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if neccessary.
      - `role` 'admin' | 'member' | 'viewer' | 'guest'
      - `isSuspended` boolean — Whether this user has been suspended.
      - `lastActiveAt` string, date-time — The last time this user made an API request, this value is updated at most every 5 minutes.
      - `createdAt` string, date-time — The date and time that this user first signed in or was invited as a guest.
    - `updatedAt` string, date-time — The date and time that this object was last changed
    - `updatedBy` User
      - `id` string, uuid — Unique identifier for the object.
      - `name` string — The name of this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if neccessary.
      - `avatarUrl` string, uri — The URL for the image associated with this user, it will be displayed in the application UI and email notifications.
      - `email` string, email — The email associated with this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if neccessary.
      - `role` 'admin' | 'member' | 'viewer' | 'guest'
      - `isSuspended` boolean — Whether this user has been suspended.
      - `lastActiveAt` string, date-time — The last time this user made an API request, this value is updated at most every 5 minutes.
      - `createdAt` string, date-time — The date and time that this user first signed in or was invited as a guest.
    - `publishedAt` string, date-time, nullable — The date and time that this object was published
    - `archivedAt` string, date-time — The date and time that this object was archived
    - `deletedAt` string, date-time, nullable — The date and time that this object was deleted
  - `policies` Policy[]
    - `id` string, uuid — Unique identifier for the object this policy references.
    - `abilities` object
      - `create` boolean
      - `read` boolean
      - `update` boolean
      - `delete` boolean
      - `restore` boolean
      - `star` boolean
      - `unstar` boolean
      - `share` boolean
      - `download` boolean
      - `pin` boolean
      - `unpin` boolean
      - `move` boolean
      - `archive` boolean
      - `unarchive` boolean
      - `createChildDocument` boolean

## Other responses

- `400` — The request failed one or more validations.
- `401` — The API key is missing or otherwise invalid.
- `403` — The current API key is not authorized to perform this action.
- `404` — The specified resource was not found.
- `429` — The request was rate limited.

## Changes

- **2024-10-18** `fdf2ec9c9df4` — 1 info
  - added the non-success response with the status `429`
- **2024-07-06** `7b33b538cd7d` — 12 info
  - added the optional property `data` to the response with the `400` status
  - added the optional property `data` to the response with the `401` status
  - added the optional property `data` to the response with the `403` status
  - added the optional property `data` to the response with the `404` status
  - …8 more

[Change history](https://skmtc.dev/defaulr/apis/outline-api/changes/documents.update/post.md)

---

[API](https://skmtc.dev/defaulr/apis/outline-api.md) · [All operations](https://skmtc.dev/defaulr/apis/outline-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/defaulr/outline-api/revisions/fdf2ec9c9df4/schema)
