Skip to main content
Use Google Slides through Corsair: one client, typed API calls, local DB sync. Google Slides exposes presentation creation, slide creation and ordering, text editing and styling, bullet lists, speaker notes, shapes, images, tables, element transforms and grouping, plus PDF or PPTX export. Scopes. The plugin requests presentations for slide content and drive for listing, copying, exporting and deleting a file, which are Drive calls. Ids. presentations.list returns presentationId per file. slides.list returns each slide’s objectId, and slides.get returns its pageElements. Text and element writes take the objectId of a shape or table, not a slide. Placeholders. A slide created from a layout has placeholder shapes whose ids Google generates. Read the slide back to get them, or pass placeholderIdMappings through batch.update to choose ids up front. Speaker notes. slides.setNotes reads the slide first to find the notes shape, deletes the existing text, then inserts the new text. A slide whose notes shape has never been created has no id for Google to write to, so the call explains that instead of guessing. Text ranges. A range takes type: 'ALL', FROM_START_INDEX with startIndex, or FIXED_RANGE with both indexes. Indexes are Unicode code units counted from the start of the shape’s text, and Google appends a newline the caller did not type. Destructive operations. presentations.delete, slides.remove, text.delete and batch.update are marked destructive for Corsair permissions. In text.updateStyle, a property named in fields but absent from style is reset to its default. Rate limits. Google answers a quota burst with 429, or with a 403 whose body says rateLimitExceeded. Both are retried up to four times, waiting for Retry-After when present and sixty seconds otherwise, so a call can wait several minutes before it gives up. An exhausted daily quota is not retried, because no wait inside the request can clear it. Raw requests. batch.update takes the batchUpdate request types without a typed endpoint, such as mergeTableCells or updateParagraphStyle. Deletions are refused there; use the typed operation. Webhooks. Google Slides sends no push notifications, so the plugin has none. What you get:
  • 31 typed API operations
  • 1 synced entity (presentations) for fast .search() / .list()

Setup

1

Install

2

Add the plugin

corsair.ts
With multiTenancy: true, scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.
3

Choose authentication

4

Connect a tenant

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.

Example API calls

List the slides in a presentation
Fill a shape with text
See the full list on the API page.

Query synced data

Synced entities support tenant.googleslides.db.<entity>.search() and .list(): presentations. See Database for filters and operators.

What’s next

API reference

Every googleslides.api.* operation with input and output types.

Database

Synced entities, search filters, and operators.

Connect / OAuth

createLink, Hub delivery, and tenant connect flows.

Use with agents

Expose this plugin’s operations as MCP tools.