GetLinkFastGetLinkFast

Dokumentasi pengembang

API dan server MCP GetLinkFast

Cari situs, isi keranjang Anda, dan pesan dengan kredit tanpa membuka dasbor: dari skrip, skenario Make atau n8n, atau agen AI seperti Claude atau Cursor. API dan server MCP memakai kunci yang sama dan mengembalikan JSON yang sama.

Kegunaannya

  • Agensi dan tim SEO: hubungkan alat internal dan dasbor pemantauan Anda ke akun Anda. Katalog, keranjang, pesanan, dan status dapat dibaca dalam JSON.
  • Agen AI: minta Claude Code atau Cursor “carikan 5 situs keuangan dengan DR 40+ lalu pesan”. Agen mencari, menunjukkan ringkasan, dan hanya memesan setelah Anda setuju.
  • Make, n8n, Zapier: cukup satu modul HTTP dan satu kunci.

API menjual artikel tamu (guest_post), penyisipan tautan (link_insertion), dan paket SEO/GEO, hanya dengan kredit. Pembelian kredit dan penawaran lain tetap di dasbor.

Membuat kunci

  1. Buka Dasbor → Akses API.
  2. Beri nama kunci (misalnya “Agen Claude” atau “Laporan Make”) dan pilih izinnya. Pada kunci yang boleh memesan, Anda dapat menetapkan batas per pesanan dan batas selama 24 jam.
  3. Salin kunci. Kunci diawali glf_live_ dan hanya ditampilkan sekali: kami hanya menyimpan sidik jarinya.
  4. Kirimkan di header setiap permintaan: Authorization: Bearer glf_live_…

Maksimal 10 kunci aktif per organisasi. Kunci yang dicabut langsung berhenti berfungsi, begitu pula kunci anggota yang keluar dari organisasi. Jauhkan kunci dari repositori kode Anda: siapa pun yang memegangnya bertindak atas nama organisasi Anda.

Izin sebuah kunci

Setiap kunci memiliki satu atau beberapa izin. Permintaan tanpa izin yang diperlukan menerima 403 insufficient_scope, dan agen AI hanya melihat alat yang diizinkan.

IzinMemberi akses keSiapa yang dapat memberikannya
readKatalog, kategori, akun dan saldo, riwayat kredit, pesanan, penawaran harga paket.Selalu disertakan.
cartMenambah, mengubah, dan menghapus baris keranjang.Setiap anggota organisasi.
purchaseMemesan keranjang atau paket dengan kredit. Termasuk keranjang.Hanya pemilik organisasi.

Mulai cepat

Semua rute diawali https://www.getlinkfast.com/api/v1. Pertahankan www: alamat tanpa www akan mengalihkan, dan klien HTTP tidak lagi mengirim header Authorization setelah pengalihan.

Jumlah dalam euro belum termasuk PPN. Respons dalam JSON, dengan bidang dalam snake_case.

1. Membaca akun dan saldo Anda
curl https://www.getlinkfast.com/api/v1/account \
  -H "Authorization: Bearer glf_live_…"
2. Mencari situs: DR 40 ke atas, berbahasa Prancis, artikel tamu
curl "https://www.getlinkfast.com/api/v1/sites?dr_min=40&language=fr&product=guest_post&sort=dr&dir=desc&page_size=10" \
  -H "Authorization: Bearer glf_live_…"
3. Menambahkan artikel tamu ke keranjang
curl -X POST https://www.getlinkfast.com/api/v1/cart/items \
  -H "Authorization: Bearer glf_live_…" \
  -H "Content-Type: application/json" \
  -d '{"site_id":"8a1f0c3e-5b7d-4e2a-9c61-0f3b2d4e6a17","product_type":"guest_post","target_url":"https://www.example.com/invoicing","anchor":"invoicing software","topic":"How to choose invoicing software for a small business"}'

Ganti site_id dengan id situs dari langkah 2. Jangan pernah mengirim harga: server yang menghitungnya.

4. Memesan keranjang dengan kredit
curl -X POST https://www.getlinkfast.com/api/v1/checkout \
  -H "Authorization: Bearer glf_live_…" \
  -H "Idempotency-Key: order-2026-10-14-001"

