### OpenAPI Definition for Listing Themes Source: https://developers.gamma.app/reference/list-themes This OpenAPI 3.0.0 definition describes the '/v1.0/themes' GET endpoint. It specifies the request parameters such as 'query', 'limit', 'after', and the 'X-API-KEY' header. It also includes example responses for a single theme and paginated themes. ```json { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "Generate" }, "servers": [ { "url": "https://public-api.gamma.app" } ], "paths": { "/v1.0/themes": { "get": { "description": "", "operationId": "get_v1.0themes", "responses": { "200": { "description": "", "content": { "application/json": { "examples": { "Theme queried by name": { "summary": "Theme queried by name", "value": { "id": "abcdefghi", "name": "Prism", "type": "custom", "colorKeywords": [ "light", "blue", "pink", "purple", "pastel", "gradient", "vibrant" ], "toneKeywords": [ "playful", "friendly", "creative", "inspirational", "fun" ] } }, "Themes paginated": { "summary": "Themes paginated", "value": { "data": [ { "id": "abc123def456", "name": "Standard Dark", "type": "standard", "colorKeywords": [ "black", "gray", "accent" ], "toneKeywords": [ "sophisticated", "modern" ] }, { "id": "123abc456def", "name": "Dark Gradient", "type": "custom", "colorKeywords": [ "purple", "black", "navy" ], "toneKeywords": [ "dramatic", "elegant" ] } ], "hasMore": true, "nextCursor": "arfbiueqr3iuhfqef" } } } } } } }, "parameters": [ { "in": "query", "name": "query", "schema": { "type": "string" }, "description": "Search by theme name (case-insensitive). Filters results to themes matching the search term." }, { "in": "query", "name": "limit", "schema": { "type": "integer", "default": "" }, "description": "Number of themes to return per page. Maximum: 50." }, { "in": "query", "name": "after", "schema": { "type": "string" }, "description": "Cursor token for fetching the next page. Use the nextCursor value from the previous response to retrieve the next page of results." }, { "in": "header", "name": "X-API-KEY", "schema": { "type": "string" }, "description": "Your API key: sk-gamma-xxxxxxxx", "required": true } ] } } } } ``` -------------------------------- ### Example Error Response (JSON) Source: https://developers.gamma.app/reference/error-codes This snippet shows an example of a typical error response format from the Gamma App API. It includes a human-readable message and an HTTP status code, which can be used for debugging and error handling. ```json {"message":"Invalid API key.", "statusCode":401} ``` -------------------------------- ### GET /v1.0/themes Source: https://developers.gamma.app/reference/list-themes Fetches a list of themes from the workspace. Supports filtering by name, pagination, and custom limits. ```APIDOC ## GET /v1.0/themes ### Description Fetches a list of themes available in your workspace. This endpoint supports searching by theme name (case-insensitive), specifying the number of results per page, and paginating through results using a cursor. ### Method GET ### Endpoint https://public-api.gamma.app/v1.0/themes ### Parameters #### Query Parameters - **query** (string) - Optional - Search by theme name (case-insensitive). Filters results to themes matching the search term. - **limit** (integer) - Optional - Number of themes to return per page. Maximum: 50. - **after** (string) - Optional - Cursor token for fetching the next page. Use the nextCursor value from the previous response to retrieve the next page of results. #### Header Parameters - **X-API-KEY** (string) - Required - Your API key: sk-gamma-xxxxxxxx ### Request Example ```json { "query": "Dark", "limit": 10, "after": "arfbiueqr3iuhfqef" } ``` ### Response #### Success Response (200) - **data** (array) - A list of theme objects. - **id** (string) - The unique identifier for the theme. - **name** (string) - The name of the theme. - **type** (string) - The type of the theme (e.g., 'custom', 'standard'). - **colorKeywords** (array) - A list of color-related keywords associated with the theme. - **toneKeywords** (array) - A list of tone-related keywords associated with the theme. - **hasMore** (boolean) - Indicates if there are more results available. - **nextCursor** (string) - A cursor token for fetching the next page of results. #### Response Example ```json { "data": [ { "id": "abc123def456", "name": "Standard Dark", "type": "standard", "colorKeywords": [ "black", "gray", "accent" ], "toneKeywords": [ "sophisticated", "modern" ] }, { "id": "123abc456def", "name": "Dark Gradient", "type": "custom", "colorKeywords": [ "purple", "black", "navy" ], "toneKeywords": [ "dramatic", "elegant" ] } ], "hasMore": true, "nextCursor": "arfbiueqr3iuhfqef" } ``` ``` -------------------------------- ### Generate Gamma API Request (Python) Source: https://developers.gamma.app/reference/index Example of how to make a POST request to the Gamma API to generate a gamma using Python. This uses the 'requests' library to send the HTTP request with appropriate headers and JSON data. ```python import requests url = "https://public-api.gamma.app/v1.0/generations" headers = { "Content-Type": "application/json", "X-API-KEY": "YOUR_API_KEY" } data = { "textMode": "generate" } response = requests.post(url, headers=headers, json=data) print(response.json()) ``` -------------------------------- ### Generate Gamma API Request (cURL) Source: https://developers.gamma.app/reference/index Example of how to make a POST request to the Gamma API to generate a gamma. This includes the endpoint URL, required headers (Content-Type, X-API-KEY), and a sample JSON body. ```shell curl --request POST \ --url https://public-api.gamma.app/v1.0/generations \ --header 'Content-Type: application/json' \ --header 'accept: application/json' \ --data '{ "textMode": "generate" }' ``` -------------------------------- ### OpenAPI Definition for GET Generation Endpoint Source: https://developers.gamma.app/reference/get-gamma-file-urls This OpenAPI 3.0.0 definition outlines the structure and parameters for the GET /v1.0/generations/{generationId} endpoint. It specifies request parameters like generationId and X-API-KEY, and details possible responses including successful completion, pending status, failure, and not found errors. ```json { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "Generate" }, "servers": [ { "url": "https://public-api.gamma.app" } ], "paths": { "/v1.0/generations/{generationId}": { "get": { "description": "", "operationId": "get_v0.2generations{generationId}", "responses": { "200": { "description": "", "content": { "application/json": { "examples": { "Status: Complete": { "summary": "Status: Complete", "value": { "generationId": "XXXXXXXXXXX", "status": "completed", "gammaUrl": "https://gamma.app/docs/yyyyyyyyyy", "credits": { "deducted": 150, "remaining": 3000 } } }, "Status: Pending": { "summary": "Status: Pending", "value": { "status": "pending", "generationId": "XXXXXXXXXXX" } }, "Status: Failed": { "summary": "Status: Failed", "value": { "generationId": "XXXXXXXXXXX", "status": "failed", "error": { "message": "Failed to generate text. Check your inputs and try again.", "statusCode": 422 } } } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "examples": { "Generation not found": { "value": { "message": "Generation ID not found. generationId: xxxxxx", "statusCode": 404, "credits": { "deducted": 0, "remaining": 3000 } }, "summary": "Generation not found" } } } } } }, "parameters": [ { "name": "generationId", "in": "path", "required": true, "description": "Successful requests to the POST endpoint will return a generationId, which needs to be specified in the GET request. ", "schema": { "type": "string", "default": "" } }, { "name": "X-API-KEY", "in": "header", "required": true, "description": "Your API key sk-gamma-xxxxxxxxxx", "schema": { "type": "string", "default": "" } } ] } } } } ``` -------------------------------- ### GET /v1.0/generations/{generationId} Source: https://developers.gamma.app/reference/get-gamma-file-urls Poll for the status of a generation request, retrieve the URL to the generated Gamma, or get URLs for PDF/PPTX files if requested. ```APIDOC ## GET /v1.0/generations/{generationId} ### Description Poll for the status of your request. Polling at ~5 second intervals is recommended. Receive the URL to your generated gamma, which is further editable in Gamma. Receive a URL to a PDF or PPTX file, if you requested this file format via the API. Generated gammas appear in a separate tab in your dashboard. This tab appears only after you have successfully created at least one gamma using the API. ### Method GET ### Endpoint https://public-api.gamma.app/v1.0/generations/{generationId} ### Parameters #### Path Parameters - **generationId** (string) - Required - The ID of the generation request to retrieve status for. #### Header Parameters - **X-API-KEY** (string) - Required - Your Gamma API key (e.g., sk-gamma-xxxxxxxxxx). ### Request Example ```json { "generationId": "XXXXXXXXXXX" } ``` ### Response #### Success Response (200) - **generationId** (string) - The ID of the generation. - **status** (string) - The current status of the generation (e.g., 'completed', 'pending', 'failed'). - **gammaUrl** (string, optional) - The URL to the generated Gamma document if the status is 'completed'. - **credits** (object, optional) - Information about credit usage. - **deducted** (integer) - The number of credits deducted for this generation. - **remaining** (integer) - The number of credits remaining. - **error** (object, optional) - Error details if the status is 'failed'. - **message** (string) - A message describing the error. - **statusCode** (integer) - The HTTP status code associated with the error. #### Response Example (Status: Complete) ```json { "generationId": "XXXXXXXXXXX", "status": "completed", "gammaUrl": "https://gamma.app/docs/yyyyyyyyyy", "credits": { "deducted": 150, "remaining": 3000 } } ``` #### Response Example (Status: Pending) ```json { "status": "pending", "generationId": "XXXXXXXXXXX" } ``` #### Response Example (Status: Failed) ```json { "generationId": "XXXXXXXXXXX", "status": "failed", "error": { "message": "Failed to generate text. Check your inputs and try again.", "statusCode": 422 } } ``` #### Error Response (404) - **message** (string) - A message indicating the generation ID was not found. - **statusCode** (integer) - The HTTP status code (404). - **credits** (object) - Information about credit usage. - **deducted** (integer) - The number of credits deducted. - **remaining** (integer) - The number of credits remaining. #### Response Example (Generation not found) ```json { "message": "Generation ID not found. generationId: xxxxxx", "statusCode": 404, "credits": { "deducted": 0, "remaining": 3000 } } ``` ``` -------------------------------- ### Generate Gamma API Request (Ruby) Source: https://developers.gamma.app/reference/index Example of how to make a POST request to the Gamma API to generate a gamma using Ruby. This demonstrates using the 'httparty' gem for HTTP requests, including the endpoint, headers, and JSON payload. ```ruby require 'httparty' url = 'https://public-api.gamma.app/v1.0/generations' headers = { 'Content-Type' => 'application/json', 'X-API-KEY' => 'YOUR_API_KEY' } data = { 'textMode' => 'generate' } response = HTTParty.post(url, headers: headers, body: data.to_json) puts response.parsed_response ``` -------------------------------- ### Generate Gamma API Request (Node.js) Source: https://developers.gamma.app/reference/index Example of how to make a POST request to the Gamma API to generate a gamma using Node.js. This demonstrates using the 'axios' library for HTTP requests, including the endpoint, headers, and JSON payload. ```javascript const axios = require('axios'); const options = { method: 'POST', url: 'https://public-api.gamma.app/v1.0/generations', headers: { 'Content-Type': 'application/json', 'X-API-KEY': 'YOUR_API_KEY' }, data: { textMode: 'generate' } }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); }); ``` -------------------------------- ### Generation Request with Warnings Source: https://developers.gamma.app/reference/warnings This section details how warnings are returned by the Gamma API when there are conflicting or ignored parameters in a generation request. It provides examples of common scenarios. ```APIDOC ## POST /generate ### Description This endpoint generates content based on the provided input and options. Warnings are returned if parameters conflict or are ignored. ### Method POST ### Endpoint /generate ### Parameters #### Request Body - **format** (string) - Required - The desired format for the generated content (e.g., "presentation", "document"). - **inputText** (string) - Required - The text input to guide the generation. - **pageOptions.dimensions** (string) - Optional - Specifies the dimensions for the page. Conflicts may arise with certain formats. - **imageOptions.source** (string) - Optional - The source for images (e.g., "pictographic", "aiGenerated"). - **imageOptions.model** (string) - Optional - The AI model to use for image generation. ### Request Example ```json { "format": "presentation", "inputText": "Best hikes in the United States", "pageOptions": { "dimensions": "1x1" } } ``` ### Response #### Success Response (200) - **generationId** (string) - A unique identifier for the generation request. - **warnings** (string) - A message detailing any ignored or conflicting parameters. #### Response Example ```json { "generationId": "xxxxxxxxxx", "warnings": "cardOptions.dimensions 1x1 is not valid for format presentation. Valid dimensions are: [ 16x9, 4x3, fluid ]. Using default: fluid." } ``` ### Error Handling Scenarios - **Conflicting format and dimensions**: If `pageOptions.dimensions` is incompatible with the specified `format` (e.g., "1x1" for "presentation"), a warning will be issued, and a default dimension will be used. - **Conflicting image source and model**: If `imageOptions.source` is not "aiGenerated", then `imageOptions.model` and `imageOptions.style` parameters are ignored, and a warning will be returned. ``` -------------------------------- ### Generate Gamma API Request (PHP) Source: https://developers.gamma.app/reference/index Example of how to make a POST request to the Gamma API to generate a gamma using PHP. This uses cURL to send the HTTP request with the necessary headers and JSON data. ```php 'generate' ]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } cost_setopt($ch, CURLOPT_CLOSE, true); echo $response; ?> ``` -------------------------------- ### Successful Gamma Generation Response Source: https://developers.gamma.app/reference/index Example of a successful response from the Gamma API after generating a gamma. It includes a 'generationId' which can be used to track the status or retrieve the generated content. ```json { "generationId": "xxxxxxxxxxx" } ``` -------------------------------- ### POST /websites/developers_gamma_app_reference Source: https://developers.gamma.app/reference/create-from-template Create new content based on an existing gamma template using this endpoint. It's recommended to consult the 'Create from template API parameters explained' documentation before use. ```APIDOC ## POST /websites/developers_gamma_app_reference ### Description Create new content based on an existing gamma template using this endpoint. We highly recommend you read 'Create from template API parameters explained' before delving into this page. ### Method POST ### Endpoint /websites/developers_gamma_app_reference ### Parameters #### Query Parameters - **name** (string) - Required - The name of the gamma to be created. - **templateId** (string) - Required - The ID of the gamma template to use. - **folderId** (string) - Optional - The ID of the folder where the gamma should be created. - **themeId** (string) - Optional - The ID of the theme to apply to the gamma. Refer to 'List Themes and List Folders' endpoints for accepted values. - **imageOptions.model** (string) - Optional - The image model to use. Refer to 'Image model accepted values' for accepted values. ### Request Example ```json { "name": "My New Gamma", "templateId": "tpl_abc123", "folderId": "fld_xyz789", "themeId": "theme_456", "imageOptions": { "model": "realistic" } } ``` ### Response #### Success Response (200) - **id** (string) - The ID of the newly created gamma. - **name** (string) - The name of the newly created gamma. - **status** (string) - The status of the gamma creation process. #### Response Example ```json { "id": "gamma_def456", "name": "My New Gamma", "status": "processing" } ``` ``` -------------------------------- ### POST /generate Source: https://developers.gamma.app/reference/generate-a-gamma Creates a new gamma based on the provided generation parameters. It's recommended to consult the 'Generate API parameters explained' documentation for a comprehensive understanding of all available options. ```APIDOC ## POST /generate ### Description Creates a new gamma using the provided generation parameters. Refer to external documentation for detailed explanations of parameter values. ### Method POST ### Endpoint /generate ### Parameters #### Query Parameters - **prompt** (string) - Required - The main text prompt to generate the gamma from. - **themeId** (string) - Optional - The ID of the theme to use for the gamma. See the List Themes API for available IDs. - **folderIds** (array of strings) - Optional - An array of folder IDs to associate the gamma with. See the List Folders API for available IDs. - **imageOptions.model** (string) - Optional - The image generation model to use. Accepted values are listed in the 'Image model accepted values' documentation. - **textOptions.language** (string) - Optional - The language for the generated text content. Accepted values are listed in the 'Output language accepted values' documentation. ### Request Body This endpoint does not require a request body. All parameters are passed as query parameters. ### Response #### Success Response (200) - **gammaId** (string) - The unique identifier for the generated gamma. - **status** (string) - The current status of the gamma generation process (e.g., 'processing', 'completed'). #### Response Example ```json { "gammaId": "gamma_abc123", "status": "processing" } ``` ``` -------------------------------- ### Image Generation Model Configuration Source: https://developers.gamma.app/reference/image-model-accepted-values This section outlines how to specify an AI image generation model using the `imageOptions.source` and `imageOptions.model` parameters. It also lists all accepted string values for the `imageOptions.model` parameter. ```APIDOC ## Image Generation Model Configuration ### Description Configure AI image generation models by setting `imageOptions.source` to `aiGenerated` and specifying a model string in `imageOptions.model`. If `imageOptions.model` is left blank, Gamma will automatically select a model. ### Method Not Applicable (Configuration within a larger request) ### Endpoint Not Applicable (Configuration within a larger request) ### Parameters #### Query Parameters - **imageOptions.source** (string) - Required - Must be set to `aiGenerated` to use AI models. - **imageOptions.model** (string) - Optional - The identifier for the desired image generation model. If omitted, a model will be auto-selected. #### Request Body (This documentation pertains to parameters within a larger request body, not a standalone request body for this specific configuration.) ### Request Example ```json { "prompt": "A futuristic cityscape", "imageOptions": { "source": "aiGenerated", "model": "flux-1-pro" } } ``` ### Response #### Success Response (200) (Response structure depends on the overall API call, this section describes the effect of the image model selection.) - **Generated Image** (image) - The AI-generated image based on the prompt and selected model. #### Response Example (Example response would be the image data or a URL to the generated image.) ### Accepted Image Models | Model Name | String | Credits/Image | | :------------------------------------- | :----------------------- | :------------ | | Flux Fast 1.1 | `flux-1-quick` | 2 | | Flux Kontext Fast | `flux-kontext-fast` | 2 | | Imagen 3 Fast | `imagen-3-flash` | 2 | | Luma Photon Flash | `luma-photon-flash-1` | 2 | | Flux Pro | `flux-1-pro` | 8 | | Imagen 3 | `imagen-3-pro` | 8 | | Ideogram 3 Turbo | `ideogram-v3-turbo` | 10 | | Luma Photon | `luma-photon-1` | 10 | | Leonardo Phoenix | `leonardo-phoenix` | 15 | | Flux Kontext Pro | `flux-kontext-pro` | 20 | | Gemini 2.5 Flash | `gemini-2.5-flash-image` | 20 | | Ideogram 3 | `ideogram-v3` | 20 | | Imagen 4 | `imagen-4-pro` | 20 | | Recraft | `recraft-v3` | 20 | | GPT Image | `gpt-image-1-medium` | 30 | | Flux Ultra (Ultra plan only) | `flux-1-ultra` | 30 | | Imagen 4 Ultra (Ultra plan only) | `imagen-4-ultra` | 30 | | Dall E 3 | `dall-e-3` | 33 | | Flux Kontext Max (Ultra plan only) | `flux-kontext-max` | 40 | | Recraft Vector Illustration | `recraft-v3-svg` | 40 | | Ideogram 3.0 Quality (Ultra plan only) | `ideogram-v3-quality` | 45 | | GPT Image Detailed (Ultra plan only) | `gpt-image-1-high` | 120 | ``` -------------------------------- ### POST /v1.0/generations/from-template Source: https://developers.gamma.app/reference/create-from-template This endpoint allows you to generate content from a template. You can specify a prompt, theme, folder, export options, and image generation attributes. ```APIDOC ## POST /v1.0/generations/from-template ### Description This endpoint allows you to generate content from a template. You can specify a prompt, theme, folder, export options, and image generation attributes. ### Method POST ### Endpoint https://public-api.gamma.app/v1.0/generations/from-template ### Parameters #### Header Parameters - **Content-Type** (string) - Required - Defaults to application/json - **X-API-KEY** (string) - Required - Enter your API key here. #### Request Body - **gammaId** (string) - Required - Specifies which gamma template you want to use. - **prompt** (string) - Required - Text, image URLs, and instructions used to adapt your template to your desired output. Can be as little as a few words or pages of text. Token limits: 1-100,000. Example: Change this pitch deck on deep sea exploration to be about space exploration. - **themeId** (string) - Optional - The theme from Gamma that will be used for your creation. You can create custom themes in Gamma. If nothing is specified, the template's theme will be used. - **folderIds** (array of strings) - Optional - The folder(s) where you want to store your gamma. - **exportAs** (string) - Optional - Additional file types for saving your gamma. Options: pdf, pptx. - **imageOptions** (object) - Optional - Attributes of the images you want to generate, if any. - **model** (string) - Optional - If you want AI generated images, this specifies which model to use. Options are listed in the Image Model Accepted Values page. If no value specified, Gamma automatically chooses a model for you. - **style** (string) - Optional - Influences the artistic style of the AI generated images. Character limits: 1-500. Example: minimal lineart style illustrations with lots of white space. - **sharingOptions** (object) - Optional - Determines how your gamma is shared with others. - **workspaceAccess** (string) - Optional - Level of access to your gamma for members in your workspace. If nothing specified, defaults to workspace share setting. ### Request Example ```json { "gammaId": "your_gamma_id", "prompt": "Create a presentation about the future of renewable energy.", "themeId": "your_theme_id", "folderIds": ["folder_1", "folder_2"], "exportAs": "pdf", "imageOptions": { "model": "dall-e-2", "style": "photorealistic" }, "sharingOptions": { "workspaceAccess": "editable" } } ``` ### Response #### Success Response (200) - **generationId** (string) - The ID of the generated content. #### Response Example ```json { "generationId": "xxxxxxxxxxx" } ``` #### Error Responses - **400 Bad Request**: Input validation errors. Example: ```json { "message": "Input validation errors: 1. ...", "statusCode": 400 } ``` - **401 Unauthorized**: Authentication failed. ``` -------------------------------- ### Output Language Configuration Source: https://developers.gamma.app/reference/output-language-accepted-values To set the output language for your Gamma, use the `textOptions.language` parameter. If this parameter is not specified, the default language will be English (US). ```APIDOC ## POST /gammas ### Description Creates a new Gamma with specified text options, including output language. ### Method POST ### Endpoint /gammas ### Parameters #### Request Body - **textOptions** (object) - Required - Options for text generation. - **language** (string) - Optional - The key representing the desired output language. Defaults to `en` (English US) if not provided. ### Request Example ```json { "prompt": "Create a presentation about renewable energy.", "textOptions": { "language": "fr" } } ``` ### Response #### Success Response (200) - **gammaId** (string) - The unique identifier for the created Gamma. - **status** (string) - The current status of the Gamma creation process. #### Response Example ```json { "gammaId": "gamma_abc123", "status": "processing" } ``` ## Supported Output Languages ### Description This table lists all supported languages and their corresponding keys that can be used with the `textOptions.language` parameter. ### Method GET ### Endpoint /languages/output ### Parameters None ### Response #### Success Response (200) - **languages** (array) - A list of supported languages. - **name** (string) - The full name of the language. - **key** (string) - The key to be used in `textOptions.language`. #### Response Example ```json { "languages": [ { "name": "Afrikaans", "key": "af" }, { "name": "Albanian", "key": "sq" }, { "name": "Arabic", "key": "ar" }, { "name": "Arabic (Saudi Arabia)", "key": "ar-sa" }, { "name": "Bengali", "key": "bn" }, { "name": "Bosnian", "key": "bs" }, { "name": "Bulgarian", "key": "bg" }, { "name": "Catalan", "key": "ca" }, { "name": "Croatian", "key": "hr" }, { "name": "Czech", "key": "cs" }, { "name": "Danish", "key": "da" }, { "name": "Dutch", "key": "nl" }, { "name": "English (India)", "key": "en-in" }, { "name": "English (UK)", "key": "en-gb" }, { "name": "English (US)", "key": "en" }, { "name": "Estonian", "key": "et" }, { "name": "Finnish", "key": "fi" }, { "name": "French", "key": "fr" }, { "name": "German", "key": "de" }, { "name": "Greek", "key": "el" }, { "name": "Gujarati", "key": "gu" }, { "name": "Hausa", "key": "ha" }, { "name": "Hebrew", "key": "he" }, { "name": "Hindi", "key": "hi" }, { "name": "Hungarian", "key": "hu" }, { "name": "Icelandic", "key": "is" }, { "name": "Indonesian", "key": "id" }, { "name": "Italian", "key": "it" }, { "name": "Japanese (です/ます style)", "key": "ja" }, { "name": "Japanese (だ/である style)", "key": "ja-da" }, { "name": "Kannada", "key": "kn" }, { "name": "Kazakh", "key": "kk" }, { "name": "Korean", "key": "ko" }, { "name": "Latvian", "key": "lv" }, { "name": "Lithuanian", "key": "lt" }, { "name": "Macedonian", "key": "mk" }, { "name": "Malay", "key": "ms" }, { "name": "Malayalam", "key": "ml" }, { "name": "Marathi", "key": "mr" }, { "name": "Norwegian", "key": "nb" }, { "name": "Persian", "key": "fa" }, { "name": "Polish", "key": "pl" }, { "name": "Portuguese (Brazil)", "key": "pt-br" }, { "name": "Portuguese (Portugal)", "key": "pt-pt" }, { "name": "Romanian", "key": "ro" }, { "name": "Russian", "key": "ru" }, { "name": "Serbian", "key": "sr" }, { "name": "Simplified Chinese", "key": "zh-cn" }, { "name": "Slovenian", "key": "sl" }, { "name": "Spanish", "key": "es" }, { "name": "Spanish (Latin America)", "key": "es-419" }, { "name": "Spanish (Mexico)", "key": "es-mx" }, { "name": "Spanish (Spain)", "key": "es-es" }, { "name": "Swahili", "key": "sw" }, { "name": "Swedish", "key": "sv" }, { "name": "Tagalog", "key": "tl" }, { "name": "Tamil", "key": "ta" }, { "name": "Telugu", "key": "te" }, { "name": "Thai", "key": "th" }, { "name": "Traditional Chinese", "key": "zh-tw" }, { "name": "Turkish", "key": "tr" }, { "name": "Ukrainian", "key": "uk" }, { "name": "Urdu", "key": "ur" }, { "name": "Uzbek", "key": "uz" }, { "name": "Vietnamese", "key": "vi" }, { "name": "Welsh", "key": "cy" }, { "name": "Yoruba", "key": "yo" } ] } ``` ``` -------------------------------- ### Gamma Generation Options Source: https://developers.gamma.app/reference/generate-a-gamma This section details the various options available for customizing Gamma generation, including text attributes, image settings, and card formatting. ```APIDOC ## POST /websites/developers_gamma_app_reference ### Description This endpoint allows for the generation of Gamma content with customizable text, image, and card options. ### Method POST ### Endpoint /websites/developers_gamma_app_reference ### Parameters #### Request Body - **fileTypes** (array) - Optional - Additional file types for saving your gamma. Allowed values: "pdf", "pptx". - **textOptions** (object) - Optional - Attributes of the text you want to generate. - **amount** (string) - Optional - How much text each card contains. Default: "medium". Allowed values: "brief", "medium", "detailed", "extensive". - **tone** (string) - Optional - Defines the mood or voice of the gamma. Character limits: 1-500. - **audience** (string) - Optional - Defines the intended readers/viewers of the gamma. Character limits: 1-500. - **language** (string) - Optional - The intended language of your gamma. Default: "en". - **imageOptions** (object) - Optional - Attributes of the images you want to generate, if any. - **source** (string) - Optional - Where you want to source images for your gamma. Default: "aiGenerated". Allowed values: "aiGenerated", "pictographic", "unsplash", "webAllImages", "webFreeToUse", "webFreeToUseCommercially", "giphy", "placeholder", "noImages". - **model** (string) - Optional - Specifies which AI model to use for generated images. - **style** (string) - Optional - Influences the artistic style of the AI generated images. Character limits: 1-500. - **cardOptions** (object) - Optional - Configuration for the generated cards. - **dimensions** (string) - Optional - Aspect ratio of the cards. Options for presentation: "fluid", "16x9", "4x3"; document: "fluid", "pageless", "letter", "a4"; social: "1x1", "4x5", "9x16". - **headerFooter** (object) - Optional - Content for card headers and footers. - **topLeft** (object) - Optional - Configuration for the top-left position of the header/footer. - **type** (string) - Required if headerFooter.topLeft is present. Specifies type of content. Allowed values: "cardNumber", "image", "text". - **value** (string) - Required if type = "text". Text content. Max: 500 chars. - **source** (string) - Required if type = "image". What image you want to use. Allowed values: "themeLogo". ### Request Example ```json { "fileTypes": ["pdf"], "textOptions": { "amount": "detailed", "tone": "professional and inspiring", "audience": "tech investors and enthusiasts", "language": "en" }, "imageOptions": { "source": "aiGenerated", "style": "minimal lineart style illustrations with lots of white space." }, "cardOptions": { "dimensions": "16x9", "headerFooter": { "topLeft": { "type": "text", "value": "My Presentation" } } } } ``` ### Response #### Success Response (200) - **gammaId** (string) - The unique identifier for the generated Gamma. - **status** (string) - The current status of the Gamma generation process. #### Response Example ```json { "gammaId": "gamma-12345abcde", "status": "processing" } ``` ``` -------------------------------- ### List Folders Source: https://developers.gamma.app/reference/list-folders Retrieves a list of folders. Supports filtering by name, pagination, and custom page size. ```APIDOC ## GET /v1.0/folders ### Description Retrieves a list of folders. Supports filtering by name, pagination, and custom page size. ### Method GET ### Endpoint https://public-api.gamma.app/v1.0/folders ### Parameters #### Query Parameters - **query** (string) - Optional - Search by folder name (case-sensitive). Filters results to folders matching the search term. - **limit** (integer) - Optional - Number of folders to return per page. Maximum: 50. - **after** (string) - Optional - Cursor token for fetching the next page. Use the nextCursor value from the previous response to retrieve the next page of results. #### Header Parameters - **X-API-KEY** (string) - Required - Your API key: sk-gamma-xxxxxxxxxx ### Response #### Success Response (200) - **id** (string) - The unique identifier for the folder. - **name** (string) - The name of the folder. - **data** (array) - An array of folder objects, returned when paginating. - **hasMore** (boolean) - Indicates if there are more results available. - **nextCursor** (string) - A cursor token for fetching the next page of results. #### Response Example ```json { "data": [ { "id": "abcdef", "name": "Design" }, { "id": "xyzabc", "name": "Marketing" } ], "hasMore": true, "nextCursor": "abc123def456ghi789" } ``` ``` -------------------------------- ### POST /v1.0/generations Source: https://developers.gamma.app/reference/index Create a new gamma using the Gamma API. This endpoint allows you to generate presentations, documents, webpages, or social posts based on provided text and images. ```APIDOC ## POST /v1.0/generations ### Description Creates a new gamma using the provided text and image URLs. You can specify various options to control the generation process, including text mode, format, theme, and more. ### Method POST ### Endpoint https://public-api.gamma.app/v1.0/generations ### Parameters #### Headers - **Content-Type** (string) - Required - Defaults to application/json - **X-API-KEY** (string) - Required - Enter your API key here. #### Request Body - **inputText** (string) - Required - Text and image URLs used to generate your gamma. Character limits: 1-100,000 tokens. - **textMode** (string) - Required - Enum: `generate`, `condense`, `preserve`. How you want your inputText to be modified. - **format** (string) - Optional - Enum: `presentation`, `document`, `webpage`, `social`. The type of artifact to create. Defaults to `presentation`. - **themeId** (string) - Optional - The theme from Gamma to be used for your creation. - **numCards** (integer) - Optional - How many cards you want to create when `cardSplit` is set to `auto`. Defaults to 10. - **cardSplit** (string) - Optional - Enum: `auto`, `inputTextBreaks`. How you want your content to be divided up. Defaults to `auto`. - **additionalInstructions** (string) - Optional - Extra specifications about the desired content and layouts. Character limits: 1-2000. - **folderIds** (array of strings) - Optional - The folder(s) where you want to store your gamma. - **exportAs** (string) - Optional - Enum: `pdf`, `pptx`. Additional file types for saving your gamma. - **textOptions** (object) - Optional - Attributes of the text you want to generate. - **imageOptions** (object) - Optional - Attributes of the images you want to generate. - **cardOptions** (object) - Optional - Attributes of the cards you want to generate. - **sharingOptions** (object) - Optional - Determines how your gamma is shared. ### Request Example ```json { "inputText": "Pitch deck on deep sea exploration.", "textMode": "generate", "format": "presentation", "themeId": "your_theme_id", "numCards": 15, "cardSplit": "auto", "additionalInstructions": "Make the titles catchy.", "folderIds": ["folder_1", "folder_2"], "exportAs": "pdf", "textOptions": { "language": "en" }, "imageOptions": { "model": "dall-e-3" }, "cardOptions": {}, "sharingOptions": {} } ``` ### Response #### Success Response (200) - **generationId** (string) - The ID of the generated gamma. #### Response Example ```json { "generationId": "xxxxxxxxxxx" } ``` #### Error Responses - **400** Bad Request - **401** Unauthorized ```