The Gamma connector lets your AI agent act in each user's Gamma account. Each user connects their own Gamma API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 23 tools.
- Tools
- 23
- What they doRead · write · destructive
- 15 · 8 · 015 read8 write0 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Gamma connection
In AgentKit > Connections, create a Gamma connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'gamma'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Gamma:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'gamma_list_folders',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "gamma"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Gamma:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="gamma_list_folders",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Gamma credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolgamma_get_agent_generationGet the status of an agent generation started by gamma_create_agent_generation.Read-onlyGet Agent Generation Status
Get the status of an agent generation started by gamma_create_agent_generation. Returns generationId, status (pending, completed or failed), gamma with gammaId and gammaUrl once created, result.summary, exportUrl, warnings and credits. Use after gamma_create_agent_generation and poll until status is completed or failed. Use gamma_get_generation for non-agent generations.
Inputs
generation_idstringrequired- Agent generation ID returned by gamma_create_agent_generation. It starts with gen_.
gamma_get_analyticsGet document-level engagement metrics for a Gamma.Read-onlyGet Gamma Analytics
Get document-level engagement metrics for a Gamma. Returns scope, totalViews, uniqueViewers, uniqueEditors, cardCount, lastOpened and a 30-day dailyViews breakdown. Use for an overview. Use gamma_get_card_analytics for per-card data and gamma_list_viewer_analytics for per-viewer data. Needs edit permission; data updates about hourly.
Inputs
gamma_idstringrequired- ID of the Gamma: a file ID or the doc ID from a gamma.app/docs/... URL.
gamma_get_card_analyticsGet per-card engagement for a Gamma.Read-onlyGet Gamma Card Analytics
Get per-card engagement for a Gamma. Returns scope, uniqueViewers, uniqueEditors, cardCount and cards with cardId, cardName, cardPosition, viewTimeSeconds and viewersPercent. Use to see which cards hold attention. Use gamma_get_analytics for the overview. Needs edit permission; data updates about hourly.
Inputs
gamma_idstringrequired- ID of the Gamma: a file ID or the doc ID from a gamma.app/docs/... URL.
gamma_get_editGet the status of an AI edit started by gamma_edit_gamma.Read-onlyGet Edit Status
Get the status of an AI edit started by gamma_edit_gamma. Returns editId, status (pending, completed or failed), gammaId, gammaUrl, pageId, result.summary and credits. Use after gamma_edit_gamma and poll until status is completed or failed.
Inputs
edit_idstringrequired- Edit ID returned by gamma_edit_gamma.
gamma_get_exportGet the status of an export started by gamma_export_gamma.Read-onlyGet Export Status
Get the status of an export started by gamma_export_gamma. Returns exportId, exportAs, status (pending, completed or failed), gammaId, exportUrl when completed, and error details when failed. Use after gamma_export_gamma and poll until status is completed or failed. The exportUrl works for anyone who has it until it expires, so treat it as a secret.
Inputs
export_idstringrequired- ID of the export job, returned by gamma_export_gamma.
gamma_get_gammaGet metadata for one Gamma by file ID or by the doc ID in a gamma.app/docs/...Read-onlyGet Gamma
Get metadata for one Gamma by file ID or by the doc ID in a gamma.app/docs/... URL. Returns id, title, type, url, thumbnailUrl, description, author, createdTime, updatedTime, themeId and archived. Use when you know the Gamma ID. Use gamma_search_gammas to find a Gamma by content.
Inputs
gamma_idstringrequired- ID of the Gamma: a file ID or the doc ID from a gamma.app/docs/... URL.
gamma_get_generationGet the status of a generation started by gamma_create_generation or gamma_create_from_template.Read-onlyGet Generation Status
Get the status of a generation started by gamma_create_generation or gamma_create_from_template. Returns generationId, status (pending, completed or failed), gammaId, gammaUrl, exportUrl, credits and error details. Use after starting a generation and poll every few seconds until status is completed or failed. Use gamma_get_agent_generation for agent generations (ids starting gen_). Requires the generationId from the create call.
Inputs
generation_idstringrequired- ID of the generation to check, returned by gamma_create_generation or gamma_create_from_template.
gamma_get_imageGet the status of an image generation started by gamma_create_image.Read-onlyGet Image Status
Get the status of an image generation started by gamma_create_image. Returns imageGenerationId, status (pending, completed or failed), image with url, width, height, format and savedMediaId, plus warnings, error and credits. Use after gamma_create_image and poll until status is completed or failed.
Inputs
image_generation_idstringrequired- Image generation ID returned by gamma_create_image.
gamma_get_viewer_analyticsGet one viewer's engagement with a Gamma.Read-onlyGet Gamma Viewer Analytics
Get one viewer's engagement with a Gamma. Returns scope, userId, displayName, email, lastOpened, cardsViewed, cardCount and perCardTimeSpent as a percentage of that viewer's total time. Use after gamma_list_viewer_analytics, passing a viewerId. Only authenticated viewers can be looked up. Needs edit permission.
Inputs
gamma_idstringrequired- ID of the Gamma: a file ID or the doc ID from a gamma.app/docs/... URL.
user_idstringrequired- Viewer user ID, the viewerId returned by gamma_list_viewer_analytics for authenticated viewers.
gamma_list_commentsList comment threads on a Gamma, cursor-paginated.Read-onlyList Gamma Comments
List comment threads on a Gamma, cursor-paginated. Returns threads with id, cardId, targetText, author, contentText, status, replies, createdTime and updatedTime, plus hasMore and nextCursor. Use updated_since to poll for new activity. Use gamma_get_gamma for the Gamma itself.
Inputs
gamma_idstringrequired- ID of the Gamma whose comments to list.
afterstring- Pagination cursor. Pass the nextCursor value from the previous response to get the next page.
include_archivedboolean- Set true to include archived (deleted) comments and replies, each flagged archived. Defaults to false.
limitinteger- Maximum number of results to return, from 1 to 50.
updated_sincestring- ISO 8601 timestamp. Only threads with activity, including new replies, after this time are returned.
gamma_list_foldersList the folders the authenticated user is a member of in the workspace.Read-onlyList Folders
List the folders the authenticated user is a member of in the workspace. Returns folder id and name, plus hasMore and nextCursor for paging. Use to find a folder_id for placing a new Gamma. Use gamma_list_themes to find a theme_id.
Inputs
afterstring- Pagination cursor. Pass the nextCursor value from the previous response to get the next page.
limitinteger- Maximum number of results to return, from 1 to 50.
querystring- Text to filter folders by name.
gamma_list_themesList the themes available in the workspace, both standard and custom.Read-onlyList Themes
List the themes available in the workspace, both standard and custom. Returns theme id, name, type, colorKeywords and toneKeywords, plus hasMore and nextCursor for paging. Use to find a theme_id for a generation. Use gamma_list_folders to find a folder_id.
Inputs
afterstring- Pagination cursor. Pass the nextCursor value from the previous response to get the next page.
limitinteger- Maximum number of results to return, from 1 to 50.
querystring- Text to filter themes by name.
typestring- Restrict to standard (built-in) or custom (workspace) themes. Keep the same value while paging.one of
customstandard
gamma_list_viewer_analyticsList per-viewer engagement for a Gamma, cursor-paginated.Read-onlyList Gamma Viewer Analytics
List per-viewer engagement for a Gamma, cursor-paginated. Returns scope, data with viewerId, displayName, email, lastOpened and cardsViewed, plus hasMore and nextCursor. Use to see who viewed a Gamma. Use gamma_get_viewer_analytics for one viewer in detail. Needs edit permission; manage permission returns all viewers.
Inputs
gamma_idstringrequired- ID of the Gamma: a file ID or the doc ID from a gamma.app/docs/... URL.
afterstring- Pagination cursor. Pass the nextCursor value from the previous response to get the next page.
limitinteger- Maximum number of results to return, from 1 to 50.
sort_directionstring- Sort order applied to each viewer's most recent open time: asc or desc.one of
ascdesc
gamma_search_gammasSearch the Gammas the caller can access by title and body text, optionally filtered by creator or update time.Read-onlySearch Gammas
Search the Gammas the caller can access by title and body text, optionally filtered by creator or update time. Returns hits with id, title, url, highlight, createdBy, updatedTime and archived. Results are relevance-ranked, or newest-updated first when q is empty and a filter is set. Use to find a Gamma by content. Use gamma_get_gamma for one known Gamma. Use gamma_search_templates to find templates.
Inputs
created_bystring- Only return Gammas created by this user: me, an email address or a user ID.
include_archivedboolean- Set true to include archived Gammas. Defaults to false.
limitinteger- Maximum number of results to return, from 1 to 25.
qstring- Full-text search query matched against Gamma titles and body text. Optional when at least one of created_by, updated_after or updated_before is set.
updated_afterstring- Only return Gammas last updated at or after this ISO 8601 timestamp.
updated_beforestring- Only return Gammas last updated at or before this ISO 8601 timestamp.
gamma_search_templatesSearch workspace templates and official Gamma explore templates.Read-onlySearch Templates
Search workspace templates and official Gamma explore templates. Returns workspaceTemplates and exploreTemplates, each with id, title, url and previewUrl, plus workspaceDegraded. Use to find a template ID for gamma_create_from_template or gamma_create_agent_generation. Use gamma_search_gammas to search regular Gammas.
Inputs
limitinteger- Maximum number of results to return, from 1 to 25.
qstring- Search query, up to 2000 characters. An empty query returns both lists in browse order.
gamma_archive_gammaArchive a Gamma document.WriteArchive Gamma
Archive a Gamma document. Archiving an already archived Gamma succeeds. Returns gammaId and archived. Use to retire a Gamma without deleting it. Find IDs with gamma_search_gammas.
Inputs
gamma_idstringrequired- ID of the Gamma to archive.
gamma_archive_imageRemove an item you created, such as a generated image, from the workspace media library.WriteArchive Image
Remove an item you created, such as a generated image, from the workspace media library. Archiving an already archived item succeeds, and existing image URLs keep working. Returns savedMediaId and archived. Use with the savedMediaId from gamma_get_image.
Inputs
saved_media_idstringrequired- Media library ID of the item to archive, returned as image.savedMediaId by gamma_get_image.
gamma_create_agent_generationStart an asynchronous Gamma agent generation from a natural-language prompt, with optional source URLs and a template.WriteCreate Agent Generation
Start an asynchronous Gamma agent generation from a natural-language prompt, with optional source URLs and a template. Returns generationId (prefixed gen_), status and warnings; the Gamma is not ready yet. Use when you want the Gamma agent to research and build from a brief. Use gamma_create_generation to shape the output from your own text. Poll gamma_get_agent_generation with the generationId. Spends credits and requires a paid Gamma plan with API access.
Inputs
promptstringrequired- The brief describing what to generate, up to 400000 characters. Example: "A 10-slide investor update on our Q3 growth".
additional_instructionsstring- Extra guidance such as tone, audience, language or style, up to 5000 characters.
disable_connectorsboolean- Set true to stop this run from using workspace connectors such as Notion or Slack.
export_asstring- Export the finished Gamma automatically after generation. The download link appears as exportUrl when the generation status is completed.one of
pdfpngpptx external_accessstring- Access level for anyone outside the workspace who opens the shared link.one of
commenteditnoAccessview folder_idstring- ID of the folder to place the new Gamma in. Get IDs from gamma_list_folders.
formatstring- Output format: presentation (default), document or social. webpage is not supported by the agent.one of
documentpresentationsocial num_cardsinteger- Soft target for the number of cards, from 1 to 100. A value above the plan limit is rejected.
qualitystring- Quality preset: lite, standard or max. The max preset needs a plan that includes it and can use more credits.one of
litemaxstandard share_email_accessstring- Permission level for the addresses in share_with_emails. Only used when share_with_emails is also provided.one of
commenteditfullAccessview share_with_emailsarray- Email addresses to share the new Gamma with. Pair with share_email_access to choose their permission level.
source_urlsarray- Up to 10 http or https URLs the agent should read as source material. This is guidance; unreadable URLs are skipped.
template_idstring- Optional starting point: the ID of a workspace template, a Gamma in the workspace or an official Gamma template. Find IDs with gamma_search_templates.
theme_idstring- ID of the theme to apply. Get IDs from gamma_list_themes.
workspace_accessstring- Default access level for members of the workspace on the new Gamma.one of
commenteditfullAccessnoAccessview
gamma_create_from_templateStart an asynchronous generation that adapts an existing single-page Gamma used as a template.WriteCreate Generation From Template
Start an asynchronous generation that adapts an existing single-page Gamma used as a template. Returns generationId immediately; the new Gamma is not ready yet. Use gamma_create_from_template to remix a template Gamma, found with gamma_search_templates or gamma_search_gammas. Use gamma_create_generation to build from text without a template. Poll gamma_get_generation with the returned generationId. Spends credits and requires a paid Gamma plan with API access.
Inputs
gamma_idstringrequired- File ID of the Gamma to use as the template. The Gamma must contain exactly one page.
promptstringrequired- Instructions describing what to generate from the template (1 to 400000 characters). Example: "Adapt this pitch for a healthcare audience".
export_asstring- Export the finished Gamma automatically after generation. The download link appears as exportUrl when the generation status is completed.one of
pdfpngpptx external_accessstring- Access level for anyone outside the workspace who opens the shared link.one of
commenteditnoAccessview folder_idstring- ID of the folder to place the new Gamma in. Get IDs from gamma_list_folders.
image_modelstring- Image model to use for AI generated images. See the Gamma image models reference for accepted values.
image_stylestring- Style description for generated images, up to 5000 characters. Example: "clean photography".
share_email_accessstring- Permission level for the addresses in share_with_emails. Only used when share_with_emails is also provided.one of
commenteditfullAccessview share_with_emailsarray- Email addresses to share the new Gamma with. Pair with share_email_access to choose their permission level.
theme_idstring- ID of the theme to apply. Get IDs from gamma_list_themes.
titlestring- Custom title for the new Gamma (1 to 500 characters). When empty, Gamma generates a title.
workspace_accessstring- Default access level for members of the workspace on the new Gamma.one of
commenteditfullAccessnoAccessview
gamma_create_generationStart an asynchronous Gamma generation from text, producing a presentation, document, webpage or social post.WriteCreate Generation
Start an asynchronous Gamma generation from text, producing a presentation, document, webpage or social post. Returns generationId immediately; the Gamma is not ready yet. Use gamma_create_generation when you have text or a topic. Use gamma_create_from_template to adapt an existing Gamma. Use gamma_create_agent_generation for an agent-driven build from a prompt. Poll gamma_get_generation with the returned generationId. Spends credits and requires a paid Gamma plan with API access.
Inputs
input_textstringrequired- Text to generate from: a topic, an outline or full content (1 to 400000 characters). Example: "Quarterly sales review for Q3 2026 with revenue, wins and risks".
additional_instructionsstring- Extra guidance for the AI such as structure or emphasis, up to 5000 characters. Example: "Keep each slide to three bullet points".
audiencestring- Target audience of the content, up to 500 characters. Example: "enterprise buyers".
card_dimensionsstring- Aspect ratio or page size of each card: 16x9, 4x3, 1x1, 4x5, 9x16, a4, letter, fluid or pageless. Valid values depend on the format.one of
16x91x14x34x59x16a4fluidletterpageless card_splitstring- How Gamma splits the content into cards: auto lets Gamma decide, inputTextBreaks splits at the horizontal rules (---) you put in input_text.one of
autoinputTextBreaks export_asstring- Export the finished Gamma automatically after generation. The download link appears as exportUrl when the generation status is completed.one of
pdfpngpptx external_accessstring- Access level for anyone outside the workspace who opens the shared link.one of
commenteditnoAccessview folder_idstring- ID of the folder to place the new Gamma in. Get IDs from gamma_list_folders.
formatstring- Output format of the Gamma: presentation, document, webpage or social.one of
documentpresentationsocialwebpage image_modelstring- Image model to use when image_source is aiGenerated, for example flux-2-pro, gemini-3-pro-image or recraft-v4. See the Gamma image models reference for accepted values.
image_sourcestring- Where images come from: aiGenerated, webAllImages, webFreeToUse, webFreeToUseCommercially, pexels, giphy, pictographic, themeAccent, placeholder or noImages.one of
aiGeneratedgiphynoImagespexelspictographicplaceholderthemeAccentwebAllImageswebFreeToUsewebFreeToUseCommercially image_stylestring- Style description for AI generated images, up to 5000 characters. Example: "minimal flat illustration in blue tones".
languagestring- Language code of the generated content, for example en, es, fr, de, ja, pt-br or zh-cn. See the Gamma output languages reference for the full list.
num_cardsinteger- Target number of cards (slides or sections) to generate, at least 1. Limits depend on the workspace plan.
share_email_accessstring- Permission level for the addresses in share_with_emails. Only used when share_with_emails is also provided.one of
commenteditfullAccessview share_with_emailsarray- Email addresses to share the new Gamma with. Pair with share_email_access to choose their permission level.
text_amountstring- How much text to put on each card: brief, medium, detailed or extensive.one of
briefdetailedextensivemedium text_modestring- How Gamma treats input_text: generate expands a short topic, condense shortens long text, preserve keeps your wording. Use generate for a short topic and preserve for finished copy.one of
condensegeneratepreserve theme_idstring- ID of the theme to apply. Get IDs from gamma_list_themes.
titlestring- Custom title for the Gamma (1 to 500 characters). When empty, Gamma generates a title from the content.
tonestring- Tone or writing style of the generated text, up to 500 characters. Example: "professional and upbeat".
workspace_accessstring- Default access level for members of the workspace on the new Gamma.one of
commenteditfullAccessnoAccessview
gamma_create_imageStart an asynchronous generation of one standalone on-brand image from a text prompt.WriteCreate Image
Start an asynchronous generation of one standalone on-brand image from a text prompt. Returns imageGenerationId and any warnings; the image is not ready yet. Use for a single image outside of a Gamma. Poll gamma_get_image with the imageGenerationId. Spends credits.
Inputs
promptstringrequired- Description of the image to generate, up to 5000 characters. Put background treatments here, such as "on white". Example: "A paper airplane flying over a city skyline".
image_typestring- Visual style: abstract, illustration (default), photo or scene. Ignored when reference_image_urls are given.one of
abstractillustrationphotoscene reference_image_urlsarray- Up to 4 HTTPS image URLs that supply a character or product to place in the scene. They take precedence over image_type and theme_id.
size_presetstring- Output size preset: banner, slide, social-portrait, social-square (default) or story.one of
bannerslidesocial-portraitsocial-squarestory theme_idstring- Theme to brand the image with. Defaults to the workspace default theme. Find IDs with gamma_list_themes.
gamma_edit_gammaStart an asynchronous AI edit of one page of an existing Gamma from a natural-language instruction.WriteEdit Gamma With AI
Start an asynchronous AI edit of one page of an existing Gamma from a natural-language instruction. Returns editId and gammaUrl; the edit is not finished yet. Use to change an existing Gamma in place. Needs edit permission, runs one edit per page at a time and cannot add pages. Poll gamma_get_edit with the editId. Spends credits.
Inputs
gamma_idstringrequired- ID of the Gamma to edit. A file ID edits the main page; a page ID (the ID in a gamma.app/docs/<id> URL) edits that page.
promptstringrequired- Instruction describing the edit, up to 10000 characters. Example: "Make the title on this page shorter and add a summary bullet".
disable_connectorsboolean- Set true to stop this edit from using workspace connectors such as Notion or Slack.
qualitystring- Model effort for the edit: lite, standard or max. The max preset needs a plan that includes it and can use more credits.one of
litemaxstandard
gamma_export_gammaStart an asynchronous export of an existing Gamma to PDF, PPTX or PNG.WriteExport Gamma
Start an asynchronous export of an existing Gamma to PDF, PPTX or PNG. Returns exportId; the file is not ready yet. Use to export a Gamma that already exists. Poll gamma_get_export with the exportId for the download link. Exports may spend credits.
Inputs
export_asstringrequired- File format to export to: pdf, pptx, or png (a zip with one PNG per card).one of
pdfpngpptx gamma_idstringrequired- ID of the Gamma to export: a file ID or the doc ID from a gamma.app/docs/... URL.
No tools match.