> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Slides Integration for AI Agents & Workflows

> Create and edit Google Slides presentations — manage slides, shapes, images, tables, and text via the Google Slides REST API.

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/google-slides.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=38addcacb853cdf882a9b3119f90c8d2" alt="Google Slides logo" width="72" height="72" data-path="logos/google-slides.svg" />

## Overview

Add **Google Slides** to any ModuleX agent or workflow. Create and edit Google Slides presentations from agents — manage slides, shapes, images, tables, and text via the Google Slides REST API (`slides.googleapis.com/v1`).

<Info>
  **Categories**: Productivity & Collaboration · Document Management · **Auth**: OAuth2 · **Actions**: 15
</Info>

## Authentication

### OAuth2 Authentication

Connect using Google OAuth (recommended)

#### Required Credentials

| Field         | Description                          | Required | Format                                                   |
| ------------- | ------------------------------------ | -------- | -------------------------------------------------------- |
| Client ID     | Google Cloud OAuth 2.0 Client ID     | Yes      | `1234567890-abcdefghijklmnop.apps.googleusercontent.com` |
| Client Secret | Google Cloud OAuth 2.0 Client Secret | Yes      | `GOCSPX-xxxxxxxxxxxxxxxxxxxxxxxx`                        |

#### OAuth Configuration

* **Authorization URL**: `https://accounts.google.com/o/oauth2/v2/auth`
* **Token URL**: `https://oauth2.googleapis.com/token`
* **Scopes**: `https://www.googleapis.com/auth/presentations`

## Available Actions

