---
title: "Create connector"
method: POST
path: "/api/connectors"
tags: ["Connectors"]
---

# Create connector

`POST /api/connectors`

Create a connector with the given data.

## Request body

- object
  - `config` object — The connector config object that will be passed to the connector. The config object should be compatible with the connector factory.
  - `connectorId` string, required — The connector factory ID for creating the connector.
  - `metadata` object — Custom connector metadata, will be used to overwrite the default connector factory metadata.
    - `target` string
    - `name` object — Validator function
    - `logo` string
    - `logoDark` string, nullable
  - `syncProfile` boolean — Whether to sync user profile from the identity provider to Logto at each sign-in. If `false`, the user profile will only be synced when the user is created.
  - `enableTokenStorage` boolean
  - `id` string — The unique ID for the connector. If not provided, a random ID will be generated.

## Response `200`

The created connector.

- object
  - `id` string, required
  - `syncProfile` boolean, required
  - `enableTokenStorage` boolean, required
  - `config` object, required — arbitrary
  - `metadata` object, required
    - `target` string
    - `name` object — Validator function
    - `logo` string
    - `logoDark` string, nullable
  - `connectorId` string, required
  - `target` string, required
  - `name` object, required — Validator function
  - `description` object, required — Validator function
  - `logo` string, required
  - `logoDark` string, nullable, required
  - `readme` string, required
  - `configTemplate` string
  - `formItems` union[]
    - union
      - object
        - `type` string, "Select", required
        - `selectItems` object[], required
          - `value` string, required
          - `title` string, required
        - `key` string, required
        - `label` string, required
        - `placeholder` string
        - `required` boolean
        - `defaultValue` unknown
        - `showConditions` object[]
          - `targetKey` string, required
          - `expectValue` unknown
        - `description` string
        - `tooltip` string
        - `isConfidential` boolean
        - `isDevFeature` boolean
      - object
        - `type` string, "MultiSelect", required
        - `selectItems` object[], required
          - `value` string, required
        - `key` string, required
        - `label` string, required
        - `placeholder` string
        - `required` boolean
        - `defaultValue` unknown
        - `showConditions` object[]
          - `targetKey` string, required
          - `expectValue` unknown
        - `description` string
        - `tooltip` string
        - `isConfidential` boolean
        - `isDevFeature` boolean
      - object
        - `type` 'Text' | 'Number' | 'MultilineText' | 'Switch' | 'Json', required
        - `key` string, required
        - `label` string, required
        - `placeholder` string
        - `required` boolean
        - `defaultValue` unknown
        - `showConditions` object[]
          - `targetKey` string, required
          - `expectValue` unknown
        - `description` string
        - `tooltip` string
        - `isConfidential` boolean
        - `isDevFeature` boolean
  - `customData` object
  - `fromEmail` string
  - `platform` 'Native' | 'Universal' | 'Web', nullable, required
  - `isStandard` boolean
  - `isTokenStorageSupported` boolean
  - `type` 'Email' | 'Sms' | 'Social', required
  - `isDemo` boolean
  - `extraInfo` object
  - `usage` number

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — The tenant has reached the maximum number of connectors.
- `422` — Invalid request body.

---

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