| name | gamma-hello-world |
| description | Generate your first Gamma presentation via the API.
Use when learning the generate-poll-retrieve workflow,
testing API connectivity, or creating a minimal example.
Trigger: "gamma hello world", "gamma quick start",
"first gamma presentation", "gamma example", "gamma test".
|
| allowed-tools | Read, Write, Edit, Bash(curl:*), Bash(node:*) |
| version | 1.13.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","gamma","api","getting-started"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Gamma Hello World
Overview
Generate your first presentation using Gamma's async Generate API. The workflow is: POST to create a generation, poll for status, then retrieve results (gammaUrl + exportUrl).
Prerequisites
- Completed
gamma-install-auth setup
- Valid
GAMMA_API_KEY environment variable
- Pro account with available credits
The Generate-Poll-Retrieve Pattern
All Gamma generations are asynchronous:
- POST
/v1.0/generations — submit content, receive generationId
- GET
/v1.0/generations/{generationId} — poll every 5s until completed or failed
- Result —
gammaUrl (view in app) + exportUrl (download PDF/PPTX/PNG)
Instructions
Minimal curl Example
GENERATION=$(curl -s -X POST \
"https://public-api.gamma.app/v1.0/generations" \
-H "X-API-KEY: ${GAMMA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"content": "Create a 5-card presentation about the benefits of AI in business",
"outputFormat": "presentation"
}')
GEN_ID=$(echo "$GENERATION" | jq -r '.generationId')
echo "Generation started: $GEN_ID"
while true; do
STATUS=$(curl -s \
"https://public-api.gamma.app/v1.0/generations/${GEN_ID}" \
-H "X-API-KEY: ${GAMMA_API_KEY}")
STATE=$(echo "$STATUS" | jq -r '.status')
[ = ] || [ = ] &&
5
| jq