Skip to content
Back to skills

Gamma Install Auth

ASecurity

'Set up Gamma API v1.0 authentication and first request.

  • 2,719 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 21, 2026
ai-agentstypescriptpythonshellbashnodegitapisecurity

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Scanned September 21, 2026

npx -y skills add jeremylongshore/claude-code-plugins-plus --skill gamma-install-auth --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gamma Install Auth?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gamma Install Auth
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeremylongshore-gamma-install-auth-6435b858/badge)](https://www.skillsdirectory.com/skills/jeremylongshore-gamma-install-auth-6435b858)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gamma-install-auth
description: 'Set up Gamma API v1.0 authentication and first request.

  Use when configuring API keys, setting up X-API-KEY header,

  or initializing Gamma REST API access in a project.

  Trigger: "install gamma", "setup gamma API", "gamma auth",

  "gamma API key", "configure gamma".

  '
allowed-tools: Read, Write, Edit, Bash(curl:*), Bash(npm:*), Bash(pip:*)
version: 1.13.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- gamma
- api
- authentication
compatibility: Designed for Claude Code
---
# Gamma Install & Auth

## Output

Record the authentication method, minimum scope, secret-manager reference, validation time, owner, and rotation/revocation procedure—never a token, presentation, or viewer record.

## Examples

Use a scoped staging credential for a read-only fictional workspace check, record the redacted result, and verify the credential is denied after revocation.

## Overview

Configure authentication for the Gamma Generate API v1.0 (GA since Nov 2025). Gamma uses a REST API at `https://public-api.gamma.app/v1.0/` — there is no official SDK package. All requests authenticate via the `X-API-KEY` header.

## Prerequisites

- Gamma Pro account or higher (API access requires Pro+)
- Node.js 18+ or Python 3.10+ for wrapper code
- `curl` or HTTP client library

## Instructions

### Step 1: Generate API Key

1. Log in at [gamma.app](https://gamma.app)
2. Navigate to **Settings and Members** (dropdown, upper-left)
3. Select the **API key** tab
4. Click **Create API key**
5. Copy and securely store the key — it will not be shown again

### Step 2: Configure Environment

```bash
# Set environment variable (add to .env or shell profile)
export GAMMA_API_KEY="gma_your_api_key_here"

# .env file approach
echo 'GAMMA_API_KEY=gma_your_api_key_here' >> .env
```

### Step 3: Verify Connection

```bash
# Quick verification with curl
curl -s -o /dev/null -w "%{http_code}" \
  -H "X-API-KEY: ${GAMMA_API_KEY}" \
  https://public-api.gamma.app/v1.0/themes
# 200 = authenticated, 401 = invalid key
```

### Step 4: First API Call (Node.js)

```typescript
// gamma-client.ts — thin wrapper around the REST API
const GAMMA_BASE = "https://public-api.gamma.app/v1.0";

interface GammaConfig {
  apiKey: string;
  baseUrl?: string;
}

export function createGammaClient(config: GammaConfig) {
  const headers = {
    "X-API-KEY": config.apiKey,
    "Content-Type": "application/json",
  };
  const base = config.baseUrl ?? GAMMA_BASE;

  return {
    async listThemes() {
      const res = await fetch(`${base}/themes`, { headers });
      if (!res.ok) throw new Error(`Gamma API ${res.status}: ${await res.text()}`);
      return res.json();
    },
    async listFolders() {
      const res = await fetch(`${base}/folders`, { headers });
      if (!res.ok) throw new Error(`Gamma API ${res.status}: ${await res.text()}`);
      return res.json();
    },
  };
}

// Verify connection
const gamma = createGammaClient({ apiKey: process.env.GAMMA_API_KEY! });
const themes = await gamma.listThemes();
console.log(`Connected — ${themes.length} workspace themes available`);
```

### Step 5: First API Call (Python)

```python
import os, requests

GAMMA_BASE = "https://public-api.gamma.app/v1.0"
HEADERS = {
    "X-API-KEY": os.environ["GAMMA_API_KEY"],
    "Content-Type": "application/json",
}

# Verify connection
resp = requests.get(f"{GAMMA_BASE}/themes", headers=HEADERS)
resp.raise_for_status()
themes = resp.json()
print(f"Connected — {len(themes)} workspace themes available")
```

## API Key Security

| Practice | Implementation |
|----------|---------------|
| Never commit keys | Add `GAMMA_API_KEY` to `.gitignore` and `.env` |
| Rotate regularly | Regenerate in Settings > API key tab |
| Scope per environment | Separate keys for dev/staging/prod workspaces |
| Audit usage | Monitor credit consumption at gamma.app/settings/billing |

## Error Handling

| HTTP Status | Meaning | Fix |
|-------------|---------|-----|
| 401 Unauthorized | Invalid or missing API key | Verify `X-API-KEY` header value |
| 403 Forbidden | Account not on Pro+ plan | Upgrade at gamma.app/pricing |
| 429 Too Many Requests | Rate limit exceeded | Implement backoff; contact Gamma support for higher limits |
| 5xx Server Error | Gamma service issue | Retry with exponential backoff |

## Important Notes

- **No SDK**: Gamma does not publish an npm/pip package. Use `fetch`/`requests` directly.
- **Header format**: Use `X-API-KEY`, not `Authorization: Bearer`.
- **API v0.2 sunset**: v0.2 was deprecated Jan 2026. Use v1.0 only.
- **Credit system**: API calls consume credits based on image model tier (Standard 2-15, Advanced 20-33, Premium 34-75, Ultra 30-125 credits/image).

## Resources

- [Gamma Developer Docs](https://developers.gamma.app/)
- [Getting Started Guide](https://developers.gamma.app/docs/getting-started)
- [Access and Pricing](https://developers.gamma.app/docs/get-access)
- [API Key Management](https://gamma.app/settings)

## Next Steps

Proceed to `gamma-hello-world` for your first presentation generation.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.