API Keys

Autentikasi ke API getlaunch.dev secara terprogram menggunakan API keys.


Apa itu API Keys?

API keys memungkinkan Anda mengakses API getlaunch.dev tanpa OAuth. Mereka sempurna untuk:

  • Pipeline CI/CD (GitHub Actions, GitLab CI, dll.)
  • Skrip otomasi
  • Integrasi pihak ketiga
  • Komunikasi server-to-server

API keys menggunakan prefiks glk_ (contoh: glk_a1b2c3d4...) dan hanya ditampilkan sekali saat dibuat. Simpan dengan aman segera setelah dibuat.


Membuat API Key

Melalui Sidebar

  1. Buka Sidebar di dashboard Anda
  2. Temukan bagian API Keys
  3. Klik Create API Key
  4. Masukkan nama (contoh: "GitHub Actions deploy")
  5. Pilih scope yang dibutuhkan key Anda (minimal satu diperlukan)
  6. Secara opsional tetapkan tanggal kedaluwarsa
  7. Klik Create

Key Anda akan ditampilkan dalam modal reveal one-time. Salin dan simpan segera — tidak akan ditampilkan lagi.


Scope yang Tersedia

Setiap API key memberikan akses melalui scope spesifik. Pilih hanya scope yang diperlukan integrasi Anda:

ScopeAkses
projects:readDaftar/lihat proyek, koneksi VCS, repo
projects:writeBuat, perbarui, hapus proyek
deployments:readDaftar deployment, lihat log
deployments:writePicu deployment baru
files:readDaftar file di storage project
files:writeUnggah file ke storage project
billing:readLihat langganan, invoice, kuota

Catatan: Pengaturan akun, koneksi VCS, dan pembuatan AI tidak dapat diakses melalui API keys.


Menggunakan API Key

Teruskan API key Anda di header Authorization sebagai token Bearer:

Authorization: Bearer glk_a1b2c3d4...

curl

# Daftar proyek
curl https://api.getlaunch.dev/v1/private/projects \
  -H "Authorization: Bearer glk_a1b2c3d4..."

# Picu deployment dari branch yang dikonfigurasi pada project
curl -X POST https://api.getlaunch.dev/v1/private/projects/{projectID}/deployments \
  -H "Authorization: Bearer glk_a1b2c3d4..."

# Minta URL unggahan untuk storage
curl -X POST https://api.getlaunch.dev/v1/private/projects/{id}/files \
  -H "Authorization: Bearer glk_a1b2c3d4..." \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "data.csv",
    "content_type": "text/csv",
    "size": 1024
  }'

# Unggah file ke upload_url yang dikembalikan
curl -X PUT "{upload_url}" \
  -H "Content-Type: text/csv" \
  --data-binary @data.csv

GitHub Actions

Simpan API key Anda sebagai repository secret dan gunakan dalam workflow:

env:
  GETLAUNCH_API_KEY: ${{ secrets.GETLAUNCH_API_KEY }}
  GETLAUNCH_PROJECT_ID: ${{ vars.GETLAUNCH_PROJECT_ID }}

- name: Deploy ke GetLaunch
  run: |
    curl -f -X POST https://api.getlaunch.dev/v1/private/projects/$GETLAUNCH_PROJECT_ID/deployments \
      -H "Authorization: Bearer $GETLAUNCH_API_KEY"

Jangan pernah hardcode API keys dalam kode atau workflow Anda. Selalu gunakan repository secrets.

Node.js / fetch

const apiKey = process.env.GETLAUNCH_API_KEY;

const res = await fetch('https://api.getlaunch.dev/v1/private/projects', {
  headers: {
    'Authorization': `Bearer ${apiKey}`,
  },
});
const { data } = await res.json();
console.log(data);

Python

import httpx
import os

api_key = os.getenv("GETLAUNCH_API_KEY")
client = httpx.Client(headers={"Authorization": f"Bearer {api_key}"})

response = client.get("https://api.getlaunch.dev/v1/private/projects")
projects = response.json()
print(projects)

Hubungkan dengan Claude / MCP

Hubungkan Claude atau klien AI MCP apa pun untuk membaca proyek, memicu deployment, mengelola file, dan memeriksa billing — menggunakan bahasa natural.

Claude (claude.ai)

Tidak perlu API key. Claude mendukung OAuth — cukup tambahkan URL server dan ikuti panduan di layar:

  1. Di Claude, tambahkan MCP server baru dengan URL https://api.getlaunch.dev/mcp, beri nama (contoh: getlaunch), lalu klik Connect
  2. Ikuti panduan di layar untuk mengotorisasi akses

MCP client lainnya

