# Docs capabilities 35 operations, all REST methods. ⚠️ marks destructive operations (MCP `destructiveHint`): removals, sends, and standing side effects. | Operation | Source | Description | | --- | --- | --- | | [`get_document`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/get) | REST Method | Get a document by id: its title, revision, body as text blocks with UTF-16 index ranges (the ranges that edits target), and its headers, footers, and footnotes keyed by the segmentId that addresses them. | | [`create_document`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/create) | REST Method | Create a blank document with a title; returns the new document and its id. Body content is added with the editing operations. | | [`insert_text`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#InsertTextRequest) | REST Method | Insert text into a document body, at a UTF-16 index or (omitted) appended at the end. | | [`replace_all_text`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#ReplaceAllTextRequest) ⚠️ | REST Method | Replace every occurrence of a substring in the document, irreversibly; returns how many occurrences changed. | | [`delete_content_range`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#DeleteContentRangeRequest) ⚠️ | REST Method | Delete a UTF-16 index range of document content, irreversibly; indices shift afterward, so re-read before further edits. | | [`update_text_style`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#UpdateTextStyleRequest) | REST Method | Set character styling (bold, italic, underline, strikethrough, small caps, baseline offset, font size, font family and weight, foreground and background color, link) on a range of text; only the provided fields change. | | [`update_paragraph_style`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#UpdateParagraphStyleRequest) | REST Method | Set paragraph styling (named style such as headings, alignment, line spacing, direction, spacing, indents, borders, shading, pagination controls) on every paragraph a range overlaps; only the provided fields change. | | [`create_paragraph_bullets`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#CreateParagraphBulletsRequest) | REST Method | Turn the paragraphs a range overlaps into a bulleted or numbered list, using a glyph preset; leading tabs determine nesting. | | [`delete_paragraph_bullets`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#DeleteParagraphBulletsRequest) ⚠️ | REST Method | Remove bullets from the paragraphs a range overlaps; the text is preserved and the paragraphs leave their list. | | [`update_document_style`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#UpdateDocumentStyleRequest) | REST Method | Set document-wide styling (page margins, header and footer margins, page size and orientation, page number start, first- and even-page header toggles, background color); only the provided fields change. | | [`insert_section_break`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#InsertSectionBreakRequest) | REST Method | Insert a section break (new-page or continuous) into the document body, splitting the document into sections that update_section_style can style independently; a newline character is inserted before the break. | | [`update_section_style`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#UpdateSectionStyleRequest) | REST Method | Set section styling (column layout and separators, content direction, section margins) on every section a range overlaps; only the provided fields change. Sections are created with insert_section_break; a document with no breaks is one section. | | [`insert_table`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#InsertTableRequest) | REST Method | Insert an empty table with the given number of rows and columns; a newline character is inserted before the table, so the table starts one index past the insertion point. Re-read the document afterwards to target the new cells. | | [`insert_table_row`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#InsertTableRowRequest) | REST Method | Insert an empty row into a table, above or below the row of a reference cell. Re-read the document afterwards: the insertion shifts every index at or after the new row. | | [`insert_table_column`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#InsertTableColumnRequest) | REST Method | Insert an empty column into a table, to the left or right of the column of a reference cell. Re-read the document afterwards: the insertion shifts indices throughout the table. | | [`delete_table_row`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#DeleteTableRowRequest) ⚠️ | REST Method | Delete the table row a reference cell spans, including all cell content; a merged cell spanning multiple rows deletes them all, and deleting the last row deletes the whole table. | | [`delete_table_column`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#DeleteTableColumnRequest) ⚠️ | REST Method | Delete the table column a reference cell spans, including all cell content; a merged cell spanning multiple columns deletes them all, and deleting the last column deletes the whole table. | | [`update_table_row_style`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#UpdateTableRowStyleRequest) | REST Method | Set row styling (minimum row height, header row, overflow prevention) on specific table rows, or on every row when no indices are given; only the provided fields change. | | [`update_table_column_properties`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#UpdateTableColumnPropertiesRequest) | REST Method | Set column properties (evenly distributed or fixed width, and the fixed width in points) on specific table columns, or on every column when no indices are given; only the provided fields change. | | [`update_table_cell_style`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#UpdateTableCellStyleRequest) | REST Method | Set cell styling (background color, borders, padding, content alignment) on a rectangular range of table cells, or on the whole table when a table start location is given instead; only the provided fields change, and border updates also update the shared border of adjacent cells. | | [`merge_table_cells`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#MergeTableCellsRequest) ⚠️ | REST Method | Merge a rectangular range of table cells into one; any text in the merged cells is concatenated into the range's head cell (upper-left in left-to-right content). A non-rectangular range is rejected with a 400 error. | | [`unmerge_table_cells`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#UnmergeTableCellsRequest) ⚠️ | REST Method | Unmerge all merged cells in a range of table cells; text in a merged cell remains in the head cell of the resulting block of unmerged cells, and a range with no merged cells does nothing. | | [`pin_table_header_rows`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#PinTableHeaderRowsRequest) | REST Method | Pin the first N rows of a table as header rows that repeat on every page the table spans; a count of 0 unpins all rows. | | [`create_named_range`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#CreateNamedRangeRequest) | REST Method | Name a range of the document, returning a namedRangeId: a stable handle that survives index shifts, so later edits (replace_named_range_content, delete_named_range) can target the region without recomputing indices. | | [`delete_named_range`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#DeleteNamedRangeRequest) ⚠️ | REST Method | Delete a named range by its ID, or every named range with a given name; the text the range covered is preserved, only the name is removed. | | [`replace_named_range_content`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#ReplaceNamedRangeContentRequest) ⚠️ | REST Method | Replace the content of a named range (by ID, or of every range with a given name) with the given text: the template-fill primitive, targeting by stable handle instead of shifting indices. Replacing by a name that matches nothing is a no-op. | | [`create_header`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#CreateHeaderRequest) | REST Method | Create a header, returning its headerId: pass that as segmentId to insert_text and the styling ranges to put content in it (header content starts at index 0). Applies to the whole document, or to one section when sectionBreakIndex names a later section break; creating a header where one already exists fails with a 400. | | [`create_footer`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#CreateFooterRequest) | REST Method | Create a footer, returning its footerId: pass that as segmentId to insert_text and the styling ranges to put content in it (footer content starts at index 0). Applies to the whole document, or to one section when sectionBreakIndex names a later section break; creating a footer where one already exists fails with a 400. | | [`delete_header`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#DeleteHeaderRequest) ⚠️ | REST Method | Delete a header and its content by headerId. A document-wide header is removed from the first section; a section header is removed and that section continues the previous section's header. | | [`delete_footer`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#DeleteFooterRequest) ⚠️ | REST Method | Delete a footer and its content by footerId. A document-wide footer is removed from the first section; a section footer is removed and that section continues the previous section's footer. | | [`insert_page_break`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#InsertPageBreakRequest) | REST Method | Insert a page break followed by a newline into the document body, so the following content starts on a new page; page breaks cannot go inside tables, footnotes, headers, or footers. | | [`create_footnote`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#CreateFootnoteRequest) | REST Method | Create a footnote: inserts a footnote reference into the body and returns the new footnote segment's footnoteId — pass that as segmentId to insert_text to write the footnote text (footnote content starts at index 0). | | [`insert_inline_image`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#InsertInlineImageRequest) | REST Method | Insert an image from a publicly accessible URI (PNG, JPEG, or GIF; under 50MB and 25 megapixels; URI at most 2 kB) into the body, a header, or a footer, optionally sized in points; Google fetches the image once at insertion time and returns the created objectId. | | [`replace_image`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#ReplaceImageRequest) ⚠️ | REST Method | Replace an existing image, keeping its rendered size: the new image (PNG, JPEG, or GIF from a publicly accessible URI; under 50MB and 25 megapixels) is scaled and center-cropped to fill the original bounds; the old image and some of its effects are removed. | | [`delete_positioned_object`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request#DeletePositionedObjectRequest) ⚠️ | REST Method | Delete a positioned object (an image anchored to a paragraph with text wrapping, created in the Docs editor) by its objectId. |