---
title: "Register a connector"
method: POST
path: "/v1/connectors"
tags: ["connectors"]
---

# Register a connector

`POST /v1/connectors`

## Request

- Base URL: `https://api.typenode.ai`
- URL: `https://api.typenode.ai/v1/connectors`
- Auth: HTTP bearer

## Request body

- RegisterConnector
  - `api_key_injection` object
    - `location` 'header' | 'query', required
    - `parameter_name` string, required
    - `prefix` string
  - `auth_method` 'none' | 'api_key' | 'basic' | 'bearer' | 'oauth2' | 'custom', required
  - `basic_username` string
  - `name` string, required
  - `oauth2` object
    - `authorize_url` string, required
    - `client_id` string
    - `grant_type` 'authorization_code' | 'client_credentials'
    - `pkce_required` boolean
    - `revocation_endpoint` string
    - `token_url` string, required
  - `quirks` object
    - `extra_authorize_params` object
    - `extra_token_params` object
    - `no_iss_param` boolean
    - `omit_resource_param` boolean
    - `omit_scope_param` boolean
  - `scopes` string[]
  - `secret` object
    - `api_key` string
    - `client_secret` string
    - `password` string
    - `token` string
  - `sensitive_url` boolean
  - `source` 'manual' | 'preset' | 'mcp_registry' | 'nango'
  - `source_ref` string
  - `static_headers` object
  - `transport` 'streamable_http' | 'sse' | 'auto'
  - `url` string, required

## Response `201`

The created connector — 201 when a row is persisted (direct register, or a completed OAuth). An oauth2 register still needing consent instead returns 200 with status "oauth_required" (covered by the RegisterConnectorResult union).

- union
  - object
    - `authorization_url` string, required
    - `status` 'oauth_required', required
  - object
    - `connector` Connector, required
      - `auth_method` 'none' | 'api_key' | 'basic' | 'bearer' | 'oauth2' | 'custom', required
      - `created_at` string, date-time, required
      - `creator_id` string, nullable, required
      - `descriptor` union, required
        - object
          - `auth_method` 'none', required
          - `endpoint` string, required
          - `quirks` object
            - `extra_authorize_params` object
            - `extra_token_params` object
            - `no_iss_param` boolean
            - `omit_resource_param` boolean
            - `omit_scope_param` boolean
          - `scopes` string[]
          - `source_ref` string
          - `transport` 'streamable_http' | 'sse' | 'auto', required
        - object
          - `api_key_injection` object, required
            - `location` 'header' | 'query', required
            - `parameter_name` string, required
            - `prefix` string
          - `auth_method` 'api_key', required
          - `endpoint` string, required
          - `quirks` object
            - `extra_authorize_params` object
            - `extra_token_params` object
            - `no_iss_param` boolean
            - `omit_resource_param` boolean
            - `omit_scope_param` boolean
          - `scopes` string[]
          - `source_ref` string
          - `transport` 'streamable_http' | 'sse' | 'auto', required
        - object
          - `auth_method` 'basic', required
          - `endpoint` string, required
          - `quirks` object
            - `extra_authorize_params` object
            - `extra_token_params` object
            - `no_iss_param` boolean
            - `omit_resource_param` boolean
            - `omit_scope_param` boolean
          - `scopes` string[]
          - `source_ref` string
          - `transport` 'streamable_http' | 'sse' | 'auto', required
        - object
          - `auth_method` 'bearer', required
          - `endpoint` string, required
          - `quirks` object
            - `extra_authorize_params` object
            - `extra_token_params` object
            - `no_iss_param` boolean
            - `omit_resource_param` boolean
            - `omit_scope_param` boolean
          - `scopes` string[]
          - `source_ref` string
          - `transport` 'streamable_http' | 'sse' | 'auto', required
        - object
          - `auth_method` 'oauth2', required
          - `authorize_url` string, required
          - `client_id` string
          - `endpoint` string, required
          - `grant_type` 'authorization_code' | 'client_credentials', required
          - `issuer` string
          - `quirks` object
            - `extra_authorize_params` object
            - `extra_token_params` object
            - `no_iss_param` boolean
            - `omit_resource_param` boolean
            - `omit_scope_param` boolean
          - `registration_mode` 'pre_registered' | 'cimd' | 'dcr' | 'manual', required
          - `resource` string
          - `revocation_endpoint` string
          - `scopes` string[]
          - `source_ref` string
          - `token_url` string, required
          - `transport` 'streamable_http' | 'sse' | 'auto', required
        - object
          - `auth_method` 'custom', required
          - `endpoint` string, required
          - `quirks` object
            - `extra_authorize_params` object
            - `extra_token_params` object
            - `no_iss_param` boolean
            - `omit_resource_param` boolean
            - `omit_scope_param` boolean
          - `scopes` string[]
          - `source_ref` string
          - `transport` 'streamable_http' | 'sse' | 'auto', required
      - `id` string, uuid, required
      - `last_verified_at` string, date-time, nullable, required
      - `name` string, required
      - `sensitive_url` boolean, required
      - `source` 'manual' | 'preset' | 'mcp_registry' | 'nango', required
      - `source_ref` string, nullable, required
      - `source_version` string, nullable, required
      - `static_headers` object, required
      - `status` 'active' | 'error' | 'needs_reauth' | 'disabled', required
      - `status_reason` string, nullable, required
      - `transport` 'streamable_http' | 'sse' | 'auto', required
      - `updated_at` string, date-time, required
      - `url` string, required
    - `status` 'connected', required
    - `warning` string

## Other responses

- `401`: Authentication required.
- `default`: An error occurred (RFC 9457 problem+json).

---

[API](https://skmtc.dev/typenode/apis/typenode-management-api.md) · [All operations](https://skmtc.dev/typenode/apis/typenode-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/typenode/apis/typenode-management-api/revisions/9b943024aa98?raw)
