Also Chowderr M. we do use Canny. Its our main place for product feedback: https://meetgamma.canny.io/
Hi Dan webhooks are not available at this time. As to if and when it will be available I dont have anything to share at this time.
Theres a timer in the presenter view!
Great question! Gamma works a bit differently than PowerPoint - instead of draggable text boxes, it uses a block-based system with Smart Layouts. For positioning text on specific sides of a card: Click the Insert menu on the right side of your screen
Select Smart Layouts
Choose a column-based layout that fits what you need (left/right splits, multi-column, etc.)
You can also adjust text alignment within any block - just highlight your text and choose left, center, or right alignment from the formatting menu. About the table issue with AI generation: This is a known limitation. When AI generates content, it doesn't always preserve table formatting perfectly, especially on cards with colored backgrounds or complex styling. Here's what I'd suggest:
Use columns instead of tables - Smart Layouts with columns often display more reliably than tables
Edit after generation - Let AI create the content, then click on the layout and switch to a different one. Gamma will automatically adjust your content to fit
Try "Try new layout" - Click the sparkle icon on any card and select "Try new layout" to have AI suggest alternatives that might work better
Here's more info on layouts and styling: Smart Layouts: https://help.gamma.app/en/articles/11029130-what-s-the-fastest-way-to-transform-content-and-layouts Card styling: https://help.gamma.app/en/articles/11969695-how-do-i-style-cards-and-adjust-layout-settings-in-my-gamma Text formatting: https://help.gamma.app/en/articles/11028318-how-do-i-add-edit-and-style-text-in-gamma Let me know if you have other questions! If you are continuing to have issues please send a video so we can look into this further.
Hey Dan! I dug into this a bit more โ unfortunately, the /v1.0/themes endpoint doesn't currently support filtering by type directly. The available parameters are:
query โ name search
limit โ max 50 results
after โ pagination cursor
Workaround: Each theme in the response includes a type field ("custom" or "standard"), so you can filter client-side: javascript
const customThemes = response.data.filter(theme => theme.type === 'custom');If you have a lot of themes, you may need to paginate through results, but this approach lets you identify which are yours. Building out the full implementation is a bit outside our support scope, but hopefully that points you in the right direction! If you'd like to see a native type filter added to the endpoint, definitely drop it in Ideas & Requests in the community Slack or on our Canny board โ that's where feature requests get tracked and prioritized! ๐
Hey Juan Diego! ๐ That CORS error is a browser security feature that blocks frontend JavaScript from making direct API calls to different domains. This is expected behavior and not specific to Gamma. Gamma-specific things to verify:
API key starts with sk-gamma-
Using X-API-KEY header (not Authorization or Bearer)
For v1.0, both inputText and textMode are required
Example request body: json
{
"inputText": "Your content here",
"textMode": "generate",
"format": "presentation",
"numCards": 10
}How your application is structured to call our API falls outside what we can help with. We focus on Gamma-specific configuration, authentication, error messages, and rate limits rather than custom application architecture. Once requests are reaching us from a server environment, if you hit any Gamma-specific errors, share the x-request-id from the response headers and I can help debug from there. Full docs: https://developers.gamma.app
Hey! ๐ Good news - those models are available via API. Here are the exact strings: Nano Banana:
gemini-2.5-flash-image (Nano Banana Flash) - 20 credits
gemini-3-pro-image (Nano Banana Pro) - 10 credits
gemini-3-pro-image-hd (Nano Banana Pro HD) - 30 credits, Ultra only
Flux 2:
flux-2-pro (Flux 2 Pro) - 4 credits
flux-2-flex (Flux 2 Flex) - 10 credits
The docs page you linked hasn't been updated.
Hi John! ๐ Glad you're loving spotlight mode! Quick answers on your questions: Audio per slide: We don't have native MP3 upload at the moment. The workaround is embedding audio from services like Spotify or SoundCloud. Just paste the link directly or use /spotify and Gamma will create a playable embed right in your card. Video recording: Gamma doesn't have built-in recording. Most folks pair Gamma with tools like Loom, OBS, or Zoom to record themselves presenting, then share that recording. Video uploading: You can embed videos from YouTube, Vimeo, Loom, and similar platforms. Just paste the link into your gamma or use the Videos & media option in the insert menu. ๐ก Tip: If you're looking to add voiceover, recording with Loom while presenting your Gamma in spotlight mode works really well. You get the polished presentation experience plus your narration. Native audio per slide is solid feedback. I'd encourage you to drop it in Canny so it gets on the radar: https://meetgamma.canny.io/ What's the use case you're going for? Happy to brainstorm other approaches!
Hey Dan! ๐ Webhooks/callbacks are definitely on the team's radar - appreciate you raising it, this kind of feedback helps shape what gets prioritized. For now polling is the way to go. Our docs recommend waiting at least 5 seconds between status checks on the GET /v1.0/generations/{id} endpoint. A few things that might help:
Most generations need 30-90 seconds depending on complexity, so you can delay your first poll a bit
The pending โ completed (or failed) status pattern is reliable
Backing off gradually for longer generations can save you some cycles
Full details in the API reference: https://developers.gamma.app Let us know if you run into anything weird with your current setup, happy to help troubleshoot! ๐
