Felo API PlatformFelo API Platform

Mulai

Autentikasi

Autentikasi permintaan dengan kunci API, ikuti praktik keamanan, dan tangani kesalahan autentikasi.

Semua permintaan ke API Felo API Platform memerlukan autentikasi menggunakan kunci API. Panduan ini menjelaskan cara mengautentikasi permintaan Anda dan menangani masalah autentikasi yang umum.

Autentikasi dengan Kunci API

Felo menggunakan autentikasi kunci API untuk semua endpoint v2. Kunci API Anda mengidentifikasi aplikasi Anda dan memberikan akses ke kemampuan platform.

Cara Kerjanya

  1. Anda memperoleh kunci API dari halaman Kunci API Felo API Platform
  2. Anda menyertakan kunci API di header Authorization pada setiap permintaan API
  3. Platform memvalidasi kunci API Anda dan memproses permintaan Anda

Format Header

Sertakan kunci API Anda di header Authorization menggunakan skema autentikasi Bearer:

Authorization: Bearer YOUR_API_KEY

Contoh Permintaan

curl -X POST https://openapi.felo.ai/v2/chat \
  -H "Authorization: Bearer sk_live_abc123xyz789" \
  -H "Content-Type: application/json" \
  -d '{"query": "What is machine learning?"}'

Mendapatkan Kunci API Anda

Untuk mendapatkan kunci API Anda:

  1. Buka halaman Kunci API Felo API Platform
  2. Masuk dengan akun Felo Anda jika diminta
  3. Masukkan nama kunci dan klik Create Key
  4. Salin kunci lengkap saat muncul. Kunci hanya ditampilkan sekali
  5. Simpan kunci dengan aman dan gunakan sebagai FELO_API_KEY

Praktik Terbaik Keamanan

1. Simpan Kunci API dengan Aman

Jangan menuliskan kunci API secara hardcode di kode sumber Anda:

# ❌ Bad - API Key exposed in code
api_key = "sk_live_abc123xyz789"

Lakukan ini: gunakan variabel lingkungan atau konfigurasi yang aman:

# ✅ Good - API Key from environment
import os
api_key = os.environ.get('FELO_API_KEY')

2. Gunakan Variabel Lingkungan

Simpan kunci API Anda di variabel lingkungan:

Linux/macOS:

export FELO_API_KEY="sk_live_abc123xyz789"

Windows (Command Prompt):

set FELO_API_KEY=sk_live_abc123xyz789

Windows (PowerShell):

$env:FELO_API_KEY="sk_live_abc123xyz789"

3. Rotasi Kunci Secara Berkala

Secara berkala buat kunci API baru dan cabut kunci lama untuk meminimalkan risiko keamanan.

4. Gunakan Kunci Berbeda untuk Lingkungan Berbeda

Buat kunci API terpisah untuk lingkungan pengembangan, staging, dan produksi.

5. Jangan Pernah Mengekspos Kunci di Kode Sisi Klien

Kunci API hanya boleh digunakan dalam kode sisi server. Jangan pernah menyertakannya dalam:

  • Kode JavaScript frontend
  • Kode sumber aplikasi seluler
  • Repositori publik
  • File konfigurasi sisi klien

Error Autentikasi

Untuk envelope error lengkap, header batas laju, dan kebijakan percobaan ulang, lihat Error, Batas, dan Percobaan Ulang.

Kode Error Umum

HTTPKodeArti
401UNAUTHORIZEDKunci hilang, tidak valid, kedaluwarsa, atau dicabut
429RATE_LIMITEDTerlalu banyak permintaan; lihat panduan Error, Batas, dan Percobaan Ulang

Permintaan yang ditolak mengembalikan status kunci di message:

{
  "status": 401,
  "code": "UNAUTHORIZED",
  "message": "API Key is required",
  "request_id": "..."
}

status adalah kode status HTTP. Kunci yang dicabut melaporkan API Key has been revoked (keyPrefix=...). Bercabanglah berdasarkan status HTTP dan code, bukan berdasarkan kata-kata persis pada message.

Pemecahan Masalah

Jika autentikasi gagal:

  1. Periksa bahwa header persis Authorization: Bearer YOUR_API_KEY.
  2. Konfirmasi kunci belum dicabut di halaman Kunci API.
  3. Konfirmasi lingkungan menggunakan kunci yang Anda harapkan.
  4. Buat kunci baru jika kunci lama dihapus atau dirotasi. Kunci lengkap hanya ditampilkan sekali, saat pembuatan.

Untuk daftar periksa berbasis gejala yang mencakup autentikasi dan bagian lain platform, lihat Pemecahan Masalah.

Contoh: Men-debug Autentikasi

import requests

url = "https://openapi.felo.ai/v2/chat"
api_key = "YOUR_API_KEY"

# Correct format
headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers, json={"query": "test"})

if response.status_code == 401:
    error = response.json()
    print(f"Authentication failed: {error['code']}")
    print(f"Message: {error['message']}")
    print(f"Request ID: {error['request_id']}")
else:
    print("Authentication successful!")

Batas Laju

Batas laju diberlakukan per endpoint, bukan secara global per kunci API. Saat ini hanya `/v2/chat` yang menerapkannya; pengguna dengan langganan Felo berbayar yang efektif dikecualikan. Endpoint /v2/** lainnya tidak memiliki batas laju yang diberlakukan.

Respons 429 menyertakan header X-RateLimit-* dan Retry-After. Selalu baca batas yang berlaku dari header respons, bukan dari dokumentasi.

Untuk dimensi batas laju lengkap, header, dan kebijakan percobaan ulang, lihat Error, Batas, dan Percobaan Ulang.

Butuh Bantuan?

Jika Anda mengalami masalah autentikasi:

  1. Tinjau panduan ini dengan cermat
  2. Lihat panduan Memulai
  3. Verifikasi kunci API Anda di halaman Kunci API
  4. Hubungi dukungan di [email protected] dengan ID permintaan Anda

Langkah Berikutnya