<AccordionGroup>
  <Accordion title="create_image — Insert an image (by URL) onto a slide in a presentation via the Slides batchUpdate CreateImageRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="slide_id" type="string" required>
      Object ID of the slide (page) on which to place the image.
    </ResponseField>

    <ResponseField name="url" type="string" required>
      Publicly accessible URL of the image to insert; must be reachable by Google's servers.
    </ResponseField>

    <ResponseField name="height" type="integer" required>
      Height of the image in points (1 pt = 1/72 inch).
    </ResponseField>

    <ResponseField name="width" type="integer" required>
      Width of the image in points (1 pt = 1/72 inch).
    </ResponseField>

    <ResponseField name="scale_x" type="integer">
      Horizontal scale factor for the image. (Default: `1`)
    </ResponseField>

    <ResponseField name="scale_y" type="integer">
      Vertical scale factor for the image. (Default: `1`)
    </ResponseField>

    <ResponseField name="translate_x" type="integer">
      Horizontal translation (offset) of the image in points. (Default: `0`)
    </ResponseField>

    <ResponseField name="translate_y" type="integer">
      Vertical translation (offset) of the image in points. (Default: `0`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "image_object_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Image Object Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateImageOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_page_element — Insert a new shape page element (text box, rectangle, ellipse, arrow, etc.) onto a slide via the Slides batchUpdate CreateShapeRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="slide_id" type="string" required>
      Object ID of the slide on which to place the shape.
    </ResponseField>

    <ResponseField name="type" type="string" required>
      Shape type. Common values: 'TEXT\_BOX', 'RECTANGLE', 'ELLIPSE', 'ROUND\_RECTANGLE', 'ARROW\_EAST', 'RIGHT\_ARROW', 'STAR\_5', 'CLOUD'. See Google Slides API Type enum for the full list.
    </ResponseField>

    <ResponseField name="height" type="integer" required>
      Height of the shape in points (1 pt = 1/72 inch).
    </ResponseField>

    <ResponseField name="width" type="integer" required>
      Width of the shape in points (1 pt = 1/72 inch).
    </ResponseField>

    <ResponseField name="scale_x" type="integer">
      Horizontal scale factor for the shape. (Default: `1`)
    </ResponseField>

    <ResponseField name="scale_y" type="integer">
      Vertical scale factor for the shape. (Default: `1`)
    </ResponseField>

    <ResponseField name="translate_x" type="integer">
      Horizontal translation (offset) of the shape in points. (Default: `0`)
    </ResponseField>

    <ResponseField name="translate_y" type="integer">
      Vertical translation (offset) of the shape in points. (Default: `0`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "shape_object_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Shape Object Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreatePageElementOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_presentation — Create a blank Google Slides presentation via the Slides API.">
    ### Parameters

    <ResponseField name="title" type="string" required>
      Title of the new presentation.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "revision_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Revision Id"
        },
        "raw": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Raw"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreatePresentationOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_slide — Create a new slide in a presentation, optionally based on a specific layout, via the Slides batchUpdate CreateSlideRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="layout_id" type="string" required>
      Object ID of the slide layout to apply (from presentation.layouts\[\*].objectId).
    </ResponseField>

    <ResponseField name="insertion_index" type="integer">
      Optional 0-based index where the slide is inserted. Omit to append at the end.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "slide_object_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Slide Object Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateSlideOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_table — Create a new table on a slide with the given rows and columns via the Slides batchUpdate CreateTableRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="slide_id" type="string" required>
      Object ID of the slide on which to place the table.
    </ResponseField>

    <ResponseField name="rows" type="integer" required>
      Number of rows in the table.
    </ResponseField>

    <ResponseField name="columns" type="integer" required>
      Number of columns in the table.
    </ResponseField>

    <ResponseField name="height" type="integer" required>
      Height of the table in points (1 pt = 1/72 inch).
    </ResponseField>

    <ResponseField name="width" type="integer" required>
      Width of the table in points (1 pt = 1/72 inch).
    </ResponseField>

    <ResponseField name="translate_x" type="integer">
      Optional horizontal translation (offset) of the table in points.
    </ResponseField>

    <ResponseField name="translate_y" type="integer">
      Optional vertical translation (offset) of the table in points.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "table_object_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Table Object Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateTableOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="delete_page_element — Delete a page element (shape, image, table, etc.) from a slide via the Slides batchUpdate DeleteObjectRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="page_element_id" type="string" required>
      Object ID of the page element to delete.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "deleted_object_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Deleted Object Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "DeletePageElementOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="delete_slide — Delete a slide from a presentation via the Slides batchUpdate DeleteObjectRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="slide_id" type="string" required>
      Object ID of the slide to delete.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "deleted_slide_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Deleted Slide Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "DeleteSlideOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="delete_table_column — Delete a single column from an existing table on a slide via the Slides batchUpdate DeleteTableColumnRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="table_id" type="string" required>
      Object ID of the table to modify.
    </ResponseField>

    <ResponseField name="column_index" type="integer" required>
      0-based index of the column inside the table to delete.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "DeleteTableColumnOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="delete_table_row — Delete a single row from an existing table on a slide via the Slides batchUpdate DeleteTableRowRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="table_id" type="string" required>
      Object ID of the table to modify.
    </ResponseField>

    <ResponseField name="row_index" type="integer" required>
      0-based index of the row inside the table to delete.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "DeleteTableRowOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="find_presentation — Fetch full metadata about a Google Slides presentation (slides, layouts, masters) via Slides presentations.get.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the Google Slides presentation to retrieve.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "locale": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Locale"
        },
        "revision_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Revision Id"
        },
        "page_size": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Page Size"
        },
        "slides": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Slides",
          "type": "array"
        },
        "layouts": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Layouts",
          "type": "array"
        },
        "masters": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Masters",
          "type": "array"
        },
        "notes_master": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Notes Master"
        },
        "raw": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Raw"
        }
      },
      "required": [
        "success"
      ],
      "title": "FindPresentationOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="insert_table_columns — Insert new columns into an existing table on a slide via the Slides batchUpdate InsertTableColumnsRequest. Maximum 20 columns per request.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="table_id" type="string" required>
      Object ID of the table to modify.
    </ResponseField>

    <ResponseField name="column_index" type="integer">
      Optional 0-based column index of the reference cell.
    </ResponseField>

    <ResponseField name="insert_right" type="boolean">
      Whether the new columns are inserted to the right of the reference cell.
    </ResponseField>

    <ResponseField name="number" type="integer">
      Number of columns to insert (max 20 per request). (Default: `1`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "InsertTableColumnsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="insert_table_rows — Insert new rows into an existing table on a slide via the Slides batchUpdate InsertTableRowsRequest. Maximum 20 rows per request.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="table_id" type="string" required>
      Object ID of the table to modify.
    </ResponseField>

    <ResponseField name="row_index" type="integer">
      Optional 0-based row index of the reference cell.
    </ResponseField>

    <ResponseField name="insert_below" type="boolean">
      Whether the new rows are inserted below the reference cell.
    </ResponseField>

    <ResponseField name="number" type="integer">
      Number of rows to insert (max 20 per request). (Default: `1`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "InsertTableRowsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="insert_text — Insert text into a shape (typically a TEXT_BOX) on a slide via the Slides batchUpdate InsertTextRequest.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="shape_id" type="string" required>
      Object ID of the target shape (must contain a text frame, e.g. a TEXT\_BOX).
    </ResponseField>

    <ResponseField name="text" type="string" required>
      Text content to insert into the shape.
    </ResponseField>

    <ResponseField name="insertion_index" type="integer">
      Optional 0-based character index at which to insert the text. Omit to append at the end.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "InsertTextOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="insert_text_into_table — Insert text into a specific cell of a table on a slide via the Slides batchUpdate InsertTextRequest with cellLocation.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="table_id" type="string" required>
      Object ID of the target table.
    </ResponseField>

    <ResponseField name="text" type="string" required>
      Text content to insert into the table cell.
    </ResponseField>

    <ResponseField name="row_index" type="integer">
      Optional 0-based row index of the target cell.
    </ResponseField>

    <ResponseField name="column_index" type="integer">
      Optional 0-based column index of the target cell.
    </ResponseField>

    <ResponseField name="insertion_index" type="integer">
      Optional 0-based character index within the cell at which to insert the text. Omit to append at the end.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "InsertTextIntoTableOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="replace_all_text — Replace every occurrence of a given text snippet inside a presentation via the Slides batchUpdate ReplaceAllTextRequest. Optionally restricted to specific slide pages.">
    ### Parameters

    <ResponseField name="presentation_id" type="string" required>
      ID of the target Google Slides presentation.
    </ResponseField>

    <ResponseField name="text" type="string" required>
      Text snippet to search for.
    </ResponseField>

    <ResponseField name="replace_text" type="string" required>
      Replacement text inserted for every match found.
    </ResponseField>

    <ResponseField name="slide_ids" type="array">
      Optional list of slide page object IDs (strings). When supplied, only page elements on these pages are searched.
    </ResponseField>

    <ResponseField name="match_case" type="boolean">
      Whether the text match is case-sensitive.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "presentation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Presentation Id"
        },
        "total_occurrences_changed": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Total Occurrences Changed"
        },
        "replies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Replies",
          "type": "array"
        },
        "write_control": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Write Control"
        }
      },
      "required": [
        "success"
      ],
      "title": "ReplaceAllTextOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* **Per-project quotas**: Google Slides API defaults to a few hundred read or write requests per 100 seconds per project; per-user limits also apply (see the [Slides API quotas page](https://developers.google.com/workspace/slides/api/limits)). Quotas are managed in the Google Cloud Console (APIs & Services -> Quotas).
* **batchUpdate body**: Slides `batchUpdate` requests should stay under \~10 MB; for very large updates, batch the work into multiple calls.
* **Insert table rows/columns**: capped at 20 per single request, per Google's documented `InsertTableRowsRequest` / `InsertTableColumnsRequest` limits.
* **Error model**: non-2xx responses and timeouts are caught and returned as `success=False` + `error` rather than raising. Plan for retries on the agent side based on the error string. OAuth tokens that have expired surface as HTTP 401 in the `error` field.

## Related integrations

<CardGroup cols={3}>
  <Card title="Cal.com" href="/integrations/tools/cal-com" />

  <Card title="Canva" href="/integrations/tools/canva" />

  <Card title="ConvertAPI" href="/integrations/tools/convertapi" />
</CardGroup>

## Links

* [Google Slides](https://slides.google.com)
