Forkorter en mål-URL til en kort lenke som du deretter kan bruke i meldingsteksten eller i BulkGate-portalen.

## API-URL

URL for sending av HTTP-forespørsler:

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

> [!NOTE]
> Hvis forespørselen ikke når frem, gjentar du den på [reserveserveren](https://www.bulkgate.com/no/dokumentasjon/api-administrasjon/api-reserveserver/) `backup1.bulkgate.com`.

## Støttede HTTP-metoder

- `POST` - `application/json`

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

> [!NOTE]
> API-et har en kvote på `20` forespørsler per minutt.

## Parametertabell

| PARAMETERNAVN     | VERDI | OBLIGATORISK | STANDARDVERDI |
|:------------------|:------|:----------|:--------------|
| application_id    | [Applikasjons-ID](https://www.bulkgate.com/no/dokumentasjon/api-administrasjon/administrasjon-av-api/) | **Ja** | - | 
| application_token | [Autentiseringstoken for applikasjonen](https://www.bulkgate.com/no/dokumentasjon/api-administrasjon/api-token/) | **Ja** | - |
| target_url        | URL-en som skal forkortes | **Ja** | - |
| url_type          | Domenet for den korte lenken, se [Støttede domener](#stottede-domener) | Nei | `ur7.wf` |

### Støttede domener

Verdiene for `url_type` er en del av instanskonfigurasjonen og kan endres – den gjeldende listen for kontoen din returneres av [endepunktet `domains`](https://www.bulkgate.com/no/dokumentasjon/lenkeforkorter/lenkeforkorter-tilgjengelige-domener/). I skrivende stund:

| DOMENE              | BEGRENSNING FOR MÅLADRESSEN                               |
|:--------------------|:----------------------------------------------------------|
| `ur7.wf`            | Ingen begrensning. Standardverdi.                         |
| `ms6.fr`            | Ingen begrensning.                                        |
| `ur7.yt`            | Kun måldomener på hvitelisten.                            |
| `ur7.tf`            | Kun måldomener på hvitelisten.                            |
| `ms6.wf`            | Kun måldomener på hvitelisten.                            |
| `ms6.tf`            | Kun måldomener på hvitelisten.                            |
| `track-message.com` | Kun måldomener på hvitelisten.                            |

For de begrensede domenene må måladressen stå på hvitelisten for kontoen din, ellers mislykkes forespørselen med `domain_is_not_white_listed`. Noen få offentlige tjenester (Google, YouTube, Facebook, GitHub med flere) står alltid på hvitelisten.

## Eksempel på forespørsel

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

{
  "application_id": 451,
  "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
  "target_url": "www.bulkgate.com",
  "url_type": "ur7.wf"
}
```

## Svar

**Ved suksess:**

```json
{
    "data": {
        "short_url": "http://ur7.wf/W",
        "target_url": "http://www.bulkgate.com/",
        "final_url": "http://www.bulkgate.com",
        "title": "SMS & other channels for business communication | BulkGate",
        "expiration": "2026-10-10T09:00:00+02:00"
    }
}
```

Lenker som opprettes via API-et, er gyldige i **30 dager** – `expiration` inneholder utløpsdatoen i ISO 8601.

De tre URL-feltene er ikke det samme:

| FELT         | VERDI                                                                                                    |
|:-------------|:---------------------------------------------------------------------------------------------------------|
| `short_url`  | Selve den forkortede lenken, satt sammen av `url_type` og den genererte nøkkelen                         |
| `target_url` | Adressen slik den ble lagret – skjemaet legges til hvis det mangler, og URL-en normaliseres, så `www.bulkgate.com` blir til `http://www.bulkgate.com/` |
| `final_url`  | Adressen du sendte, bare med skjemaet lagt til. **Videresendinger følges ikke**, så dette er ikke siden besøkende havner på |
| `title`      | Tittel lest fra målsiden                                                                                 |


**Ved feil:**

```json
{
    "type": "url_is_not_valid",
    "code": 400,
    "error": "Url is not valid",
    "detail": null
}
```

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

Der:

- **type** og **error** (beskrivelse av feilen) finner du i [tabellen over feiltyper](https://www.bulkgate.com/no/dokumentasjon/api-administrasjon/api-feiltyper/)
- **code** er HTTP-feilkoden
- **detail** er tilleggsinformasjon om feilen

### Feiltyper i Shortener API

I tillegg til de [generelle typene](https://www.bulkgate.com/no/dokumentasjon/api-administrasjon/api-feiltyper/) returnerer Shortener API sine egne:

| TYPE                                    | NÅR DET SKJER                                                          |
|:----------------------------------------|:-----------------------------------------------------------------------|
| `url_is_not_valid`                      | `target_url` kunne ikke tolkes.                                        |
| `url_type_is_incorrect`                 | `url_type` finnes ikke i domenelisten for kontoen.                     |
| `domain_is_not_white_listed`            | Måldomenet står ikke på hvitelisten (for begrensede domener).          |
| `url_is_not_allowed`                    | Måladressen peker til en lokal/intern adresse.                         |
| `url_can_not_be_redirected_out_of_target_domain` | Måladressen videresender utenfor sitt eget domene.            |
| `url_can_not_be_created`                | Lenken kunne ikke opprettes.                                           |
| `the_per_minute_quota_has_been_exceeded`| Kvoten på 20 forespørsler per minutt er brukt opp.                     |