Respons memberikan id pesanan, jumlah yang didebit, dan sisa saldo Anda. Lalu pantau progresnya dengan GET /orders/{id}.

Memesan dengan kredit

API hanya memesan dengan kredit dan tidak pernah memicu pembayaran kartu. Kredit diisi ulang di dasbor.

Pesanan mengambil baris guest_post dan link_insertion dari keranjang. Baris lain, yang ditambahkan dari dasbor, tetap di keranjang dan tercantum di skipped_items.

Tidak ada batas bawaan: saldo Anda satu-satunya batas. Pada kunci yang boleh memesan, tetapkan batas per pesanan dan batas selama 24 jam bergulir. Pesanan yang melampauinya ditolak (403 spending_limit_exceeded, dengan sisa yang tersedia), tanpa debit.

Saldo tidak cukup: 402 insufficient_credits, dengan jumlah yang kurang dan tautan halaman Kredit, untuk diteruskan ke anggota tim Anda. Tidak ada yang didebit.

Setelah itu semuanya berjalan seperti dari dasbor: email konfirmasi dan pemantauan di layar Pesanan, tempat pesanan membawa nama kunci yang membuatnya.

Header Idempotency-Key

  • Wajib pada POST /checkout dan POST /packs/orders: 8 hingga 128 karakter ASCII yang dapat dicetak, tanpa spasi. Tanpanya: 400 idempotency_key_required.
  • Satu nilai sama dengan satu niat pembelian. Mengirim ulang nilai yang sama mengembalikan pesanan asli (200, "replayed": true) tanpa debit kedua, meskipun keranjang telah berubah sejak itu.
  • Setelah batas waktu habis atau jaringan terputus, ulangi dengan nilai yang sama: Anda tidak akan membayar dua kali.
  • Untuk pembelian baru, buat nilai baru, misalnya UUID.
  • Pada POST /checkout maupun POST /packs/orders, nilai yang sudah dipakai untuk pembelian lain ditolak: 409 idempotency_conflict, tanpa debit. Untuk paket, nilai yang sama yang dikirim dengan isi berbeda juga ditolak.
  • Di sisi MCP, token konfirmasi memegang peran ini: Anda tidak perlu membuat apa pun.

Batas

  • 120 permintaan per menit per kunci untuk membaca, dan jumlah yang sama, secara terpisah, untuk keranjang: yang satu tidak mengurangi yang lain.
  • 10 panggilan per menit per kunci ke rute atau alat pembelian — termasuk pengulangan, penolakan, dan langkah ringkasan MCP.
  • 300 permintaan HTTP per menit per kunci di server MCP. Setiap alat yang dipanggil juga dihitung dalam batas izinnya.
  • Melebihi itu: 429 rate_limited. Lama menunggu, dalam detik, diberikan oleh header Retry-After lewat HTTP, dan oleh details.retry_after_seconds dalam hasil alat MCP.
  • Maksimal 100 hasil per halaman (page_size).
  • Isi permintaan: maksimal 1 MB.

Kode galat

Setiap galat memiliki bentuk yang sama. Uji code: nilainya stabil. message berbahasa Inggris dan ditujukan untuk pengembang; details menyebutkan bidang yang salah atau jumlahnya.

