

Google Slides
Connector
Available ActionsEach successful request consumes credits as outlined below.
create_presentation5crget_presentation5crsearch_presentations5crget_slide_thumbnail5crbatch_update5cradd_slide5crdelete_object5cradd_text_box5cradd_image5cradd_table5cradd_shape5crinsert_text5crreplace_all_text5crreplace_all_shapes_with_image5crupdate_text_style5crupdate_shape_properties5crupdate_slide_properties5crduplicate_object5crreorder_slides5cr
Details
Build stunning presentations without ever opening a browser. Create slide decks from scratch, add text, images, tables, and shapes, apply custom styles, fill templates with dynamic data, and generate slide thumbnails — all from your workflow. Perfect for automating reports, pitch decks, and client deliverables.
Use Cases
Create presentations from scratch, Add slides with predefined layouts, Insert text boxes with styled content, Embed images into slides, Create data tables on slides, Fill presentation templates with dynamic data, Generate slide thumbnails, Style text with fonts and colors, Apply shape backgrounds and outlines, Duplicate and reorder slides
Connect Your Agent In 5 Min
Watch the setup guide for your platform
Or Install Locally
STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to https://api.agentpmt.com/mcp. All tool execution happens in the cloud and the server cannot edit any files on your computer.
npm install -g @agentpmt/mcp-routeragentpmt-setupCredentials
Google OAuth *
Connect your Google account.
Manage credentials in your dashboard.
Actions(19)
create_presentation5cr1 param(1 required)Create a new empty Google Slides presentation.
create_presentation5cr1 param(1 required)Create a new empty Google Slides presentation.
titlerequiredstringTitle for the new presentation
get_presentation5cr1 param(1 required)Retrieve full details of an existing presentation including all slides and elements.
get_presentation5cr1 param(1 required)Retrieve full details of an existing presentation including all slides and elements.
presentation_idrequiredstringPresentation ID
search_presentations5cr2 paramsSearch for Google Slides presentations by name. Results sorted by most recently modified.
search_presentations5cr2 paramsSearch for Google Slides presentations by name. Results sorted by most recently modified.
querystringName contains match. If omitted, lists recent presentations.
max_resultsintegerMaximum number of results (1-100, default 20)
Default:
20Range: 1 - 100
get_slide_thumbnail5cr3 params(2 required)Generate a PNG thumbnail image of a specific slide.
get_slide_thumbnail5cr3 params(2 required)Generate a PNG thumbnail image of a specific slide.
presentation_idrequiredstringPresentation ID
page_object_idrequiredstringSlide/page object ID
thumbnail_sizestringThumbnail size: LARGE (1600px), MEDIUM (800px), SMALL (200px)
Values:
LARGEMEDIUMSMALL
Default:
LARGEbatch_update5cr2 params(2 required)Execute raw Google Slides batchUpdate requests for advanced operations. All requests execute atomically.
batch_update5cr2 params(2 required)Execute raw Google Slides batchUpdate requests for advanced operations. All requests execute atomically.
presentation_idrequiredstringPresentation ID
requestsrequiredarrayRaw Slides API request objects
Array of: object
add_slide5cr4 params(1 required)Add a new slide to a presentation.
add_slide5cr4 params(1 required)Add a new slide to a presentation.
presentation_idrequiredstringPresentation ID
insertion_indexinteger0-based position to insert slide (default: appended at end)
layoutstringPredefined layout: BLANK, TITLE, TITLE_AND_BODY, TITLE_AND_TWO_COLUMNS, TITLE_ONLY, SECTION_HEADER, ONE_COLUMN_TEXT, MAIN_POINT, BIG_NUMBER, CAPTION_ONLY
object_id_valuestringCustom slide ID (auto-generated if omitted)
delete_object5cr2 params(2 required)Delete a slide or element from a presentation.
delete_object5cr2 params(2 required)Delete a slide or element from a presentation.
presentation_idrequiredstringPresentation ID
object_id_valuerequiredstringSlide or element ID to delete
add_text_box5cr5 params(2 required)Add a text box to a slide.
add_text_box5cr5 params(2 required)Add a text box to a slide.
presentation_idrequiredstringPresentation ID
page_object_idrequiredstringTarget slide ID
textstringInitial text content
element_propertiesobjectPosition and size in inches
Properties:
x_inches(number)- X position in inches from left edgey_inches(number)- Y position in inches from top edgewidth_inches(number)- Width in inchesheight_inches(number)- Height in inchesobject_id_valuestringCustom element ID (auto-generated if omitted)
add_image5cr5 params(3 required)Add an image to a slide.
add_image5cr5 params(3 required)Add an image to a slide.
presentation_idrequiredstringPresentation ID
page_object_idrequiredstringTarget slide ID
image_urlrequiredstringPublicly accessible image URL
element_propertiesobjectPosition and size in inches
Properties:
x_inches(number)- X position in inchesy_inches(number)- Y position in incheswidth_inches(number)- Width in inchesheight_inches(number)- Height in inchesobject_id_valuestringCustom element ID (auto-generated if omitted)
add_table5cr6 params(4 required)Add a table to a slide, optionally pre-populated with data.
add_table5cr6 params(4 required)Add a table to a slide, optionally pre-populated with data.
presentation_idrequiredstringPresentation ID
page_object_idrequiredstringTarget slide ID
rowsrequiredintegerNumber of table rows
Range: 1 - 100
columnsrequiredintegerNumber of table columns
Range: 1 - 20
table_dataarray2D array of cell text to populate after creation
Array of: array
object_id_valuestringCustom table ID (auto-generated if omitted)
add_shape5cr6 params(2 required)Add a shape to a slide with optional text inside.
add_shape5cr6 params(2 required)Add a shape to a slide with optional text inside.
presentation_idrequiredstringPresentation ID
page_object_idrequiredstringTarget slide ID
shape_typestringShape type: TEXT_BOX, RECTANGLE, ELLIPSE, ROUND_RECTANGLE, STAR_4, ARROW_EAST, etc. Default: RECTANGLE
Default:
RECTANGLEtextstringText content inside the shape
element_propertiesobjectPosition and size in inches
Properties:
x_inches(number)- X position in inchesy_inches(number)- Y position in incheswidth_inches(number)- Width in inchesheight_inches(number)- Height in inchesobject_id_valuestringCustom element ID (auto-generated if omitted)
insert_text5cr5 params(3 required)Insert text into an existing shape or table cell.
insert_text5cr5 params(3 required)Insert text into an existing shape or table cell.
presentation_idrequiredstringPresentation ID
object_id_valuerequiredstringShape or table object ID
textrequiredstringText to insert
text_insertion_indexintegerCharacter index for insertion (default 0)
Default:
0cell_locationobjectTable cell location for inserting into a table cell
Properties:
rowIndex*(integer)- Row index (0-based)columnIndex*(integer)- Column index (0-based)replace_all_text5cr4 params(3 required)Find and replace text across the entire presentation. Ideal for template merging with {{tag}} placeholders.
replace_all_text5cr4 params(3 required)Find and replace text across the entire presentation. Ideal for template merging with {{tag}} placeholders.
presentation_idrequiredstringPresentation ID
search_textrequiredstringText to find (e.g. a template tag like {{customer_name}})
replace_textrequiredstringReplacement text
match_casebooleanCase-sensitive matching (default true)
Default:
truereplace_all_shapes_with_image5cr5 params(3 required)Replace all shapes containing specific text with an image. Useful for template image placeholders.
replace_all_shapes_with_image5cr5 params(3 required)Replace all shapes containing specific text with an image. Useful for template image placeholders.
presentation_idrequiredstringPresentation ID
search_textrequiredstringText in shapes to find (e.g. {{logo}})
image_urlrequiredstringPublicly accessible image URL
image_replace_methodstringHow to fit image: CENTER_INSIDE (default) or CENTER_CROP
Values:
CENTER_INSIDECENTER_CROP
Default:
CENTER_INSIDEmatch_casebooleanCase-sensitive matching (default true)
Default:
trueupdate_text_style5cr6 params(3 required)Apply styling to text within a shape.
update_text_style5cr6 params(3 required)Apply styling to text within a shape.
presentation_idrequiredstringPresentation ID
object_id_valuerequiredstringShape containing the text
text_stylerequiredobjectText style properties to apply
Properties:
bold(boolean)- Bold textitalic(boolean)- Italic textunderline(boolean)- Underline textfont_family(string)- Font family namefont_size_pt(number)- Font size in pointsforeground_color_hex(string)- Hex color e.g. #FF0000link_url(string)- Makes text a hyperlinktext_range_typestringWhich text to style: ALL (default), FIXED_RANGE, or FROM_START_INDEX
Values:
ALLFIXED_RANGEFROM_START_INDEX
Default:
ALLstart_indexintegerStart character index (for FIXED_RANGE or FROM_START_INDEX)
end_indexintegerEnd character index (for FIXED_RANGE)
update_shape_properties5cr5 params(2 required)Update visual properties of a shape (fill color, outline).
update_shape_properties5cr5 params(2 required)Update visual properties of a shape (fill color, outline).
presentation_idrequiredstringPresentation ID
object_id_valuerequiredstringShape element ID
shape_background_color_hexstringFill color hex
outline_color_hexstringOutline color hex
outline_weight_ptnumberOutline weight in points
update_slide_properties5cr4 params(2 required)Update slide-level properties such as background color or skip-in-slideshow.
update_slide_properties5cr4 params(2 required)Update slide-level properties such as background color or skip-in-slideshow.
presentation_idrequiredstringPresentation ID
page_object_idrequiredstringSlide ID
background_color_hexstringSlide background color hex
skip_slidebooleanSkip this slide during slideshow playback
duplicate_object5cr2 params(2 required)Duplicate a slide or element within the presentation.
duplicate_object5cr2 params(2 required)Duplicate a slide or element within the presentation.
presentation_idrequiredstringPresentation ID
object_id_valuerequiredstringSlide or element ID to duplicate
reorder_slides5cr3 params(3 required)Move one or more slides to a new position.
reorder_slides5cr3 params(3 required)Move one or more slides to a new position.
presentation_idrequiredstringPresentation ID
slide_object_idsrequiredarraySlide IDs to move
Array of: string
new_positionrequiredinteger0-based insertion index
curl -X POST "https://api.agentpmt.com/products/purchase" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ********" \
-d '{
"product_id": "69928f99aa85db8efed13eb7",
"parameters": {
"action": "create_presentation",
"title": "example_title"
}
}'import requests
import json
url = "https://api.agentpmt.com/products/purchase"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
}
data = {
"product_id": "69928f99aa85db8efed13eb7",
"parameters": {
"action": "create_presentation",
"title": "example_title"
}
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "69928f99aa85db8efed13eb7",
parameters: {
"action": "create_presentation",
"title": "example_title"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));const axios = require('axios');
const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "69928f99aa85db8efed13eb7",
parameters: {
"action": "create_presentation",
"title": "example_title"
}
};
axios.post(url, data, { headers })
.then(response => {
console.log(response.status);
console.log(response.data);
})
.catch(error => {
console.error("Error:", error.message);
});Login to view your API and budget keys. The example above uses placeholder values. Sign in to see personalized code with your bearer token.
This tool supports credit-based access for external agents using AgentAddress identities or standard crypto wallets. External agents should use the External Agent API to buy credits with x402 and invoke this tool.
1. Buy Credits
Purchase credits via x402 payment (500 credit minimum, 100 credits = $1).
# Request payment requirements (returns 402 + PAYMENT-REQUIRED header)
curl -i -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'
# Sign the EIP-3009 authorization, then retry with signature header
curl -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64-json>" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'2. Create a Session Nonce (nonce used in signed balance/invoke)
curl -s -X POST "https://www.agentpmt.com/api/external/auth/session" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET" }'3. Invoke This Tool
Sign the message with your wallet (EIP-191 personal-sign), then POST to the invoke endpoint.
# Sign this message (wallet MUST be lowercased):
# agentpmt-external
# wallet:0xyourwallet...
# session:<session_nonce>
# request:<request_id>
# method:POST
# path:/external/tools/google-slides/actions/<actionSlug>/invoke
# payload:<sha256(canonical_json(parameters))>
curl -s -X POST "https://www.agentpmt.com/api/external/tools/google-slides/actions/<actionSlug>/invoke" \
-H "Content-Type: application/json" \
-d '{
"wallet_address": "0xYOUR_WALLET",
"session_nonce": "<session_nonce>",
"request_id": "invoke-uuid",
"signature": "0x<signature>",
"parameters": {
"your_param": "value"
}
}'Usage Instructions
Usage guidance provided directly by the developer for this product.
Google Slides
Create, edit, and manage Google Slides presentations -- add slides, text, images, tables, shapes, apply styles, fill templates, and generate thumbnails.
Overview
This tool provides full access to the Google Slides API v1. You can create new presentations, add and arrange slides, insert text boxes, images, tables, and shapes, style text and shapes, perform template merges using placeholder tags, generate slide thumbnails, and execute raw batchUpdate requests for advanced operations. All position and size values use inches for convenience (internally converted to EMU at 914,400 EMU per inch).
Actions
create_presentation
Create a new empty Google Slides presentation.
Required parameters:
title(string) -- title for the new presentation
Example:
{"action":"create_presentation","title":"Q4 Revenue Report"}
Returns: presentation_id, title, locale, slide_count, slides[], page_size
get_presentation
Retrieve full details of an existing presentation including all slides and elements.
Required parameters:
presentation_id(string) -- the presentation ID
Example:
{"action":"get_presentation","presentation_id":"1BxiMVs0XRA5nFMdKvBdBZjgmUii9Op3a7eh"}
Returns: presentation_id, title, locale, slide_count, slides[] (with object_id, layout, element_count), page_size, raw (full API response)
search_presentations
Search for Google Slides presentations by name. Results are sorted by most recently modified.
Optional parameters:
query(string) -- name contains match. If omitted, lists recent presentationsmax_results(integer, 1-100, default 20) -- maximum number of results
Example -- search by name:
{"action":"search_presentations","query":"quarterly review"}
Example -- list recent with limit:
{"action":"search_presentations","query":"Q4 report","max_results":5}
Returns: query, result_count, presentations[] (with presentation_id, name, created_time, modified_time, owners[], web_view_link)
get_slide_thumbnail
Generate a PNG thumbnail image of a specific slide.
Required parameters:
presentation_id(string) -- the presentation IDpage_object_id(string) -- the slide/page object ID
Optional parameters:
thumbnail_size(string) --LARGE(1600px, default),MEDIUM(800px), orSMALL(200px)
Example:
{"action":"get_slide_thumbnail","presentation_id":"1BxiMVs0XRA5","page_object_id":"g1234abcd"}
Returns: content_url (PNG URL, valid for approximately 30 minutes), width, height
add_slide
Add a new slide to a presentation.
Required parameters:
presentation_id(string) -- the presentation ID
Optional parameters:
insertion_index(integer) -- 0-based position (default: appended at end)layout(string) -- predefined layout:BLANK,TITLE,TITLE_AND_BODY,TITLE_AND_TWO_COLUMNS,TITLE_ONLY,SECTION_HEADER,SECTION_TITLE_AND_DESCRIPTION,ONE_COLUMN_TEXT,MAIN_POINT,BIG_NUMBER,CAPTION_ONLYobject_id_value(string) -- custom slide ID (auto-generated if omitted)
Example:
{"action":"add_slide","presentation_id":"1BxiMVs0XRA5","layout":"TITLE_AND_BODY","insertion_index":1}
Returns: presentation_id, created_slide_id, replies[]
delete_object
Delete a slide or element from a presentation.
Required parameters:
presentation_id(string) -- the presentation IDobject_id_value(string) -- the slide or element ID to delete
Example:
{"action":"delete_object","presentation_id":"1BxiMVs0XRA5","object_id_value":"g1234abcd"}
Returns: presentation_id, deleted_object_id, replies[]
add_text_box
Add a text box to a slide.
Required parameters:
presentation_id(string) -- the presentation IDpage_object_id(string) -- the target slide ID
Optional parameters:
text(string) -- initial text contentelement_properties(object) -- position and size:{x_inches, y_inches, width_inches, height_inches}(defaults: 0, 0, 3, 1)object_id_value(string) -- custom element ID (auto-generated if omitted)
Example:
{"action":"add_text_box","presentation_id":"1BxiMVs0XRA5","page_object_id":"g1234abcd","text":"Hello World","element_properties":{"x_inches":1,"y_inches":2,"width_inches":5,"height_inches":1}}
Returns: presentation_id, created_text_box_id, replies[]
add_image
Add an image to a slide.
Required parameters:
presentation_id(string) -- the presentation IDpage_object_id(string) -- the target slide IDimage_url(string) -- publicly accessible image URL
Optional parameters:
element_properties(object) -- position and size (defaults: 0, 0, 4, 3)object_id_value(string) -- custom element ID
Example:
{"action":"add_image","presentation_id":"1BxiMVs0XRA5","page_object_id":"g1234abcd","image_url":"https://example.com/logo.png","element_properties":{"x_inches":2,"y_inches":1,"width_inches":4,"height_inches":3}}
Returns: presentation_id, created_image_id, replies[]
add_table
Add a table to a slide, optionally pre-populated with data.
Required parameters:
presentation_id(string) -- the presentation IDpage_object_id(string) -- the target slide IDrows(integer, 1-100) -- number of rowscolumns(integer, 1-20) -- number of columns
Optional parameters:
table_data(array of arrays of strings) -- 2D array of cell text to populate after creationobject_id_value(string) -- custom table ID
Example:
{"action":"add_table","presentation_id":"1BxiMVs0XRA5","page_object_id":"g1234abcd","rows":3,"columns":4,"table_data":[["Name","Q1","Q2","Q3"],["Alice","100","200","300"],["Bob","150","250","350"]]}
Returns: presentation_id, created_table_id, replies[]
add_shape
Add a shape to a slide with optional text inside.
Required parameters:
presentation_id(string) -- the presentation IDpage_object_id(string) -- the target slide ID
Optional parameters:
shape_type(string) --TEXT_BOX,RECTANGLE,ELLIPSE,ROUND_RECTANGLE,STAR_4,ARROW_EAST, etc. (default:RECTANGLE)text(string) -- text content inside the shapeelement_properties(object) -- position and size (defaults: 0, 0, 2, 2)object_id_value(string) -- custom element ID
Example:
{"action":"add_shape","presentation_id":"1BxiMVs0XRA5","page_object_id":"g1234abcd","shape_type":"ELLIPSE","element_properties":{"x_inches":3,"y_inches":2,"width_inches":2,"height_inches":2}}
Returns: presentation_id, created_shape_id, replies[]
insert_text
Insert text into an existing shape or table cell.
Required parameters:
presentation_id(string) -- the presentation IDobject_id_value(string) -- the shape or table object IDtext(string) -- text to insert
Optional parameters:
text_insertion_index(integer, default 0) -- character index for insertioncell_location(object) -- for table cells:{"rowIndex": 0, "columnIndex": 0}
Example -- insert into shape:
{"action":"insert_text","presentation_id":"1BxiMVs0XRA5","object_id_value":"myShape1","text":"New text"}
Example -- insert into table cell:
{"action":"insert_text","presentation_id":"1BxiMVs0XRA5","object_id_value":"myTable1","text":"Cell value","cell_location":{"rowIndex":1,"columnIndex":2}}
Returns: presentation_id, replies[]
replace_all_text
Find and replace text across the entire presentation. Ideal for template merging with {{tag}} placeholders.
Required parameters:
presentation_id(string) -- the presentation IDsearch_text(string) -- text to find (e.g. a template tag)replace_text(string) -- replacement text
Optional parameters:
match_case(boolean, default true) -- case-sensitive matching
Example:
{"action":"replace_all_text","presentation_id":"1BxiMVs0XRA5","search_text":"{{customer_name}}","replace_text":"Acme Corp"}
Returns: presentation_id, replies[] (includes count of replacements)
replace_all_shapes_with_image
Replace all shapes containing specific text with an image. Useful for template image placeholders.
Required parameters:
presentation_id(string) -- the presentation IDsearch_text(string) -- text in shapes to find (e.g.{{logo}})image_url(string) -- publicly accessible image URL
Optional parameters:
image_replace_method(string) --CENTER_INSIDE(default) orCENTER_CROPmatch_case(boolean, default true) -- case-sensitive matching
Example:
{"action":"replace_all_shapes_with_image","presentation_id":"1BxiMVs0XRA5","search_text":"{{logo}}","image_url":"https://example.com/logo.png"}
Returns: presentation_id, replies[]
update_text_style
Apply styling to text within a shape.
Required parameters:
presentation_id(string) -- the presentation IDobject_id_value(string) -- the shape containing the texttext_style(object) -- style properties to apply. Available fields:bold(boolean)italic(boolean)underline(boolean)font_family(string)font_size_pt(number) -- font size in pointsforeground_color_hex(string) -- hex color, e.g.#FF0000link_url(string) -- makes text a hyperlink
Optional parameters:
text_range_type(string) --ALL(default),FIXED_RANGE, orFROM_START_INDEXstart_index(integer) -- start character index (forFIXED_RANGEorFROM_START_INDEX)end_index(integer) -- end character index (forFIXED_RANGE)
Example:
{"action":"update_text_style","presentation_id":"1BxiMVs0XRA5","object_id_value":"myShape1","text_style":{"bold":true,"font_size_pt":24,"foreground_color_hex":"#0000FF"}}
Example -- style a range of characters:
{"action":"update_text_style","presentation_id":"1BxiMVs0XRA5","object_id_value":"myShape1","text_style":{"italic":true,"link_url":"https://example.com"},"text_range_type":"FIXED_RANGE","start_index":0,"end_index":10}
Returns: presentation_id, replies[]
update_shape_properties
Update visual properties of a shape (fill color, outline).
Required parameters:
presentation_id(string) -- the presentation IDobject_id_value(string) -- the shape element ID
Optional parameters:
shape_background_color_hex(string) -- fill color hexoutline_color_hex(string) -- outline color hexoutline_weight_pt(number) -- outline weight in points
Example:
{"action":"update_shape_properties","presentation_id":"1BxiMVs0XRA5","object_id_value":"myShape1","shape_background_color_hex":"#FFCC00","outline_color_hex":"#000000","outline_weight_pt":2}
Returns: presentation_id, replies[]
update_slide_properties
Update slide-level properties such as background color or skip-in-slideshow.
Required parameters:
presentation_id(string) -- the presentation IDpage_object_id(string) -- the slide ID
Optional parameters:
background_color_hex(string) -- slide background color hexskip_slide(boolean) -- skip this slide during slideshow playback
Example:
{"action":"update_slide_properties","presentation_id":"1BxiMVs0XRA5","page_object_id":"g1234abcd","background_color_hex":"#F5F5F5"}
Returns: presentation_id, replies[]
duplicate_object
Duplicate a slide or element within the presentation.
Required parameters:
presentation_id(string) -- the presentation IDobject_id_value(string) -- the slide or element ID to duplicate
Example:
{"action":"duplicate_object","presentation_id":"1BxiMVs0XRA5","object_id_value":"g1234abcd"}
Returns: presentation_id, replies[] (includes new object ID)
reorder_slides
Move one or more slides to a new position.
Required parameters:
presentation_id(string) -- the presentation IDslide_object_ids(array of strings) -- slide IDs to movenew_position(integer) -- 0-based insertion index
Example:
{"action":"reorder_slides","presentation_id":"1BxiMVs0XRA5","slide_object_ids":["slide1","slide2"],"new_position":0}
Returns: presentation_id, replies[]
batch_update
Execute raw Google Slides batchUpdate requests for advanced operations not covered by other actions. All requests execute atomically in order -- if one fails, none are applied.
Required parameters:
presentation_id(string) -- the presentation IDrequests(array of objects) -- raw Slides API request objects
Example:
{"action":"batch_update","presentation_id":"1BxiMVs0XRA5","requests":[{"createSlide":{"objectId":"mySlide","slideLayoutReference":{"predefinedLayout":"BLANK"}}}]}
Returns: presentation_id, replies[]
Workflows
Template Merge Workflow
Fill a template presentation with dynamic data:
- Create or identify a template presentation containing
{{tag}}placeholders in text and shapes - Copy the template using the Google Drive tool (
copy_fileaction) to preserve the original - Use
replace_all_textfor each text placeholder (e.g.{{customer_name}}toAcme Corp) - Use
replace_all_shapes_with_imagefor each image placeholder (e.g.{{logo}}to an image URL) - The original template remains untouched
Build a Presentation from Scratch
create_presentationwith a titleadd_slidewith desired layouts for each sectionadd_text_box,add_image,add_table, oradd_shapeto populate each slideupdate_text_styleandupdate_shape_propertiesto apply brandingget_slide_thumbnailto preview any slide
Notes
- Positions and sizes use inches. The API internally converts to EMU (914,400 EMU = 1 inch, 12,700 EMU = 1 point)
- Images must be publicly accessible URLs
- All batchUpdate-based actions are atomic -- if one operation in the batch fails, none are applied
- Object IDs are auto-generated if not provided. Use custom IDs (via
object_id_value) when you need to reference elements in subsequent calls within the same session - The
add_shapeaction defaults toRECTANGLEshape type ifshape_typeis not specified (notTEXT_BOX-- useadd_text_boxfor text boxes) - Search results from
search_presentationsonly return Google Slides files (filtered by MIME type) - Thumbnail URLs from
get_slide_thumbnailexpire after approximately 30 minutes





