---
title: "Create a connection"
method: POST
path: "/connections"
tags: ["Connections"]
---

# Create a connection

`POST /connections`

## Request

- Base URL: `https://api.superglue.cloud/v1`
- URL: `https://api.superglue.cloud/v1/connections`
- Auth: HTTP bearer

Inline OAuth configuration publishes a reusable organization app during creation. App selection copies configuration into the connection. App secrets are never returned.

## Request body

- union
  - object
    - `systemId` string, required: Connection namespace used in placeholders and tool steps.
    - `name` string
    - `url` string
    - `authentication` ConnectionAuthentication, required
      - `type` 'none' | 'api_key' | 'basic_auth' | 'oauth2' | 'connection_string', required
      - `oauthClientMode` 'managed' | 'dynamic' | 'custom'
      - `grantType` 'authorization_code' | 'client_credentials' | 'password' | 'service_account' | 'custom'
      - `clientId` string
      - `clientSecret` string
      - `authUrl` string
      - `tokenUrl` string
      - `scopes` string[]
      - `protocol` string
      - `config` object
    - `oauthAppId` string: Copies app configuration server-side before applying explicit authentication fields.
    - `credentials` object
    - `makeDefault` boolean
    - `tunnel` object, nullable
      - `tunnelId` string
    - `usageInstructions` string
  - object
    - `systemId` string, required: Connection namespace used in placeholders and tool steps.
    - `name` string
    - `url` string
    - `authentication` ConnectionAuthentication
      - `type` 'none' | 'api_key' | 'basic_auth' | 'oauth2' | 'connection_string', required
      - `oauthClientMode` 'managed' | 'dynamic' | 'custom'
      - `grantType` 'authorization_code' | 'client_credentials' | 'password' | 'service_account' | 'custom'
      - `clientId` string
      - `clientSecret` string
      - `authUrl` string
      - `tokenUrl` string
      - `scopes` string[]
      - `protocol` string
      - `config` object
    - `oauthAppId` string, required: Copies app configuration server-side before applying explicit authentication fields.
    - `credentials` object
    - `makeDefault` boolean
    - `tunnel` object, nullable
      - `tunnelId` string
    - `usageInstructions` string

## Response `200`

Connection created

- object
  - `data` Connection, required
    - `id` string, required
    - `name` string, required
    - `systemId` string, required
    - `userId` string, required
    - `url` string
    - `authentication` ConnectionAuthentication, required
      - `type` 'none' | 'api_key' | 'basic_auth' | 'oauth2' | 'connection_string', required
      - `oauthClientMode` 'managed' | 'dynamic' | 'custom'
      - `grantType` 'authorization_code' | 'client_credentials' | 'password' | 'service_account' | 'custom'
      - `clientId` string
      - `clientSecret` string
      - `authUrl` string
      - `tokenUrl` string
      - `scopes` string[]
      - `protocol` string
      - `config` object
    - `matchingOAuthAppId` string: App whose client ID and secret match the stored configuration.
    - `credentialKeys` object[], required
      - `key` string, required
      - `hasValue` boolean, required
    - `isDefault` boolean
    - `isOwner` boolean
    - `permission` 'viewer' | 'editor'
    - `tunnel` object
      - `tunnelId` string
    - `usageInstructions` string
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

---

[API](https://skmtc.dev/superglue/apis/superglue-api.md) - [All operations](https://skmtc.dev/superglue/apis/superglue-api/llms.txt) - [OpenAPI document](https://skmtc.dev/superglue/apis/superglue-api/revisions/2d412a94bf09?raw)