Contoh: saldo tidak cukup
{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits for this order. Nothing was debited. Ask a human to top up at credits_url, then retry with the same Idempotency-Key.",
    "details": {
      "missing_amount": 42,
      "credits_url": "https://www.getlinkfast.com/dashboard/credits"
    }
  }
}
KodeHTTPArtinya
invalid_json400Isi permintaan bukan JSON yang dapat dibaca. Periksa sintaks dan header Content-Type: application/json.
idempotency_key_required400Header Idempotency-Key tidak ada atau salah format pada rute pembelian. Kirim nilai 8 hingga 128 karakter.
invalid_api_key401Kunci tidak ada, salah format, tidak dikenal, atau dicabut, atau dibuat oleh anggota yang telah keluar dari organisasi. Periksa header Authorization: Bearer glf_live_….
insufficient_credits402Saldo tidak cukup. details.missing_amount memberikan jumlah yang kurang, details.credits_url halaman untuk mengisi ulang. Tidak ada yang didebit.
insufficient_scope403Kunci tidak memiliki izin yang diminta rute atau alat ini. Buat kunci dengan izin tersebut.
spending_limit_exceeded403Pesanan melampaui batas kunci: per pesanan (window: order) atau selama 24 jam (window: 24h). details.remaining memberikan sisanya. Tidak ada yang didebit.
not_found404Sumber daya tidak ditemukan, atau bukan milik organisasi Anda.
method_not_allowed405Server MCP: GET dan DELETE tidak diterima. Kirim setiap pesan JSON-RPC sebagai POST.
organization_financial_hold409Pembelian diblokir untuk organisasi Anda. Hubungi kami. Tidak ada yang didebit.
page_already_sold409Satu halaman di keranjang (penyisipan tautan) baru saja terjual. Hapus barisnya, lalu pesan ulang dengan Idempotency-Key baru.
cart_already_ordered409Satu baris keranjang sudah dipesan oleh pembelian lain (dasbor atau Idempotency-Key lain). Baca ulang keranjang sebelum memesan dengan nilai baru.
idempotency_conflict409Idempotency-Key ini sudah dipakai untuk pembelian lain. Gunakan nilai baru untuk pembelian baru.
not_ready409Audit belum siap. Tunggu status ready lewat get_audit, lalu tambahkan halaman.
full_pass_running409Laporan lengkap audit masih disiapkan. Coba lagi beberapa menit lagi. Tidak ada yang dimulai.
limit_reached409Audit sudah memiliki 8 halaman yang Anda tambahkan, termasuk analisis yang sedang berjalan. Tidak ada yang dimulai.
already_present409Halaman ini sudah ada di audit atau analisisnya sedang berjalan. Tidak ada yang dimulai.
already_ordered409Tautan terencana ini sudah dipesan dan tidak bisa dibatalkan lagi di sini.
not_cancellable409Tautan ini tidak bisa dibatalkan saat ini. Baca ulang dengan get_plan.
team_planned409Tautan ini dijadwalkan oleh tim kami, bukan melalui API: tautan ini tidak dapat dibatalkan di sini. Untuk mengubahnya, pemilik akun menghubungi dukungan.
payload_too_large413Isi permintaan melebihi 1 MB.
invalid_parameter422Parameter kueri tidak valid, berulang, atau tidak dikenal. details.fields menyebutkan setiap parameter yang salah dan alasannya.
invalid_arguments422Kombinasi argumen tidak valid, misalnya tanpa domain dan audit_id, atau keduanya sekaligus. details.field menyebut kolomnya. Tidak ada yang dilakukan.
invalid_domain422Domain atau URL tidak terbaca. Kirim nama domain, misalnya example.com.
own_network_domain422Domain ini bagian dari jaringan publikasi kami: tidak dapat diaudit. Tidak ada yang dijalankan.
invalid_body422Bidang tidak valid atau tidak dikenal di isi permintaan. details.fields menyebutkan setiap bidang yang salah dan alasannya.
product_not_available_via_api422API menjual artikel tamu dan penyisipan tautan. Produk lain dipesan dari dasbor.
image_not_uploaded422Gambar unggulan harus sudah diunggah ke GetLinkFast dari dasbor.
cart_empty422Tidak ada baris keranjang yang dapat dipesan lewat API. Tidak ada yang didebit.
cart_invalid422Beberapa baris tidak lengkap atau tidak lagi tersedia. details.items mencantumkan setiap baris dan masalahnya. Tidak ada yang didebit.
invalid_pack_input422Paket tidak mematuhi aturannya (details.reason). Tidak ada yang didebit.
site_unavailable422Situs ini tidak ada atau tidak lagi dijual.
target_page_required422Penyisipan tautan memerlukan page_id: ambil dari daftar halaman situs.
target_page_not_found422Halaman ini bukan milik situs ini.
target_page_sold422Halaman ini sudah terjual.
target_page_withdrawn422Halaman ini tidak lagi ditawarkan.
target_page_already_in_cart422Halaman ini sudah ada di keranjang Anda.
product_unavailable422Situs ini tidak menjual produk ini.
invalid_url422Alamat tidak terbaca. Kirim alamat http(s) lengkap, tanpa kredensial atau port.
other_site422Halaman ini tidak ada di domain yang diaudit. Kirim halaman dari situs yang sama.
invalid_keyword422Pencarian yang dibidik terlalu panjang: maksimal 120 karakter.
rate_limited429Terlalu banyak permintaan untuk kunci ini. Tunggu selama jumlah detik yang ditunjukkan header Retry-After lewat HTTP, atau details.retry_after_seconds dalam hasil alat MCP.
audit_quota_exceeded429Kunci ini sudah memulai 10 audit dalam 24 jam terakhir. Tidak ada yang dimulai: coba lagi nanti.
internal_error500Galat di pihak kami, sudah dilaporkan ke tim. Coba lagi nanti: pembelian yang diulang dengan Idempotency-Key yang sama tidak pernah didebit dua kali.
engine_unavailable502Mesin audit sementara tidak dapat dijangkau. Tidak ada yang dimulai: coba lagi nanti.
packs_unavailable503Paket SEO/GEO belum tersedia.
confirmation_expiredAlat MCPToken konfirmasi kedaluwarsa, atau keranjang, harga, atau kunci berubah sejak ringkasan. Tidak ada yang didebit: panggil alat lagi tanpa token untuk mendapatkan ringkasan baru.
purchase_unavailableAlat MCPPembelian lewat server MCP untuk sementara tidak tersedia. Tidak ada yang didebit. Coba lagi nanti.
unknown_toolAlat MCPAlat tidak dikenal, atau tidak diizinkan oleh izin kunci. tools/list memberikan alat yang tersedia.
audit_failedAlat MCPAudit ini gagal, jadi tidak ada rencana yang bisa dibuat. Mulai yang baru dengan run_audit. Tidak ada yang dilakukan.
audit_not_readyAlat MCPAudit ini belum selesai. Tunggu status ready lewat get_audit, lalu panggil plan_links lagi. Tidak ada yang dilakukan.
budget_too_lowAlat MCPAnggaran bulanan di bawah batas minimum 100 € per bulan. Tidak ada yang dilakukan.
start_date_too_farAlat MCPTanggal mulai terlalu jauh. Pesan menyebut tanggal terakhir yang diizinkan. Tidak ada yang dilakukan.
too_many_pagesAlat MCPSatu proyek mengikuti jumlah halaman yang terbatas. Kirim lebih sedikit halaman baru di target_urls. Tidak ada yang dilakukan.
plan_existsAlat MCPDomain ini sudah punya tautan terencana yang belum dipesan. Rencana tidak pernah digabung: hapus dengan cancel_planned_link, lalu mulai lagi. Tidak ada yang dilakukan.
pending_proposalsAlat MCPTim kami sedang meninjau tautan yang diusulkan untuk domain ini, jadi belum ada rencana yang dapat ditambahkan saat ini. details.count memberi jumlahnya dan details.retry_after tanggal setelah itu Anda dapat mencoba lagi (jika belum dijadwalkan sampai saat itu, tautan tersebut kedaluwarsa). Jika tidak, minta pemilik akun menghubungi dukungan. Tidak ada yang dilakukan.
no_links_foundAlat MCPTidak ada situs di katalog yang cocok dengan halaman ini pada anggaran bulanan ini. Coba halaman lain atau anggaran lebih tinggi. Tidak ada yang dilakukan.
plan_in_progressAlat MCPRencana ini sedang disimpan. Panggil plan_links lagi dengan token yang sama beberapa detik lagi untuk membaca hasilnya.
plan_outcome_unknownAlat MCPPenyimpanan terputus dan hasilnya tidak diketahui. Jangan konfirmasi lagi: baca rencana dengan get_plan.
plan_conflictAlat MCPRencana tidak lagi berlaku apa adanya: proyek domain berubah, tanggalnya tidak lagi jatuh dalam bulan anggaran (yang dimulai saat konfirmasi), atau salah satu situsnya tidak lagi tersedia untuk domain ini. details.reason menyebutkan yang mana. Tidak ada yang ditulis: panggil plan_links lagi tanpa token untuk ringkasan baru.
plan_retryAlat MCPPanggilan lain dengan token ini berakhir tanpa menyimpan rencana. Panggil plan_links lagi dengan token yang sama untuk membaca hasilnya.

