# Zugriffsumfang prüfen

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

## Autorisierung

`Authorization: Bearer YOUR_ARNPROXY_API_KEY`

`Accept: application/json`

Erforderliche Berechtigung: `proxy_management`

## Parameter

| Name | Typ | Erforderlich / Bedingt | Standardwert | Beschreibung |
|---|---|---|---|---|
| `id` (path) | integer | Erforderlich | — | Eigene Datensatz-ID für diesen Vorgang; 1–2147483647. Keine angezeigte Bestellnummer oder Anbieter-ID. |

## Anfragebeispiel

### 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());
```

## Antworten · 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"
  }
}
```

| Name | Typ | Bedingt | Beschreibung |
|---|---|---|---|
| `ok` | boolean | — | Erfolgskennzeichen; bei false error.code prüfen. |
| `data` | object | — | Vorgangsspezifisches Ergebnis; Beispiele sind synthetisch und dienen der Veranschaulichung. |
| `data.proxy_id` | integer | — | Zugehörige ARNPROXY-Datensatz-ID statt interner Anbieter-ID verwenden. |
| `data.proxy_ids` | array | — | Proxy-IDs im für dieses Konto sichtbaren Umfang. |
| `data.proxy_ids[]` | integer | — | Proxy-IDs im für dieses Konto sichtbaren Umfang. |
| `data.revision` | string | — | Aktualitätskennung unverändert an die zugehörige Änderung/Preisbestätigung zurückgeben. |
| `data.verified_at` | string | — | Zeitstempel im vom API gelieferten Format; Beispieldaten sind synthetisch. |
| `data.username` | string|null | — | Sensible Zugangsdaten unter Berechtigungs- und Dienstbedingungen; nie protokollieren oder teilen. |
| `data.authorized_ips` | string[] | — | Vorgangsspezifischer Wert für authorized ips. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_rules` | object | — | Vorgangsspezifischer Wert für credential rules. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_rules.username_min_length` | integer | — | Vorgangsspezifischer Wert für username min length. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_rules.username_max_length` | integer | — | Vorgangsspezifischer Wert für username max length. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_rules.password_min_length` | integer | — | Vorgangsspezifischer Wert für password min length. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_rules.password_max_length` | integer | — | Vorgangsspezifischer Wert für password max length. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_rules.generated_username_length` | integer | — | Vorgangsspezifischer Wert für generated username length. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_rules.generated_password_length` | integer | — | Vorgangsspezifischer Wert für generated password length. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_rules.characters` | string | — | Vorgangsspezifischer Wert für characters. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_role` | string | — | Vorgangsspezifischer Wert für credential role. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.primary_credentials_managed_by` | string | — | Vorgangsspezifischer Wert für primary credentials managed by. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credentials_change_available` | boolean | — | Vorgangsspezifischer Wert für credentials change available. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credentials_delete_available` | boolean | — | Vorgangsspezifischer Wert für credentials delete available. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credentials_change_requires_new_username` | boolean | — | Vorgangsspezifischer Wert für credentials change requires new username. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.credential_management_unavailable_reason` | string | — | Vorgangsspezifischer Wert für credential management unavailable reason. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.supplemental_credentials_available` | boolean | — | Vorgangsspezifischer Wert für supplemental credentials available. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.authorized_ip_add_available` | boolean | — | Vorgangsspezifischer Wert für authorized ip add available. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.authorized_ip_remove_available` | boolean | — | Vorgangsspezifischer Wert für authorized ip remove available. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.authorized_ip_families` | array | — | Vorgangsspezifischer Wert für authorized ip families. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.authorized_ip_families[]` | integer | — | Vorgangsspezifischer Wert für authorized ip families. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.ip_management_unavailable_reason` | string|null | — | Vorgangsspezifischer Wert für ip management unavailable reason. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.group_change_required` | boolean | — | Vorgangsspezifischer Wert für group change required. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `data.source` | string | — | Datenquelle; lokale Datensätze und Live-Anbieterabfragen sind unterschiedliche Nachweise. |
| `data.authorization_scope` | string | — | Autorisierungsumfang; Bestell-/Paketaktionen können andere Zuordnungen beeinflussen. |
| `data.may_affect_other_proxies` | boolean | — | Andere Zuordnungen können durch den paket-/bestellweiten Umfang betroffen sein. |
| `data.ip_records_customer_owned` | boolean | — | Vorgangsspezifischer Wert für ip records customer owned. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `meta` | object | — | Metadaten zu Anfragezuordnung und Datenquelle. |
| `meta.request_id` | string | — | Kennung dieser HTTP-Anfrage, kein Vorgangsschlüssel oder Bestell-ID. |
| `meta.phase` | string | — | Vorgangsspezifischer Wert für phase. Rückgabetyp beibehalten und Verhaltenshinweise beachten. |
| `meta.source` | string | — | Datenquelle; lokale Datensätze und Live-Anbieterabfragen sind unterschiedliche Nachweise. |

## Verhalten & wichtige Hinweise

- Eine Aktion kann die gesamte Berechtigungsgruppe, etwa eine Bestellung oder ein Paket, betreffen, nicht nur den gewählten Proxy. Vorher proxy_ids, authorization_scope und may_affect_other_proxies prüfen. Bei geändertem Umfang eine neue revision abrufen.
- Die Freigabeliste unter Mein Konto → API legt fest, welche Adressen den API-Schlüssel verwenden dürfen; sie wird auf der Kontoseite verwaltet. Die IP-Freigabe eines Proxys bestimmt dagegen, welche Adressen sich mit dem Proxy verbinden dürfen. Beide Einstellungen sind unabhängig.

Authentifizierung und Validierung können eine Anfrage vor der Ausführung ablehnen. Beachten Sie die Fehlerreferenz und bewahren Sie request_id für den Support auf. Senden Sie niemals Schlüssel oder Passwörter.

[Fehler & Limits](https://docs.arnproxy.com/de/api-v1/errors)
