# Get all external web link types

`GET /api/configuration/externalweblinktypes`

- **Success:** `200 OK`
- **Products:** Operator (`FOH`)
- **Features:** Front of House Generic Access (`FOHGENERIC`)

HTML version: [Get all external web link types](https://support.gladstonesoftware.cloud/reference/configuration/get-all-external-web-link-types)

## Overview

Lists the categories that external web links can be filed under. An external web link is a URL the operator surfaces in their consumer-facing app — a tile on a home screen, for example — and its type says where in the app it appears. Call this before [the external web links list](get-all-external-web-links.md) so you can resolve each link's `linkTypeId` to a name, and before creating a link, because the create endpoint rejects a `linkTypeId` that does not exist here with `External Web Link Type Id '{id}' not found.`

A new tenant starts with a single type, `Home`. Operators can hold more, so do not treat one entry as the norm.

**`id` is not stable across tenants; `name` is the closer thing to a constant.** Ids are allocated per tenant, so the type called `Home` may be `1` in one tenant and something else in another. Gladstone itself recognises these types by name for exactly that reason. If you must recognise a specific type in code, match its `name` case-insensitively and resolve the id at run time.

Results come back in no guaranteed order, and there is no filter and no paging — every type is returned, and there is no active/inactive flag, so every type the operator has ever created is included. When none exist you get `200` with an empty array `[]`.

## Endpoint

`GET {base_url}/api/configuration/externalweblinktypes`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Sample request

```bash title="cURL"
curl -X GET '{base_url}/api/configuration/externalweblinktypes' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'
```

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].id` | integer (int32) | The type's identifier, and the value that appears as `linkTypeId` on each external web link. Allocated per tenant, so it is **specific to one tenant** — the same number means an unrelated type elsewhere. Never hard-code it; look it up by `name` instead. Required whenever you create or update a link, and a value that does not appear in this list is rejected with a `400`. |
| `[].name` | string | The type's label, such as `Home`. Maximum 255 characters and never `null`. Effectively the stable key for the starter types — Gladstone itself matches on it — so match here rather than on `id`, and do so case-insensitively since nothing enforces case. Uniqueness is not enforced, so treat duplicates as possible rather than impossible. |
| `[].allowMultiples` | boolean | Whether more than one external web link may be filed under this type. `true` on the starter `Home` type. Always present; never `null`. It is a hint for how to present the type in an administration screen — **it is not enforced when links are created or updated**, so creating a second link under a type where this is `false` will succeed rather than return a `400`. If you build an editor, enforce it yourself. |

## Sample response

```json title="200 OK"
[
  {
    "id": 12345,
    "name": "string",
    "allowMultiples": true
  }
]
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | Not returned in practice: the endpoint takes no parameters and applies no validation, so there is nothing to reject. Do not write a handler that expects a meaningful message. |
| `500` | Internal server error | Any unexpected server-side failure while reading the link types. The response is a bare status code with **no body**, so there is no detail to branch on. Retry with backoff. |