Server MCP

Server MCP memberi agen AI Anda fungsi yang sama dengan API, dengan kunci yang sama. Alamatnya: https://www.getlinkfast.com/api/mcp.

Claude Code

Satu perintah di terminal Anda:

Terminal — Claude Code
claude mcp add --transport http getlinkfast https://www.getlinkfast.com/api/mcp --header "Authorization: Bearer glf_live_…"

Cursor

Di ~/.cursor/mcp.json. Hindari file .cursor/mcp.json milik proyek: file itu sering berakhir di repositori, bersama kuncinya.

~/.cursor/mcp.json
{
  "mcpServers": {
    "getlinkfast": {
      "url": "https://www.getlinkfast.com/api/mcp",
      "headers": {
        "Authorization": "Bearer glf_live_…"
      }
    }
  }
}

Claude Desktop

Claude Desktop tidak mengirim header khusus ke server jarak jauh, sehingga tidak dapat meneruskan kunci Anda. Ia akan terhubung langsung melalui koneksi OAuth yang direncanakan di versi mendatang. Untuk saat ini, gunakan Claude Code atau Cursor: keduanya mengirim kunci di header Authorization.

Alat

Agen hanya melihat alat yang diizinkan oleh izin kunci: kunci tanpa hak memesan tidak memiliki alat pembelian apa pun.

