Build once. Run every model.
GetRun API memberi Anda akses terstandar ke model image, video, audio, dan lainnya melalui satu endpoint yang konsisten. Bayar hanya untuk hasil yang sukses.
Harga jelas, pembulatan mudah.
Saldo hanya terpotong jika hasil sukses.
1. Quickstart
Buat task pertama Anda dalam hitungan detik. Generation berjalan asynchronous: buat task, lalu poll statusnya sampai selesai. Contoh dengan GetRun Assemble:
curl -X POST https://run.getcore.id/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: my-task-001" \
-H "Content-Type: application/json" \
-d '{
"model": "getrun-edit/assemble",
"input": {
"clips": [
"https://storage.getcore.id/outputs/task_a/0.mp4"
],
"seconds": 3,
"timeline": "{\"segments\":[{\"clip\":0,\"start\":0,\"end\":3,\"caption\":\"Stop scrolling\"}]}",
"resolution": "720p",
"aspect_ratio": "9:16"
}
}'const res = await fetch('https://run.getcore.id/v1/tasks', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Idempotency-Key': 'my-task-001',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"model": "getrun-edit/assemble",
"input": {
"clips": [
"https://storage.getcore.id/outputs/task_a/0.mp4"
],
"seconds": 3,
"timeline": "{\"segments\":[{\"clip\":0,\"start\":0,\"end\":3,\"caption\":\"Stop scrolling\"}]}",
"resolution": "720p",
"aspect_ratio": "9:16"
}
}),
});
const task = await res.json();import requests
res = requests.post(
"https://run.getcore.id/v1/tasks",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Idempotency-Key": "my-task-001",
},
json={
"model": "getrun-edit/assemble",
"input": {
"clips": [
"https://storage.getcore.id/outputs/task_a/0.mp4"
],
"seconds": 3,
"timeline": "{\"segments\":[{\"clip\":0,\"start\":0,\"end\":3,\"caption\":\"Stop scrolling\"}]}",
"resolution": "720p",
"aspect_ratio": "9:16"
}
},
)
task = res.json()task_id. Gunakan untuk memeriksa status dan mengambil hasil.2. Authentication
Setiap request harus menyertakan API key Anda di header Authorization. Key penuh hanya ditampilkan sekali saat dibuat.
3. Task lifecycle
Membuat task, cek status, ambil hasil
queued → processing → succeeded
│ │
├──────────┴──→ failed (tidak ditagih, reservasi dikembalikan)
└─────────────→ cancelled (hanya saat masih queued)
| Status | Keterangan |
|---|---|
queued | Task sedang diantrikan. |
processing | Sedang diproses model. |
succeeded | Berhasil — output.urls berisi hasil. |
failed | Gagal — lihat error, tidak ditagih. |
Poll GET /v1/tasks/{task_id} tiap 2–5 detik. Task yang masih queued bisa dibatalkan via POST /v1/tasks/{task_id}/cancel.
4. Harga & billing
- Semua harga integer Rupiah (IDR), terlihat sebelum task dijalankan; estimasi pasti via POST
/v1/quotes. - Saat task dibuat, saldo direservasi sebesar estimasi; setelah sukses biaya final ditagih dan sisa reservasi dikembalikan.
- Task gagal tidak dikenakan biaya —
price.finalmenjadi 0. - URL output berlaku 7 hari — salin file ke penyimpananmu sendiri.
- Semua endpoint mutasi mendukung
Idempotency-Key(wajib diPOST /v1/tasks, disimpan 24 jam) — retry aman, tidak dobel tagih.
Models
Setiap model punya halaman referensinya sendiri. Daftar live juga tersedia via GET https://run.getcore.id/v1/models.
getrun-edit/assemblesuno/v5suno/v4-5elevenlabs/text-to-speechelevenlabs/musicelevenlabs/sound-effectselevenlabs/voice-changernano-banana-2/baseseedream/5-pro-image-to-imagegpt-image-2-text-to-image/baseseedream/5-pro-text-to-imagegpt-image-2-image-to-image/basenano-banana-2-lite/basebytedance/seedance-2-5pixverse-v6/text-to-videobytedance/seedance-2-fastgpt/5.6-solgemini-omni-video/basehappyhorse-1-1/reference-to-videogpt/5.6-terragpt/5.6-lunagpt/5.5gpt/5.4happyhorse-1-1/text-to-videopixverse-v6/image-to-videobytedance/seedance-2gpt/5.4-minigpt/5.3-codex-sparkhappyhorse-1-1/image-to-videopixverse-v6/transitionclaude/opus-4.8kling-3.0/motion-controlclaude/sonnet-5claude/fable-5grok/4.5pixverse-v6/extendkling/v3-turbo-image-to-videobytedance/seedance-2-minikling/v3-turbo-text-to-video5. Endpoints
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /v1/models | Daftar model + parameter schema |
| GET | /v1/models/{creator}/{slug} | Detail satu model |
| POST | /v1/quotes | Estimasi harga (berlaku 10 menit, opsional) |
| POST | /v1/uploads | Upload file input (gambar/video/audio) — multipart, field file |
| POST | /v1/tasks | Buat generation task (wajib Idempotency-Key) |
| POST | /v1/chat/completions | LLM chat OpenAI-compatible (streaming, harga per 1K token) |
| GET | /v1/tasks/{task_id} | Status + hasil task |
| POST | /v1/tasks/{task_id}/cancel | Batalkan task yang masih queued |
| GET | /v1/balance | Saldo saat ini |
| GET | /v1/usage | Riwayat penggunaan (cursor pagination) |
File input (image-to-image, start frame, video referensi)
Parameter model bertipe file (mis. image_urls, first_frame_url, reference_video_urls) diisi URL. Upload dulu filenya:
curl -X POST https://run.getcore.id/v1/uploads \
-H "Authorization: Bearer run_live_xxx" \
-F "file=@foto.jpg"
# 201 -> { "url": "https://storage.getcore.id/inputs/...", "type": "image",
# "size": 123456, "duration_seconds": null }
Lalu pakai url tersebut di input task. Gambar/audio maks 25 MB, video maks 50 MB; file disimpan 7 hari. Untuk gambar boleh juga URL publik milikmu sendiri, tapi video referensi wajib dari /v1/uploads — durasinya diukur saat upload dan menjadi dasar perhitungan harga.
6. Rate limits
Setiap akun punya batas request yang wajar untuk menjaga stabilitas platform. Jika terlampaui, API membalas 429 dengan kode rate_limited — tunggu sejenak lalu retry (request dengan Idempotency-Key aman diulang). Butuh limit lebih tinggi? Hubungi support@getcore.id.
7. Error handling
Semua error memakai satu envelope. Simpan request_id saat menghubungi support.
{
"error": {
"code": "insufficient_balance",
"message": "Balance is lower than the maximum task cost.",
"request_id": "req_...",
"details": {}
}
}
| Code | HTTP | Arti |
|---|---|---|
invalid_request | 400 | Body/parameter tidak valid |
unauthorized | 401 | API key salah atau tidak ada |
insufficient_balance | 402 | Saldo kurang dari biaya maksimum task |
model_not_found / not_found | 404 | Model/resource tidak ditemukan |
unsupported_parameter | 400 | Input tidak sesuai parameter schema model |
model_offline | 409 | Model sedang tidak tersedia |
model_coming_soon | 409 | Model sudah di katalog, API-nya belum dirilis |
task_not_cancellable | 409 | Task sudah berjalan/selesai |
moderation_blocked | — | Diblokir moderasi konten (pada error task) |
upstream_error / upstream_timeout | — | Gangguan penyedia model (tidak ditagih) |
rate_limited | 429 | Terlalu banyak request |
internal_error | 500 | Kesalahan platform |
8. Connector MCP
Selain REST API di atas, GetRun juga berjalan sebagai remote MCP server. Pasang sekali di Claude (atau klien MCP lain), lalu jalankan model image, video, audio, dan chat memakai saldo GetRun langsung dari dalam percakapan — tanpa API key, karena aksesnya diberikan lewat OAuth dan bisa dicabut kapan saja.
Pasang di Claude
- Buka Settings → Connectors → Add custom connector.
- Tempel URL
https://run.getcore.id/mcp, lalu Connect. - Login ke akun GetRun, pilih izin yang diberikan, lalu setujui.
Panduan versi panjangnya ada di https://run.getcore.id/connect. Daftar koneksi aktif dan tombol cabutnya ada di Settings — mencabut koneksi langsung mematikan aksesnya.
getrun_estimate_price dulu sebelum generation yang mahal. Task gagal tetap tidak ditagih.Izin
Izin dipilih user saat menghubungkan, dan ditegakkan per tool. Tool di luar izin yang diberikan menolak jalan dengan pesan yang menjelaskan izin apa yang kurang.
| Scope | Artinya bagi user | Cakupan |
|---|---|---|
read |
Melihat akun kamu Membaca katalog model beserta harganya, saldo kamu, dan riwayat generation di project ini. |
6 tool |
generate |
Membuat gambar, video, audio, dan teks Menjalankan model dari katalog GetRun. Setiap generation memotong saldo kamu dengan tarif yang sama persis seperti di situs. |
6 tool |
manage |
Merapikan hasil generation Menyembunyikan hasil dari galeri creations. Riwayat tagihan tidak ikut terhapus. |
2 tool |
Tools
| Tool | Izin | Deskripsi |
|---|---|---|
getrun_list_models |
read |
Daftar model AI di katalog GetRun beserta harga dalam rupiah dan schema parameternya. Panggil ini dulu kalau perlu memilih model tertentu atau ingin tahu parameter apa yang didukung sebuah model. |
getrun_get_balance |
read |
Saldo GetRun yang tersedia dan yang sedang tertahan untuk task berjalan, dalam rupiah. |
getrun_estimate_price |
read |
Hitung biaya sebuah generation SEBELUM dijalankan, memakai mesin harga yang sama dengan eksekusi. Pakai ini kalau user bertanya "berapa ongkosnya". |
getrun_generate_image |
generate |
Buat gambar dari prompt teks memakai katalog GetRun. Bisa juga image-to-image dengan memberi image_urls. Memotong saldo GetRun user dengan tarif yang sama seperti di situs. Kalau model tidak disebut, dipakai model teratas di katalog yang bisa jalan dari prompt teks saja. |
getrun_generate_video |
generate |
Buat klip video dari prompt teks, atau animasikan sebuah gambar dengan image_url. Video butuh waktu lebih lama daripada gambar — kalau belum selesai saat tool kembali, lanjutkan dengan getrun_get_task. Memotong saldo GetRun user. |
getrun_generate_audio |
generate |
Buat lagu, suara, atau efek audio — termasuk text-to-speech. Untuk TTS, isi prompt dengan teks yang dibacakan dan sebut voice bila perlu. Memotong saldo GetRun user. |
getrun_run_model |
generate |
Jalankan model mana pun di katalog dengan parameter mentah sesuai parameters_schema-nya. Pakai ini kalau tool generate yang lebih sederhana tidak menyediakan parameter yang dibutuhkan. Ambil schema-nya dulu lewat getrun_list_models dengan include_schema=true. Memotong saldo GetRun user. |
getrun_chat |
generate |
Kirim prompt ke model chat di katalog GetRun (mis. Claude atau Grok lewat GetRun) dan kembalikan jawabannya. Ditagih per token dari saldo GetRun user. |
getrun_list_characters |
read |
Daftar karakter tersimpan di project GetRun user — identitas visual yang bisa dipakai ulang supaya wajahnya konsisten antar generation. Panggil ini kalau user menyebut nama seseorang yang mungkin sudah disimpan, atau minta "karakter yang sama". |
getrun_save_character |
generate |
Simpan sebuah karakter supaya rupanya bisa dipakai ulang di generation berikutnya. Isi "appearance" dengan deskripsi rupa yang detail dan tidak berubah-ubah (bentuk wajah, mata, rambut, kulit, ciri khas) — BUKAN adegan atau pakaian, karena bagian itu datang dari prompt tiap generation. Kalau namanya sudah ada, karakter itu diperbarui. |
getrun_delete_character |
manage |
Hapus karakter tersimpan. Hasil generation yang pernah memakainya tetap ada dan tidak ikut terhapus. |
getrun_get_task |
read |
Ambil status dan hasil sebuah task lewat task_id. Pakai ini untuk melanjutkan generation yang belum selesai saat tool generate kembali. |
getrun_list_creations |
read |
Daftar hasil generation terakhir di project GetRun user, lengkap dengan prompt, model, biaya, dan URL keluaran. |
getrun_hide_creation |
manage |
Sembunyikan sebuah hasil generation dari galeri creations di GetRun. Riwayat tagihannya tetap tersimpan dan tidak bisa dihapus. |
Semua tool memanggil endpoint /v1 yang sama dengan REST API — harga, reservasi saldo, validasi parameter, dan rate limit-nya identik, dan hasilnya ikut tercatat di Usage.
OAuth 2.1
Transport-nya Streamable HTTP (satu POST = satu JSON-RPC request/response); versi protokol MCP yang didukung: 2025-06-18 2025-03-26 2024-11-05. Klien mendaftar sendiri lewat Dynamic Client Registration, jadi tidak ada client secret yang perlu dibagikan — PKCE S256 wajib, dan refresh token dirotasi setiap kali dipakai.
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /.well-known/oauth-protected-resource | Metadata resource (RFC 9728) |
| GET | /.well-known/oauth-authorization-server | Metadata authorization server (RFC 8414) |
| POST | /oauth/register | Dynamic Client Registration (RFC 7591) |
| GET | /oauth/authorize | Layar izin — user login lalu menyetujui |
| POST | /oauth/token | Tukar authorization code, atau refresh |
| POST | /oauth/revoke | Cabut token (RFC 7009) |
Request tanpa token yang sah dibalas 401 dengan header WWW-Authenticate yang menunjuk ke metadata di atas — dari situ klien MCP mengurus sisanya sendiri.
Untuk LLM & coding agent
https://run.getcore.id/llms.txt— seluruh API dalam markdown ringkas, selalu sinkron dengan katalog.https://run.getcore.id/openapi-v1.yaml— spesifikasi OpenAPI 3.1.
Support
Email support@getcore.id — sertakan request_id atau task_id.
