POST /v1/connect/connectors

Create a connector and optionally link it to a project. Use type with complete provider data, or use service with connectionMethod so Connect can supply the type, endpoints, templates, and defaults.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Query parameters

Name Type Required Description
teamId String No

The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.

slug String No

The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.

Request body fields

Name Type Required Description
projectId String No

Project to connect during creation. If environments is omitted, the connection uses development, preview, and production.

uid String No

Optional team-scoped unique identifier for the connector. If omitted or empty, Connect generates a value.

triggers Boolean No

Whether the triggers are enabled for this connector.

service String No

Service slug or URL for which the connector is used. Required when connectionMethod is set. Service alone does not enable preset configuration.

events[] Array No

Default trigger events for this connector.

environments[] Array No

Environments for the project connection. Requires projectId. Use one or more built-in environment names or stable custom environment IDs that belong to the project. Duplicate values are accepted and removed.

data Object Yes

Provider configuration. With type, provide the complete configuration for that type. With service and connectionMethod, provide only credentials and preferences; Connect supplies the type, endpoints, templates, and defaults. Other connector types accept an arbitrary object.

accentColor String No

Branding accent color (6-digit hex, for example

params Object No

Values for the selected connection method's template fields. Requires connectionMethod.

name String No

Connector name. The value is trimmed and cannot contain control characters. If omitted or empty, the project name is used. A name or projectId is required. API key connectors require name.

connectionMethod String No

Connection method slug of the service. Use it with service to select preset configuration.

target String No

Which of the service's targets this connector is for. Requires "connectionMethod" and must be one that method serves. Optional.

type String No

Connector implementation type for full configuration. Known types: api-key, discord, github, linear, linq, microsoft-entra, oauth, photon, salesforce, sendblue, slack, snowflake, snowflake-wif. Optional when service and connectionMethod select the type.

backgroundColor String No

Branding background color (6-digit hex, for example

icon String No

SHA-1 digest of a PNG or JPEG icon that is at least 640 by 640 pixels. This field does not accept a URL or image bytes.

First compute the digest and upload the raw image with POST /v2/files. Send Content-Length and the same 40-character digest in x-vercel-digest. Then set icon to that digest.

import { createHash } from 'node:crypto';
import { readFile } from 'node:fs/promises';

const VERCEL_TOKEN = process.env.VERCEL_TOKEN;
const connectorId = 'scl_...';
const bytes = await readFile('icon.png');
const digest = createHash('sha1').update(bytes).digest('hex');

await fetch('https://api.vercel.com/v2/files', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${VERCEL_TOKEN}`,
    'Content-Type': 'application/octet-stream',
    'Content-Length': String(bytes.length),
    'x-vercel-digest': digest,
  },
  body: bytes,
});

await fetch(`https://api.vercel.com/v2/connect/connectors/${connectorId}`, {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${VERCEL_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ icon: digest }),
});
triggerDestination Object No

Initial trigger destination. Requires triggers to be enabled and a projectId here or at the top level. Connector responses expose the resulting set as triggerDestinations. Replace the complete set with PATCH /v1/connect/connectors/{connector}/trigger-destinations.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.