---
title: "List Destination Type Schemas"
method: GET
path: "/destination-types"
tags: ["Schemas"]
---

# List Destination Type Schemas

`GET /destination-types`

Returns a list of JSON-based input schemas for each available destination type.

## Response `200`

A list of destination type schemas.

- DestinationTypeSchema[]
  - `type` string
  - `label` string
  - `description` string
  - `icon` string — SVG icon string.
  - `instructions` string — Markdown instructions.
  - `setup_link` object — Some destinations may have an OAuth flow or other managed-setup flow that can be triggered with a link. If a `setup_link` is set then the user should be prompted to follow the link to configure the destination. See the [building your own UI guide](https://outpost.hookdeck.com/guides/building-your-own-ui.mdx) for recommended UI patterns and wireframes for implementation in your own app.
    - `href` string, url, required — The URL to direct the user to for setup.
    - `cta` string, required — The call-to-action button text to display to the user.
  - `config_fields` DestinationSchemaField[] — Config fields are non-secret values that can be stored and displayed to the user in plain text.
    - `key` string, required — Property name for this value inside the destination `config` or `credentials` object on create/update (for example `url` for a webhook endpoint URL). This is the key used to store and retrieve the field value in the destination's config or credentials object.
    - `type` 'text' | 'checkbox' | 'key_value_map' | 'select', required
    - `label` string
    - `description` string
    - `required` boolean, required
    - `sensitive` boolean — Indicates if the field contains sensitive information.
    - `default` string — Default value for the field.
    - `minlength` integer — Minimum length for a text input.
    - `maxlength` integer — Maximum length for a text input.
    - `pattern` string — Regex pattern for validation (compatible with HTML5 pattern attribute).
    - `options` object[] — Available options for select fields.
      - `label` string, required
      - `value` string, required
  - `credential_fields` DestinationSchemaField[] — Credential fields are secret values that will be AES encrypted and obfuscated to the user. Some credentials may not be obfuscated; the destination type dictates the obfuscation logic.
    - `key` string, required — Property name for this value inside the destination `config` or `credentials` object on create/update (for example `url` for a webhook endpoint URL). This is the key used to store and retrieve the field value in the destination's config or credentials object.
    - `type` 'text' | 'checkbox' | 'key_value_map' | 'select', required
    - `label` string
    - `description` string
    - `required` boolean, required
    - `sensitive` boolean — Indicates if the field contains sensitive information.
    - `default` string — Default value for the field.
    - `minlength` integer — Minimum length for a text input.
    - `maxlength` integer — Maximum length for a text input.
    - `pattern` string — Regex pattern for validation (compatible with HTML5 pattern attribute).
    - `options` object[] — Available options for select fields.
      - `label` string, required
      - `value` string, required

## Other responses

- `401` — Missing or invalid authentication credentials.
- `500` — Unexpected server error.

---

[API](https://skmtc.net/hookdeck/apis/outpost-api.md) · [All operations](https://skmtc.net/hookdeck/apis/outpost-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hookdeck/outpost-api/revisions/506c7bcee34b/schema)
