# Detail daftar koneksi

`GET /account/api/v1/residential/lists/{id}`

## Otorisasi

`Authorization: Bearer YOUR_ARNPROXY_API_KEY`

`Accept: application/json`

Izin yang diperlukan: `read + optional credentials`

## Parameter

| Nama | Tipe | Wajib / Bersyarat | Nilai bawaan | Keterangan |
|---|---|---|---|---|
| `id` (path) | integer | Wajib | — | ID catatan milik sendiri untuk operasi ini; 1–2147483647. Bukan nomor pesanan tampilan atau ID penyedia. |
| `include_credentials` (query) | string | Opsional | `"0"` | "0" atau "1"; bawaan "0". "1" memerlukan izin credentials dan layanan aktif. |

## Contoh permintaan

### curl

```curl
printf 'Authorization: Bearer %s\n' "$ARNPROXY_API_KEY" |
  curl --silent --show-error --header @- \
    --header 'Accept: application/json' \
    --connect-timeout 10 --max-time 30 \
    'https://www.arnproxy.com/account/api/v1/residential/lists/YOUR_LIST_ID'
```

### python

```python
import os, requests

headers = {"Authorization": "Bearer " + os.environ["ARNPROXY_API_KEY"]}
response = requests.get(
    "https://www.arnproxy.com/account/api/v1/residential/lists/YOUR_LIST_ID",
    headers=headers,
    timeout=(10, 30), allow_redirects=False
)
print(response.status_code, response.text)
# No automatic write retry.
```

### javascript

```javascript
const headers = { Authorization: `Bearer ${process.env.ARNPROXY_API_KEY}` };
const response = await fetch("https://www.arnproxy.com/account/api/v1/residential/lists/YOUR_LIST_ID", {
  method: 'GET', headers, redirect: 'error',
  signal: AbortSignal.timeout(30000)
});
console.log(response.status, await response.text());
// A write timeout is ambiguous; query its saved operation.
```

### php

```php
<?php
$headers = ['Accept: application/json',
    'Authorization: Bearer '.getenv('ARNPROXY_API_KEY')];
$ch = curl_init('https://www.arnproxy.com/account/api/v1/residential/lists/YOUR_LIST_ID');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_SSL_VERIFYPEER => true, CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_TIMEOUT => 30,
]);
$result = curl_exec($ch);
if ($result === false) {
    // Do not repeat a write; use the original operation key.
    throw new RuntimeException('Transport result unknown');
}
echo curl_getinfo($ch, CURLINFO_HTTP_CODE).PHP_EOL.$result;
curl_close($ch);
```

### go

```go
package main

import (
  "fmt"
  "io"
  "net/http"
  "os"
  "time"
)

func main() {
  client := &http.Client{Timeout: 30*time.Second,
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
      return http.ErrUseLastResponse
    }}
  var body io.Reader
  req, err := http.NewRequest("GET", "https://www.arnproxy.com/account/api/v1/residential/lists/YOUR_LIST_ID", body)
  if err != nil { panic(err) }
  req.Header.Set("Authorization", "Bearer "+os.Getenv("ARNPROXY_API_KEY"))
  res, err := client.Do(req); if err != nil { panic(err) }
  defer res.Body.Close()
  data, err := io.ReadAll(res.Body); if err != nil { panic(err) }
  fmt.Println(res.StatusCode, string(data))
}
```

### csharp

```csharp
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;

using var handler = new HttpClientHandler { AllowAutoRedirect = false };
using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };
using var request = new HttpRequestMessage(HttpMethod.Get,
    "https://www.arnproxy.com/account/api/v1/residential/lists/YOUR_LIST_ID");
request.Headers.Authorization = new AuthenticationHeaderValue(
    "Bearer", Environment.GetEnvironmentVariable("ARNPROXY_API_KEY"));
using var response = await client.SendAsync(request);
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());
// Never automatically retry an ambiguous write.
```

### java

```java
import java.net.URI;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;

// Inside your application method:
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder(URI.create("https://www.arnproxy.com/account/api/v1/residential/lists/YOUR_LIST_ID"))
    .header("Authorization", "Bearer " + System.getenv("ARNPROXY_API_KEY"))
    .header("Accept", "application/json")
    .GET()
    .build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
```

## Respons · HTTP 200

```json
{
  "ok": true,
  "data": {
    "id": 30001,
    "package_id": 20001,
    "order_id": 20001,
    "title": "Example connection list",
    "package_state": "active",
    "snapshot": {
      "source": "arnproxy_records",
      "observed_at": "2030-01-01T12:00:00+00:00",
      "fresh": true,
      "max_age_seconds": 3600,
      "reason": null
    },
    "connection": {
      "host": "res.arnproxy.com",
      "first_port": 10000,
      "port_count": 10
    },
    "authentication": "login_password",
    "target": {
      "country": "US",
      "region": "",
      "city": "",
      "isp": ""
    },
    "rotation": {
      "type": "interval",
      "seconds": 0
    },
    "credential_read_available": true,
    "management_available": true,
    "management_actions": [
      "rename",
      "rotation",
      "delete"
    ]
  },
  "meta": {
    "request_id": "000000000000000000000001",
    "phase": "public_v1",
    "source": "arnproxy_records"
  }
}
```

| Nama | Tipe | Bersyarat | Keterangan |
|---|---|---|---|
| `ok` | boolean | — | Penanda berhasil; jika false, periksa error.code. |
| `data` | object | — | Hasil khusus operasi; contoh bersifat ilustratif dan sintetis. |
| `data.id` | integer | — | ID catatan ARNPROXY terkait; gunakan alih-alih ID internal penyedia. |
| `data.package_id` | integer | — | ID catatan ARNPROXY terkait; gunakan alih-alih ID internal penyedia. |
| `data.order_id` | integer | — | ID catatan ARNPROXY terkait; gunakan alih-alih ID internal penyedia. |
| `data.title` | string | — | Nilai khusus operasi untuk title. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.package_state` | string | — | Nilai khusus operasi untuk package state. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.snapshot` | object | — | Sumber/waktu/kesegaran snapshot paket; snapshot lama tidak memberi akses pengelolaan. |
| `data.snapshot.source` | string | — | Sumber data; catatan lokal dan kueri penyedia langsung merupakan bukti berbeda. |
| `data.snapshot.observed_at` | string | — | Stempel waktu sesuai representasi API; tanggal contoh sintetis. |
| `data.snapshot.fresh` | boolean | — | Apakah pengamatan memenuhi jendela kesegarannya. |
| `data.snapshot.max_age_seconds` | integer | — | Usia pengamatan maksimum agar dianggap segar, dalam detik. |
| `data.snapshot.reason` | string|null | — | Kode alasan tetap atau null, bukan teks kesalahan penyedia mentah. |
| `data.connection` | object | — | Host daftar, port pertama, dan jumlah port; dapat null jika pengamatan tidak valid. |
| `data.connection.host` | string | — | Nilai khusus operasi untuk host. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.connection.first_port` | integer | — | Awal atau ukuran rentang port koneksi. |
| `data.connection.port_count` | integer | — | Awal atau ukuran rentang port koneksi. |
| `data.authentication` | string | — | Mode autentikasi daftar: login_password atau ip_auth. |
| `data.target` | object | — | Nilai khusus operasi untuk target. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.target.country` | string | — | Nilai khusus operasi untuk country. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.target.region` | string | — | Nilai khusus operasi untuk region. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.target.city` | string | — | Nilai khusus operasi untuk city. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.target.isp` | string | — | Nilai khusus operasi untuk isp. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.rotation` | object | — | Nilai khusus operasi untuk rotation. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.rotation.type` | string | — | Nilai khusus operasi untuk type. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.rotation.seconds` | integer | — | Rotasi tercatat/diminta dalam detik; paket Rotating dan daftar Residential punya aturan berbeda. |
| `data.credential_read_available` | boolean | — | Nilai khusus operasi untuk credential read available. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.management_available` | boolean | — | Ketersediaan sesuai syarat/izin, bukan jaminan stok atau penyedia. |
| `data.management_actions` | array | — | Nilai khusus operasi untuk management actions. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.management_actions[]` | string | — | Nilai khusus operasi untuk management actions. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `meta` | object | — | Metadata korelasi permintaan dan sumber data. |
| `meta.request_id` | string | — | ID korelasi permintaan HTTP ini, bukan kunci operasi atau ID pesanan. |
| `meta.phase` | string | — | Nilai khusus operasi untuk phase. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `meta.source` | string | — | Sumber data; catatan lokal dan kueri penyedia langsung merupakan bukti berbeda. |
| `data.credentials` | object | Bersyarat | Hanya dengan include_credentials=1, izin credentials, paket aktif, dan daftar login_password. |
| `data.credentials.username` | string | Bersyarat | Nama pengguna daftar koneksi. |
| `data.credentials.password` | string | Bersyarat | Kata sandi daftar koneksi. |
| `data.authorized_ips` | string[]|null | Bersyarat | Dapat dikembalikan untuk daftar IP-auth dengan izin residential_management. |

## Perilaku & catatan penting

- ID paket/daftar adalah catatan ARNPROXY, bukan kunci penyedia. Snapshot usang tidak memberi akses; gunakan residential_package_refresh bila perlu.
- Keluaran berkredensial memerlukan izin credentials. Jangan catat atau kirim string koneksi, kata sandi, atau header Authorization ke dukungan.

Autentikasi dan validasi dapat menolak permintaan sebelum dijalankan. Lihat referensi kesalahan dan simpan request_id untuk dukungan. Jangan kirim kunci atau kata sandi.

[Kesalahan & batas](https://docs.arnproxy.com/id/api-v1/errors)
