AMADEV API Key Guide
Dokumen ini adalah panduan lengkap untuk halaman admin /admin/apikey, cara membuat API key, dan cara memakai AMADEV_API_KEY untuk endpoint publik di https://api.amadev.org.
1. Ringkasan
Halaman admin API key dipakai untuk:
- membuat API key baru
- membatasi model yang boleh dipakai oleh setiap key
- mengatur rate limit per key
- menonaktifkan atau menghapus key
- melihat penggunaan key terakhir
- melihat analytics request, token, dan latency
Base URL production:
https://amadev.org
2. Lokasi Admin
- Admin menu:
/admin/apikey - Alias lama yang masih dipakai internal page:
/admin/llm
File terkait:
3. Cara Kerja API Key
Setiap key disimpan di database key dan memiliki properti utama:
name: nama key untuk adminkey: nilai rahasia keyuserId: opsional, untuk mengikat key ke user tertentuallowedModels: daftar model yang boleh dipakai key iturateLimit: limit request per menitisActive: status aktif/nonaktiflastUsedAt: terakhir dipakai
Format key yang dihasilkan server memakai prefix:
amallm_
Referensi:
4. Alur Penggunaan dari Admin
4.1. Membuat Key
Di halaman /admin/apikey, klik Create New API Key, lalu isi:
Key NameUser (optional)Rate Limit (requests/min)Allowed Models
Setelah berhasil dibuat:
- key ditampilkan sekali
- admin harus langsung menyalin key itu
- setelah modal ditutup, key tidak ditampilkan penuh lagi
4.2. Mengelola Key
Admin bisa:
ActivateatauDeactivateDelete- melihat user yang terkait
- melihat allowed models
- melihat pemakaian terakhir
4.3. Analytics yang Tersedia
Dashboard analytics menampilkan:
- total requests
- success rate
- total token usage
- average latency
- breakdown per model
- breakdown per API key
Referensi:
5. Cara Auth ke API
API menerima 2 bentuk auth:
5.1. Header X-API-Key
X-API-Key: AMADEV_API_KEY
5.2. Header Authorization
Authorization: Bearer AMADEV_API_KEY
Implementasi auth:
- server akan cek
x-api-keydulu - kalau kosong, server cek
Authorization: Bearer ... - key harus ada di database dan
isActive = true
Referensi:
6. Model yang Saat Ini Didukung
Model global yang tersedia saat ini:
openai/gpt-oss-120bgroq/compoundllama-3.1-8b-instantmixtral-8x7b-32768gemma2-9b-itgemma-7b-itllama-3.3-70b-versatile
Catatan:
- setiap key bisa memakai semua model ini, atau subset-nya saja
- jika
allowedModelskosong, key mengikuti whitelist global - metadata model bisa dilihat lewat endpoint
/v1/models
Referensi:
7. Endpoint Publik yang Pakai API Key
7.1. Chat Completions
Endpoint:
POST https://api.amadev.org/v1/chat/completions
Kegunaan:
- OpenAI-compatible chat completion
- support
stream - support tool-calling loop di server
Contoh:
curl -X POST https://api.amadev.org/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: AMADEV_API_KEY" \
-d '{
"model": "groq/compound",
"messages": [
{ "role": "user", "content": "Hello!" }
]
}'
Referensi:
7.2. List Models
Endpoint:
GET https://api.amadev.org/v1/models
Contoh:
curl https://api.amadev.org/v1/models \
-H "X-API-Key: AMADEV_API_KEY"
7.3. List Tools
Endpoint:
GET https://api.amadev.org/v1/tools
Opsi:
?minimal=1untuk payload tool yang lebih ringkas
Contoh:
curl "https://api.amadev.org/v1/tools?minimal=1" \
-H "X-API-Key: AMADEV_API_KEY"
Catatan:
- tool dengan prefix
admin.hanya keluar untuk admin
Referensi:
7.4. Execute Tool Langsung
Endpoint:
POST https://api.amadev.org/v1/tools/execute
Body minimum:
tool_namearguments
Contoh:
curl -X POST https://api.amadev.org/v1/tools/execute \
-H "Content-Type: application/json" \
-H "X-API-Key: AMADEV_API_KEY" \
-d '{
"tool_name": "amadev.web.search",
"arguments": {
"query": "OpenAI API latest docs"
}
}'
Catatan:
- alias
toolNamedanargsjuga diterima - ukuran
argumentsdibatasi 50KB - output dipotong jika terlalu besar
- tool
admin.*ditolak untuk non-admin
Referensi:
7.5. Search Query
Endpoint:
POST https://api.amadev.org/v1/search/query
Body:
query: wajibtype:webatauacademic
Contoh:
curl -X POST https://api.amadev.org/v1/search/query \
-H "Content-Type: application/json" \
-H "X-API-Key: AMADEV_API_KEY" \
-d '{
"query": "latest AI developer tools",
"type": "web"
}'
Referensi:
7.6. Agent Roundtrip Test
Endpoint:
POST https://api.amadev.org/v1/agent-test/roundtrip
Kegunaan:
- mengetes alur tool-calling 2 langkah
- memverifikasi bahwa model, tool call, tool execution, dan final answer berjalan
Contoh:
curl -X POST https://api.amadev.org/v1/agent-test/roundtrip \
-H "Content-Type: application/json" \
-H "X-API-Key: AMADEV_API_KEY" \
-d '{
"mode": "simulated",
"city": "Bangkok",
"model": "openai/gpt-oss-120b"
}'
Referensi:
8. Endpoint Media dengan API Key
Wrapper publik ini saya sediakan agar AMADEV_API_KEY bisa dipakai untuk image dan video generation.
8.1. Generate Image
Endpoint:
POST https://api.amadev.org/v1/media/image
Body umum:
prompt: wajibsize: opsional, mis.1:1,16:9,9:16batch_count: opsional, maksimal 8model: opsional, defaultgemini-2.5-flash-imagereference_image: opsionalstrength: opsional
Contoh:
curl -X POST https://api.amadev.org/v1/media/image \
-H "Content-Type: application/json" \
-H "X-API-Key: AMADEV_API_KEY" \
-d '{
"prompt": "cinematic portrait of a futuristic singer on stage",
"size": "1:1",
"batch_count": 1
}'
Response sukses biasanya mengandung:
success: truedata.imageUrldata.allImages
Referensi:
8.2. Generate Video
Endpoint:
POST https://api.amadev.org/v1/media/video
Body umum:
prompt: wajibduration: opsional, default8motionIntensity: opsional, default5model: opsional, defaultveo-3.0-generate-001
Contoh:
curl -X POST https://api.amadev.org/v1/media/video \
-H "Content-Type: application/json" \
-H "X-API-Key: AMADEV_API_KEY" \
-d '{
"prompt": "a neon-lit city street at night with light rain",
"duration": 8,
"model": "veo-3.0-generate-001"
}'
Response sukses biasanya mengandung:
success: truedata.taskIddata.statusdata.modeldata.originalPromptdata.enhancedPromptjika prompt berhasil diperkaya
Referensi:
8.3. Check Video Status
Endpoint:
GET https://api.amadev.org/v1/media/video/status?taskId=YOUR_TASK_ID
Contoh:
curl "https://api.amadev.org/v1/media/video/status?taskId=YOUR_TASK_ID" \
-H "X-API-Key: AMADEV_API_KEY"
Response biasanya mengandung:
success: truedata.status:PENDING,SUCCESS, atauFAILEDdata.videoUrlketika render selesai
Referensi:
9. Endpoint Admin yang Dilindungi Role
Beberapa endpoint hanya untuk admin walaupun memakai API key valid.
Contoh:
GET /v1/admin/audit-logs
Catatan:
- session admin dari dashboard juga bisa dipakai untuk akses UI admin
- untuk API key, role user terkait key harus
admin
Referensi:
10. Contoh Workflow End-to-End
Workflow dasar chat
- Buat key di
/admin/apikey - Copy key yang tampil sekali itu
- Coba
GET /v1/models - Lanjut
POST /v1/chat/completions
Workflow image
- Siapkan
AMADEV_API_KEY - Kirim
POST /v1/media/image - Ambil
data.imageUrl
Workflow video
- Kirim
POST /v1/media/video - Simpan
data.taskId - Poll
GET /v1/media/video/status?taskId=... - Ambil
data.videoUrlsaat statusSUCCESS
11. Error yang Umum
401 Unauthorized
Penyebab umum:
- header key tidak dikirim
- value key salah
- key sudah inactive
403 Forbidden
Penyebab umum:
- key valid tapi mencoba akses endpoint atau tool admin
400 Unsupported model
Penyebab umum:
- model tidak ada di whitelist global
- model tidak masuk
allowedModelskey tersebut
502 Upstream error
Penyebab umum:
- provider upstream sedang gagal
- tool media atau chat upstream sedang timeout
12. Catatan Implementasi Penting
- update
lastUsedAtditahan agar tidak menulis database setiap request - error auth yang dikembalikan dibuat generik:
Unauthorized - tool-calling dilakukan oleh server loop, bukan native provider tool calling
supports_parallel_tool_callssaat inifalse
Referensi:
