# Dokumentasi API LocalSERP Proxy

> REST API LocalSERP Proxy di localserpproxy.com/api: kunci API, error, batas, dan endpoint untuk saldo, isi saldo, pesanan, dan proxy.

- URL: https://localserpproxy.com/id/docs/api/
- Terakhir diperbarui: 2026-10-15
- Publisher: LocalSERP Proxy (https://localserpproxy.com)

Semua aktivitas di akun Anda bisa dibuat skripnya: cek saldo, isi saldo dengan crypto, beli paket, buat kredensial proxy, dan ganti IP seluler. JSON melalui HTTPS, satu kunci API, contoh dengan curl, Python, dan Node.js.

## Bagaimana cara menggunakan API LocalSERP Proxy?

**Jawaban singkat**

Kirim permintaan HTTPS ke `https://localserpproxy.com/api/v1` dengan kunci API di header `Authorization: Bearer API_KEY`. Buat kunci di [halaman developer](https://localserpproxy.com/app/developer?lang=id) akun Anda (atau dengan `POST /v1/api-keys`) dan berikan hanya cakupan yang diperlukan. Permintaan dan respons menggunakan JSON; error selalu dikirim sebagai `{ "error": { "code", "message" } }`.

## Ringkasan

| Atribut | Nilai |
| --- | --- |
| URL dasar | `https://localserpproxy.com/api/v1` |
| Format | JSON melalui HTTPS, UTF-8 |
| Autentikasi | Kunci API: `Authorization: Bearer API_KEY` |
| Cakupan kunci API | `read`, `proxies`, `billing` |
| Mata uang | USD dalam bentuk string dengan 2 angka desimal (`"29.00"`) |
| Jumlah kripto | String desimal, bukan float (`"0.00045210"`) |
| Lalu lintas | Byte (1 GB = 1.000.000.000 byte) |
| Tanggal | ISO 8601 dalam UTC (`2026-10-05T14:03:11Z`) |
| Versi | `/v1` di setiap path |

## Autentikasi

Setiap permintaan selain katalog publik harus menyertakan API key: `Authorization: Bearer API_KEY`. Key ditampilkan secara lengkap **sekali**, saat Anda membuatnya: simpan seperti kata sandi. Anda dapat mencabut key kapan saja; permintaan yang menggunakan key tersebut kemudian akan menghasilkan `401 unauthorized`.

### Cakupan

Berikan setiap key hanya akses yang dibutuhkan skrip Anda. Key tanpa cakupan yang diperlukan akan menghasilkan `403 forbidden`.

| Cakupan | Akses yang diberikan |
| --- | --- |
| `read` | membaca semua data (akun, saldo, layanan, penggunaan). |
| `proxies` | ubah pengaturan dan kredensial proxy (label, perpanjangan otomatis, kata sandi baru), kelola subpengguna, kelola daftar izin IP, dan rotasi port seluler (termasuk tautan rotasi). |
| `billing` | buat pesanan dan isi saldo, lalu bayar menggunakan saldo. |

Satu-satunya pengecualian adalah **tautan rotasi seluler**, yang dirancang untuk dipanggil dari bookmark browser atau `curl` biasa: `GET https://localserpproxy.com/api/v1/mobile/PORT_ID/rotate?key=API_KEY` (kunci dengan cakupan `proxies`). Lihat [Port seluler dan rotasi IP](https://localserpproxy.com/id/docs/api/mobile/).

*Periksa saldo Anda*

```bash
curl -s "https://localserpproxy.com/api/v1/balance" \
  -H "Authorization: Bearer $API_KEY"
```

## Permintaan dan respons

- **JSON masuk, JSON keluar**: kirim `Content-Type: application/json` dengan isi permintaan.
- **Daftar** yang dapat bertambah menggunakan paginasi dengan `page` (mulai dari 1) dan `perPage` (1–100, default 20), lalu mengembalikan `{ "data": [...], "pagination": { "page", "perPage", "total", "totalPages" } }`. Daftar pendek mengembalikan `{ "data": [...] }`.
- **ID** adalah string buram dengan awalan tipe: `ord_` (pesanan), `top_` (isi saldo), `txn_` (pergerakan saldo), `res_` (langganan trafik), `mob_` (port seluler), `key_` (kunci API), dan `ipw_` (entri daftar izin IP).
- **Coba ulang dengan aman**: `POST /v1/orders` dan `POST /v1/topups` menerima header `Idempotency-Key` (string unik apa pun, disimpan selama 24 jam). Mengirim ulang kunci yang sama akan mengembalikan respons pertama, bukan melakukan pembelian atau isi saldo dua kali.
- **Contoh** menunjukkan format setiap jawaban: ID, IP, jumlah, dan tanggal di dalamnya hanya ilustrasi; ID paket dan harganya adalah yang sebenarnya.

## Error

Semua error memiliki isi yang sama. `code` bersifat tetap dan ditujukan untuk kode Anda; `message` adalah kalimat dalam bahasa Inggris yang dapat berubah. Error validasi mencantumkan setiap kolom yang tidak valid di `fields`. Kode baru dapat ditambahkan: tangani kode yang tidak dikenal sebagai kegagalan umum.

*422 validation_failed*

```json
{
  "error": {
    "code": "validation_failed",
    "message": "Some fields are invalid.",
    "fields": [
      {
        "field": "amountUsd",
        "code": "too_small",
        "message": "The minimum top-up is 25.00 USD."
      }
    ],
    "requestId": "req_2b7c0f"
  }
}
```

### Kode status

| Status | Arti |
| --- | --- |
| `422` | `validation_failed`: satu atau beberapa kolom tidak valid. |
| `401` | `unauthorized`: token tidak ada, tidak valid, atau sudah kedaluwarsa. |
| `402` | `insufficient_balance`: saldo tidak mencukupi untuk pesanan. `details` = `InsufficientBalanceDetails`. |
| `403` | `forbidden`: kunci API tidak memiliki cakupan yang diperlukan, atau akun ditangguhkan. |
| `404` | `not_found`: sumber daya tidak ada atau milik akun lain. |
| `409` | `conflict` (atau kode yang lebih spesifik): tindakan tidak dapat dilakukan dalam kondisi saat ini. |
| `429` | `rate_limited` atau `rotation_too_soon`. |

## Batas laju

Setiap respons menyertakan `RateLimit-Limit`, `RateLimit-Remaining`, dan `RateLimit-Reset`. Jika batas terlampaui, API merespons dengan `429 rate_limited` dan header `Retry-After` (detik): tunggu selama waktu tersebut, lalu coba lagi. IP pada port proxy seluler dapat diganti paling sering setiap 30 detik (`429 rotation_too_soon`, dengan `Retry-After`).

## Referensi API

- **[Akun dan saldo](https://localserpproxy.com/id/docs/api/account/)** — Baca pengaturan akun, saldo USD prabayar, dan setiap pergerakan saldo tersebut (isi saldo, pembelian, pengembalian dana).
- **[Isi saldo dengan kripto](https://localserpproxy.com/id/docs/api/top-ups/)** — Isi saldo dengan kripto: dapatkan alamat deposit dan jumlah yang tepat, kirim jumlah tersebut persis, laporkan bahwa pembayaran telah dikirim (ID transaksi opsional), lalu pantau proses isi saldo hingga dana masuk. Saldo dapat digunakan untuk membayar paket apa pun.
- **[Pesanan](https://localserpproxy.com/id/docs/api/orders/)** — Lihat daftar paket dan harganya, beli paket menggunakan saldo (layanan baru, tambahan trafik, atau perpanjangan port), dan lihat pesanan sebelumnya.
- **[Proxy residensial dan kredensial](https://localserpproxy.com/id/docs/api/residential/)** — Kelola langganan trafik (proxy residensial dan proxy 4G/5G berotasi per GB): kredensial proxy, subpengguna dengan kredensial dan batas trafik sendiri, penggunaan harian, serta lokasi yang dapat ditargetkan melalui nama pengguna proxy.
- **[Port seluler dan rotasi IP](https://localserpproxy.com/id/docs/api/mobile/)** — Port khusus 4G/5G: ganti IP sekarang atau sesuai jadwal, gunakan tautan rotasi, dan lihat penggunaan trafik harian.
- **[Kunci API dan daftar izin IP](https://localserpproxy.com/id/docs/api/api-keys/)** — Buat dan cabut kunci API dengan cakupan terbatas, serta kelola daftar izin IP: hingga 10 IP sumber diizinkan menggunakan proxy tanpa nama pengguna dan kata sandi.

> **Pembayaran melalui skrip** Paket selalu dibayar dari saldo USD prabayar. Isi saldo dengan kripto (minimum 25.00 USD) melalui POST /v1/topups, lalu beli melalui POST /v1/orders. Keduanya dapat dilakukan dalam satu panggilan: pengisian saldo dapat menyertakan pesanan di purchase, dan paket dibeli segera setelah saldo pengisian dikreditkan.

---

LocalSERP Proxy: LocalSERP Proxy adalah layanan proxy residensial AS untuk memeriksa hasil pencarian lokal, iklan, dan harga kota demi kota, dengan pembayaran kripto tanpa mengunggah dokumen identitas.
