---
title: "Create a Connect authorization request"
method: POST
path: "/v1/connect/authorize/{connector}"
tags: ["connect"]
---

# Create a Connect authorization request

`POST /v1/connect/authorize/{connector}`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v1/connect/authorize/{connector}`
- Auth: HTTP bearer

Create an authorization request for a connector and return the URL and verifier details needed to complete the flow.

## Path parameters

- `connector` string, required

## Request body

- object
  - `subject` union
    - object
      - `type` 'app', required
    - object
      - `type` 'user', required
      - `id` string
      - `issuer` string
    - object
      - `type` 'jwt-bearer', required
      - `sub` string
      - `iss` string
      - `aud` string
      - `additionalClaims` object
    - object
      - `type` 'token', required
      - `token` string, required
  - `installationId` string
  - `audience` string[]
  - `scopes` string[]
  - `resources` string[]
  - `authorizationDetails` object[]
    - `type` string
  - `validityBufferMs` number
  - `returnUrl` string
  - `webhook` string
  - `prompt` string
  - `deviceCode` boolean
  - `expiresInMs` number
  - `additionalParams` object

## Response `200`

- object
  - `connector` object, required
    - `displayName` string, required: Provider-facing display name when the connector type exposes one, falling back to the stored connector name.
    - `id` string, required: Client id (e.g. `scl_…`).
    - `name` string, required: The connector's own name: the operator-given client name, falling back to the client type's name for legacy rows without one.
    - `service` string: Resolved service id when known (e.g. `salesforce`), following the `stored.service ?? typeDef.service ?? stored.type` convention.
    - `serviceName` string: Curated display name of the resolved service (e.g. "Salesforce"), present when the service is a known service. Suited for end-user surfaces like "Sign in with {serviceName}".
    - `type` string, required: Client type (e.g. `oauth`, `salesforce`).
    - `uid` string, required: Client uid (e.g. `salesforce/my-org`).
  - `deviceCode` string
  - `expiresAt` number, required
  - `request` string, required
  - `url` string, required
  - `verifier` string, required

## Other responses

- `400`: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid.
- `401`: The request is not authorized.
- `403`: You do not have permission to access this resource.
- `404`
- `409`
- `410`
- `422`
- `500`

## Changes

- **2026-10-23** `831b9cdd2d65`: 1 info
  - added the non-success response with the status `500`
- **2026-10-03** `2c463a1d98b1`: 1 info
  - added the non-success response with the status `409`
- **2026-09-29** `8ef4901ffe83`: 2 info
  - added the non-success response with the status `422`
  - removed the non-success response with the status `501`
- **2026-09-22** `4f8704cf40ba`: 1 info
  - added the non-success response with the status `501`
- **2026-08-26** `279c61d463bf`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v1/connect/authorize/:connector/post.md)

---

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