Gibt die Liste der Kurzdomains zurück, die Ihrem Konto zur Verfügung stehen. Die Werte aus dieser Liste gehören in den Parameter `url_type`, wenn Sie [einen Link kürzen](https://www.bulkgate.com/de/dokumentation/url-kuerzer/url-kuerzer-url-kuerzen/).

## API-URL

URL zum Senden der HTTP-Anfragen:

```url
https://portal.bulkgate.com/api/1.0/shortener/domains
```

> [!NOTE]
> Erreicht die Anfrage ihr Ziel nicht, wiederholen Sie sie auf dem [Backup-Server](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/backup-server/) `backup1.bulkgate.com`.

## Unterstützte HTTP-Methoden

- `POST` - `application/json`

```http
POST /api/1.0/shortener/domains HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
```

> [!NOTE]
> Die API hat ein Kontingent von `20` Anfragen pro Minute.

## Parametertabelle

| PARAMETERNAME     | WERT                                                                           | PFLICHT   | STANDARDWERT  |
|:------------------|:---------------------------------------------------------------------------------|:----------|:--------------|
| application_id    | [Anwendungs-ID](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-verwaltung/)                                   | **Ja**    | -             | 
| application_token | [Authentifizierungstoken der Anwendung](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-tokens/)                  | **Ja**    | -             |
| variant           | Form der Antwort – `list`, `key_value` oder `label_value`, siehe [Antwortformen](#antwortformen) | Nein      | `list`        |

### Antwortformen

Alle drei Varianten enthalten dieselben Domains und unterscheiden sich nur in der Struktur – wählen Sie diejenige, die Ihr Formular direkt verarbeitet.

| WERT          | FORM VON `data`                                            |
|:--------------|:-----------------------------------------------------------|
| `list`        | Ein Array von Zeichenketten.                               |
| `key_value`   | Ein Objekt, bei dem sowohl Schlüssel als auch Wert die Domain sind. |
| `label_value` | Ein Array von Objekten `{"label": …, "value": …}`.          |

> [!NOTE]
> Die Liste ist nicht für jedes Konto gleich. Sie enthält auch Ihre [eigenen Domains](https://www.bulkgate.com/de/hilfe-center/kampagne/url-kuerzer/), sofern Sie welche haben, und diese stehen an erster Stelle – die erste Domain der Liste ist zugleich diejenige, die `shorten` verwendet, wenn Sie `url_type` weglassen.

## Beispielanfrage

```http-json
POST /api/1.0/shortener/domains HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
  "application_id": 451,
  "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
  "variant": "list"
}
```

## Antwort

**Bei Erfolg:**

```json
{
    "data": [
        "ur7.wf",
        "ms6.fr",
        "ur7.yt",
        "ur7.tf",
        "ms6.wf",
        "ms6.tf",
        "track-message.com"
    ]
}
```

Dieselbe Liste in der Variante `key_value`:

```json
{
    "data": {
        "ur7.wf": "ur7.wf",
        "ms6.fr": "ms6.fr"
    }
}
```

Und in der Variante `label_value`:

```json
{
    "data": [
        {"label": "ur7.wf", "value": "ur7.wf"},
        {"label": "ms6.fr", "value": "ms6.fr"}
    ]
}
```

**Bei einem Fehler:**

```json
{
    "type": "the_per_minute_quota_has_been_exceeded",
    "code": 400,
    "error": "The per minute quota has been exceeded",
    "detail": null
}
```

Dabei gilt:

- **type** und **error** (Beschreibung des Fehlers) finden Sie in der [Tabelle der Fehlertypen](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-fehlertypen/)
- **code** ist der HTTP-Fehlercode
- **detail** enthält zusätzliche Informationen zum Fehler

### Fehlertypen der Shortener API

Neben den [allgemeinen Typen](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-fehlertypen/) gibt dieser Endpunkt eigene zurück:

| TYP                                     | WANN ER AUFTRITT                                                       |
|:----------------------------------------|:-----------------------------------------------------------------------|
| `the_per_minute_quota_has_been_exceeded`| Das Kontingent von 20 Anfragen pro Minute ist ausgeschöpft.            |
