# Periksa cakupan akses

`GET /account/api/v1/proxies/{id}/access`

## Otorisasi

`Authorization: Bearer YOUR_ARNPROXY_API_KEY`

`Accept: application/json`

Izin yang diperlukan: `proxy_management`

## 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. |

## 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/proxies/YOUR_PROXY_ID/access'
```

### python

```python
import os, requests

headers = {"Authorization": "Bearer " + os.environ["ARNPROXY_API_KEY"]}
response = requests.get(
    "https://www.arnproxy.com/account/api/v1/proxies/YOUR_PROXY_ID/access",
    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/proxies/YOUR_PROXY_ID/access", {
  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/proxies/YOUR_PROXY_ID/access');
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/proxies/YOUR_PROXY_ID/access", 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/proxies/YOUR_PROXY_ID/access");
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/proxies/YOUR_PROXY_ID/access"))
    .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": {
    "proxy_id": 12345,
    "proxy_ids": [
      12345
    ],
    "revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "verified_at": "2030-01-01T12:00:00+00:00",
    "username": null,
    "authorized_ips": [],
    "credential_rules": {
      "username_min_length": 8,
      "username_max_length": 8,
      "password_min_length": 10,
      "password_max_length": 10,
      "generated_username_length": 8,
      "generated_password_length": 10,
      "characters": "ASCII_ALPHANUMERIC"
    },
    "credential_role": "primary",
    "primary_credentials_managed_by": "admin",
    "credentials_change_available": false,
    "credentials_delete_available": false,
    "credentials_change_requires_new_username": false,
    "credential_management_unavailable_reason": "PRIMARY_CREDENTIAL_ADMIN_ONLY",
    "supplemental_credentials_available": false,
    "authorized_ip_add_available": true,
    "authorized_ip_remove_available": true,
    "authorized_ip_families": [
      4,
      6
    ],
    "ip_management_unavailable_reason": null,
    "group_change_required": true,
    "source": "provider_verified_scope",
    "authorization_scope": "upstream_order",
    "may_affect_other_proxies": false,
    "ip_records_customer_owned": true
  },
  "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.proxy_id` | integer | — | ID catatan ARNPROXY terkait; gunakan alih-alih ID internal penyedia. |
| `data.proxy_ids` | array | — | ID proxy dalam cakupan yang terlihat bagi akun ini. |
| `data.proxy_ids[]` | integer | — | ID proxy dalam cakupan yang terlihat bagi akun ini. |
| `data.revision` | string | — | Sidik kesegaran untuk disalin tanpa perubahan ke perubahan/konfirmasi harga terkait. |
| `data.verified_at` | string | — | Stempel waktu sesuai representasi API; tanggal contoh sintetis. |
| `data.username` | string|null | — | Kredensial sensitif sesuai izin dan layanan; jangan dicatat atau dibagikan. |
| `data.authorized_ips` | string[] | — | Nilai khusus operasi untuk authorized ips. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_rules` | object | — | Nilai khusus operasi untuk credential rules. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_rules.username_min_length` | integer | — | Nilai khusus operasi untuk username min length. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_rules.username_max_length` | integer | — | Nilai khusus operasi untuk username max length. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_rules.password_min_length` | integer | — | Nilai khusus operasi untuk password min length. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_rules.password_max_length` | integer | — | Nilai khusus operasi untuk password max length. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_rules.generated_username_length` | integer | — | Nilai khusus operasi untuk generated username length. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_rules.generated_password_length` | integer | — | Nilai khusus operasi untuk generated password length. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_rules.characters` | string | — | Nilai khusus operasi untuk characters. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_role` | string | — | Nilai khusus operasi untuk credential role. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.primary_credentials_managed_by` | string | — | Nilai khusus operasi untuk primary credentials managed by. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credentials_change_available` | boolean | — | Nilai khusus operasi untuk credentials change available. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credentials_delete_available` | boolean | — | Nilai khusus operasi untuk credentials delete available. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credentials_change_requires_new_username` | boolean | — | Nilai khusus operasi untuk credentials change requires new username. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.credential_management_unavailable_reason` | string | — | Nilai khusus operasi untuk credential management unavailable reason. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.supplemental_credentials_available` | boolean | — | Nilai khusus operasi untuk supplemental credentials available. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.authorized_ip_add_available` | boolean | — | Nilai khusus operasi untuk authorized ip add available. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.authorized_ip_remove_available` | boolean | — | Nilai khusus operasi untuk authorized ip remove available. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.authorized_ip_families` | array | — | Nilai khusus operasi untuk authorized ip families. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.authorized_ip_families[]` | integer | — | Nilai khusus operasi untuk authorized ip families. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.ip_management_unavailable_reason` | string|null | — | Nilai khusus operasi untuk ip management unavailable reason. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.group_change_required` | boolean | — | Nilai khusus operasi untuk group change required. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `data.source` | string | — | Sumber data; catatan lokal dan kueri penyedia langsung merupakan bukti berbeda. |
| `data.authorization_scope` | string | — | Cakupan otorisasi; operasi pesanan/paket dapat memengaruhi penetapan lain. |
| `data.may_affect_other_proxies` | boolean | — | Penetapan lain dapat terdampak karena cakupan paket/pesanan. |
| `data.ip_records_customer_owned` | boolean | — | Nilai khusus operasi untuk ip records customer owned. 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. |

## Perilaku & catatan penting

- Tindakan dapat berlaku pada seluruh grup otorisasi, misalnya pesanan atau paket, bukan hanya proxy terpilih. Periksa proxy_ids, authorization_scope, dan may_affect_other_proxies sebelum melanjutkan. Ambil revision baru jika cakupan berubah.
- Daftar izin di Akun saya → API menentukan alamat yang boleh menggunakan kunci API dan dikelola dari halaman akun. IP resmi proxy menentukan alamat yang boleh terhubung ke proxy. Kedua pengaturan ini tidak saling mengubah.

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)