read
search_sitesget_sitelist_site_pageslist_categoriesget_accountlist_ordersget_orderget_auditquote_packlist_auditsget_plan
cart
get_cartadd_to_cartupdate_cart_itemremove_cart_itemadd_audit_pagerun_auditcancel_planned_link
purchase
checkoutorder_packplan_links

Pembelian dua langkah

  1. Agen memanggil checkout atau order_pack tanpa confirmation_token: tidak ada yang didebit. Agen menerima ringkasan (baris, total, saldo setelah debit, sisa batas) dan sebuah confirmation_token.
  2. Agen menunjukkan ringkasan itu kepada Anda. Jika Anda setuju, agen memanggil alat lagi dengan confirmation_token: pesanan dibuat dan didebit.
  3. Token berlaku 10 menit. Jika keranjang, harga, atau kunci berubah sementara itu, token ditolak (confirmation_expired) dan agen mengulang langkah 1. Memanggil lagi dengan token yang sama setelah gangguan mengembalikan pesanan yang sama, tanpa debit kedua.

Klien yang ditulis sendiri

Server tanpa sesi: setiap pesan JSON-RPC dikirim sebagai POST dan respons datang dalam JSON. Kirim Accept: application/json, text/event-stream dan Content-Type: application/json, jika tidak server membalas 406. GET dan DELETE membalas 405.

Menampilkan daftar alat untuk kunci Anda
curl -X POST https://www.getlinkfast.com/api/mcp \
  -H "Authorization: Bearer glf_live_…" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Audit dan perencanaan

Agen dapat mengaudit sebuah situs, lalu menyebar tautan selama beberapa bulan berdasarkan laporannya. Empat langkah, dengan alat server MCP.

  1. run_audit memulai audit lengkap sebuah domain: pemeriksaan teknis, visibilitas di ChatGPT, dan situs tempat tautan akan membantu. Butuh beberapa menit. Tidak ada yang didebit, dan laporan dibuka dengan kuota audit organisasi jika ada. Batas: 10 audit per kunci per 24 jam; meminta domain yang sama lagi dalam satu jam mengembalikan audit yang sudah ada.
  2. get_audit memberi status dan langkah saat ini, lalu laporan di summary saat status menjadi ready. Panggil setiap 30 sampai 60 detik. list_audits menampilkan audit organisasi, dari yang terbaru.
  3. plan_links menyusun kalender dari audit yang sudah siap: anggaran bulanan dalam euro tanpa PPN (minimal 100 €), 2 sampai 12 bulan, dan opsional tanggal mulai serta halaman tujuan. Seperti pembelian, ada dua langkah. Tanpa token tidak ada yang disimpan: agen menerima kalender (tautan, tanggal kirim, total) dan confirmation_token yang berlaku 10 menit. Setelah Anda setuju, agen memanggil alat itu lagi dengan kolom yang sama dan token tersebut, lalu rencana disimpan.
  4. get_plan mengikuti setiap tautan: halaman tujuan, anchor, harga, dan status (dijadwalkan, dipesan, diterbitkan, dibatalkan, atau gagal, dengan penyebab kegagalan seperti insufficient_credits). cancel_planned_link membatalkan tautan yang direncanakan melalui API, atau semua tautan domain yang belum dipesan. Tautan yang dijadwalkan oleh tim kami tetap di tempatnya: team_planned untuk satu tautan, skipped_team_planned untuk jumlahnya.