Untuk Claude Desktop, Claude Code CLI, atau client yang memerlukan konfigurasi manual, buat API key terlebih dahulu, lalu:

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "getlaunch": {
      "type": "http",
      "url": "https://api.getlaunch.dev/mcp",
      "headers": {
        "Authorization": "Bearer glk_your_key_here"
      }
    }
  }
}

Claude Code CLI:

claude mcp add --transport http getlaunch https://api.getlaunch.dev/mcp \
  --header "Authorization: Bearer glk_your_key_here"

Restart klien kamu setelah menambahkan — tool yang tersedia akan terdeteksi otomatis.

Yang bisa dilakukan AI

Tergantung scope yang kamu berikan, asisten AI dapat:

ScopeKemampuan
projects:readDaftar proyek, cek status deployment
deployments:writeMemicu deployment baru
files:readDaftar file di storage bucket
files:writeUnggah file ke storage
billing:readCek kuota dan status invoice

Tips: batasi scope

Untuk asisten AI yang digunakan sehari-hari, projects:read + deployments:write biasanya sudah cukup. Hindari memberikan projects:write kecuali kamu memang ingin AI membuat atau menghapus proyek.


Mengelola Keys

Lihat Detail Key

Keys menampilkan:

  • Name — Label Anda untuk key
  • Prefix — 8 karakter pertama (contoh: glk_a1b2) untuk identifikasi
  • Scopes — Izin yang diberikan
  • Last Used — Kapan key terakhir digunakan (membantu mengidentifikasi key aktif)
  • Expires — Tanggal kedaluwarsa, jika diatur

Peringatan Kedaluwarsa

Keys yang kedaluwarsa dalam 7 hari menampilkan badge peringatan. Rencanakan ke depan untuk menghindari gangguan layanan.

Rotasi Key

Untuk merotasi key:

  1. Buat key baru dengan scope yang sama
  2. Perbarui skrip dan integrasi Anda untuk menggunakan key baru
  3. Hapus key lama setelah memverifikasi semuanya berfungsi

Batas & Kuota

  • Max 10 keys per pengguna — Hubungi support jika Anda membutuhkan lebih
  • Format key — Selalu dimulai dengan glk_
  • Kedaluwarsa — Dapat diatur hingga 10 tahun ke depan

Best Practice Keamanan

Simpan dengan aman:

  • Gunakan variabel lingkungan atau tools manajemen rahasia (jangan hardcode keys)
  • Di CI/CD, selalu gunakan repository atau organization secrets
  • Rotasi keys secara berkala

Batasi scope:

  • Berikan hanya izin yang dibutuhkan integrasi Anda
  • Gunakan key terpisah untuk tujuan berbeda (satu untuk deployment, satu untuk unggah file, dll.)

Pantau penggunaan:

  • Tinjau timestamp "Last Used" untuk mengidentifikasi key yang tidak digunakan
  • Hapus key yang tidak lagi Anda butuhkan
  • Periksa integrasi mana yang menggunakan setiap key

Tangani kedaluwarsa:

  • Tetapkan tanggal kedaluwarsa yang masuk akal
  • Terima peringatan dashboard untuk key yang akan kedaluwarsa
  • Rotasi sebelum kedaluwarsa untuk menghindari downtime

Kode Error

ErrorHTTPPenyebab
API_KEY_NOT_FOUND404ID key tidak ada atau milik pengguna lain
API_KEY_LIMIT_EXCEEDED409Anda telah membuat 10 keys (maksimal yang diizinkan)
VALIDATION_ERROR400Nama tidak valid, scope tidak dikenal, atau format tanggal tidak valid
UNAUTHORIZED401Key hilang, tidak valid, kedaluwarsa, atau kekurangan scope yang diperlukan

Contoh

Picu Deployment dari Script

#!/bin/bash
PROJECT_ID="proj-12345"

curl -X POST "https://api.getlaunch.dev/v1/private/projects/$PROJECT_ID/deployments" \
  -H "Authorization: Bearer $GETLAUNCH_API_KEY"

Daftar Semua Proyek dan Status Mereka

import httpx

api_key = "glk_your_key_here"
headers = {"Authorization": f"Bearer {api_key}"}

response = httpx.get(
    "https://api.getlaunch.dev/v1/private/projects",
    headers=headers
)
projects = response.json()["data"]["projects"]

for project in projects:
    print(f"{project['name']} — {project['deployment_type']}")

Unggah File ke Storage (Multi-step)

  1. Minta URL unggahan:
curl -X POST https://api.getlaunch.dev/v1/private/projects/{projectId}/files \
  -H "Authorization: Bearer glk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "data.csv",
    "content_type": "text/csv",
    "size": 5120
  }'
  1. Unggah ke URL yang disediakan:
curl -X PUT "{upload_url}" \
  --data-binary @data.csv

Selanjutnya?