Autentikasi
Semua request ke PortalData API memerlukan autentikasi menggunakan API key. Pelajari cara mendapatkan dan menggunakan API key Anda.
Cara Kerja Autentikasi
PortalData menggunakan API key untuk mengautentikasi semua request. Setiap API key terhubung dengan akun perusahaan Anda dan memiliki batas penggunaan sesuai tier langganan.
Alur Autentikasi
- 1Anda mengirim request dengan API key di header
- 2Server memvalidasi API key dan mengecek status akun
- 3Server mengecek rate limit dan kuota bulanan
- 4Jika valid, request diproses dan response dikembalikan
Mendapatkan API Key
1. Buat Akun
Daftar akun gratis di portaldata.id/signup
2. Verifikasi Email
Cek inbox email Anda dan klik link verifikasi yang kami kirim.
3. Buat API Key
Di dashboard, navigasi ke API Keys dan klik Create New Key.
4. Simpan API Key
API key hanya ditampilkan sekali. Simpan dengan aman di environment variables atau secret manager.
Jaga Kerahasiaan API Key
Jangan pernah menyimpan API key di kode sumber, repository publik, atau frontend application. Gunakan environment variables untuk menyimpan API key dengan aman.
Menggunakan API Key
Ada dua cara untuk mengirimkan API key dalam request:
Kirim API key melalui header X-API-Key:
curl -X GET "https://api.portaldata.id/api/v1/regions" \
-H "X-API-Key: pk_live_xxxxxxxxxxxxxxxx"Alternatif: kirim API key sebagai Bearer token melalui header Authorization:
curl -X GET "https://api.portaldata.id/api/v1/regions" \
-H "Authorization: Bearer pk_live_xxxxxxxxxxxxxxxx"Pilih Satu Metode
Jika kedua header dikirim bersamaan, X-API-Key akan diprioritaskan. Kami merekomendasikan menggunakan X-API-Key untuk konsistensi.
Contoh Kode
// Simpan API key di environment variable
const API_KEY = process.env.PORTALDATA_API_KEY;
async function fetchRegions() {
const response = await fetch(
'https://api.portaldata.id/api/v1/regions',
{
headers: {
'X-API-Key': API_KEY
}
}
);
if (!response.ok) {
const error = await response.json();
throw new Error(error.message);
}
return response.json();
}import os
import requests
# Simpan API key di environment variable
API_KEY = os.environ.get('PORTALDATA_API_KEY')
def fetch_regions():
response = requests.get(
'https://api.portaldata.id/api/v1/regions',
headers={'X-API-Key': API_KEY}
)
if not response.ok:
error = response.json()
raise Exception(error['message'])
return response.json()const axios = require('axios');
// Buat instance dengan default headers
const portaldata = axios.create({
baseURL: 'https://api.portaldata.id/api/v1',
headers: {
'X-API-Key': process.env.PORTALDATA_API_KEY
}
});
// Gunakan instance untuk semua request
async function fetchRegions() {
const { data } = await portaldata.get('/regions');
return data;
}
async function fetchKBLI(code) {
const { data } = await portaldata.get(`/kbli/${code}`);
return data;
}Format API Key
API key PortalData memiliki format sebagai berikut:
pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| Prefix | Deskripsi |
|---|---|
pk_live_ | Production key - untuk production environment |
pk_test_ | Test key - untuk development dan testing |
Error Autentikasi
Jika autentikasi gagal, API akan mengembalikan error dengan HTTP status 401:
{
"error": "unauthorized",
"message": "API key is required. Pass it via X-API-Key header."
}{
"error": "unauthorized",
"message": "Invalid or expired API key."
}Best Practices
Gunakan Environment Variables
Simpan API key di environment variables (.env) dan jangan pernah commit ke repository.
Buat API Key Terpisah per Environment
Gunakan API key berbeda untuk development, staging, dan production untuk memudahkan tracking dan keamanan.
Rotate API Key Secara Berkala
Buat API key baru dan hapus yang lama secara berkala, terutama jika ada pergantian tim atau potensi kebocoran.
Jangan Expose di Frontend
API key harus disimpan di server-side. Jika butuh akses dari frontend, buat proxy API di backend Anda.