Tidak ada yang didebit saat rencana disimpan. Setiap tautan didebit dalam kredit pada hari pengirimannya, dengan harga yang dibaca ulang hari itu, saat proses harian pagi (sekitar 06:20 UTC). Jika saldo kurang hari itu, tautan tidak dipesan dan tampil gagal di get_plan. Tautan yang sudah dipesan tidak bisa dibatalkan lagi.

Hak akses: run_audit dan cancel_planned_link memerlukan cart, plan_links memerlukan purchase, dan get_audit, list_audits serta get_plan memerlukan read. Batas pengeluaran kunci berlaku juga untuk tautan yang direncanakan.

Di dasbor, halaman Delegasi menampilkan tautan ini di blok “Tautan terjadwal”. Pemilik organisasi dapat menghapus di sana tautan yang direncanakan lewat API. Tautan yang direncanakan tim kami hanya bisa dibaca.

Referensi

Setiap rute dengan izinnya dan alat MCP yang sesuai. Parameter, skema respons, dan galat per rute: deskripsi OpenAPI 3.1.

RuteIzinAlat MCPFungsi
GET /sitesreadsearch_sitesMencari di katalog: metrik, harga, kategori, bahasa, produk; pengurutan dan paginasi.
GET /sites/{id}readget_siteSatu situs: metrik, harga, dan aturan publikasi.
GET /sites/{id}/pagesreadlist_site_pagesHalaman situs yang terbuka untuk penyisipan tautan, dengan harga dan lalu lintas Google-nya.
GET /categoriesreadlist_categoriesKategori dan id-nya, untuk filter category.
GET /accountreadget_accountOrganisasi, saldo kredit, izin dan batas kunci, pengeluaran 24 jam.
GET /credits/transactionsreadtidak adaRiwayat kredit.
GET /ordersreadlist_ordersPesanan Anda, dapat difilter menurut status dan tanggal.
GET /orders/{id}readget_orderSatu pesanan dan barisnya, beserta statusnya.
GET /cart/itemscartget_cartKeranjang: baris, harga terkini, dan masalah yang menghambat.
POST /cart/itemscartadd_to_cartMenambahkan artikel tamu atau penyisipan tautan.
PATCH /cart/items/{id}cartupdate_cart_itemMelengkapi atau mengubah brief sebuah baris.
DELETE /cart/items/{id}cartremove_cart_itemMenghapus satu baris.
GET /audits/{id}readget_auditMembaca audit: status, langkah saat ini, lalu laporan.
POST /audits/{id}/pagescartadd_audit_pageMenambahkan satu halaman untuk didorong ke audit yang sudah siap (maksimal 8). Analisis berjalan 1 sampai 4 menit: pantau dengan get_audit. Tidak ada biaya yang dipotong.
POST /checkoutpurchasecheckoutMemesan keranjang dengan kredit.
POST /packs/quotereadquote_packMenghitung harga paket SEO/GEO, tanpa debit.
POST /packs/orderspurchaseorder_packMemesan paket SEO/GEO dengan kredit.
Hanya server MCPcartrun_auditMemulai audit lengkap sebuah domain. Tidak ada yang didebit.
Hanya server MCPreadlist_auditsMenampilkan audit organisasi, dari yang terbaru.
Hanya server MCPpurchaseplan_linksMerencanakan tautan untuk 2 sampai 12 bulan dari sebuah audit, dalam dua langkah. Tidak ada yang didebit saat disimpan.
Hanya server MCPreadget_planMembaca tautan terencana sebuah domain: tanggal kirim dan status masing-masing.
Hanya server MCPcartcancel_planned_linkMembatalkan satu tautan terencana, atau semua tautan sebuah domain yang belum dipesan.

Ada pertanyaan tentang API? Tulis kepada kami, anggota tim kami akan menjawab.