Skip to main content

GET /api/v1/connectors

List all connectors for the current tenant. Supports cursor-based pagination.

Query Parameters

ParameterTypeDefaultDescription
limitinteger20Max results per page (max 100)
cursorstringCursor for pagination (ID of last item from previous page)

Response

{
  "data": [
    {
      "id": "conn_001",
      "name": "Production Snowflake",
      "type": "snowflake",
      "description": "Main data warehouse",
      "config": { "account": "xy12345.us-east-1", "warehouse": "COMPUTE_WH", "database": "ANALYTICS" },
      "authMethod": "access_key",
      "status": "active",
      "lastTestedAt": "2026-03-15T10:30:00.000Z",
      "lastError": null,
      "createdAt": "2026-01-10T08:00:00.000Z",
      "updatedAt": "2026-03-15T10:30:00.000Z"
    }
  ],
  "total": 12,
  "hasMore": false
}
The authConfig field is never returned in list or detail responses to prevent secret leakage.

POST /api/v1/connectors

Create a new connector.

Request Body

FieldTypeRequiredDescription
namestringYesUnique connector name
typestringYesConnector type (see supported types below)
descriptionstringNoHuman-readable description
configobjectNoType-specific configuration (host, port, bucket, etc.)
authMethodstringNoAuthentication method. Default: "access_key"
authConfigobjectNoCredentials (encrypted at rest, never returned in responses)

Supported Connector Types

TypeRequired Config Fields
postgresql, mysql, redshifthost, port, database
snowflakeaccount, warehouse, database
databrickshost, httpPath
bigqueryproject, dataset
mongodbhost or connectionString
kafka, confluent_kafkabootstrapServers
aws_s3bucket, region
gcsbucket, project
azure_blobcontainer, storageAccount
sftphost, port
rest_api, webhookurl
amazon_kinesisstreamName, region
salesforce, hubspotinstanceUrl or apiKey

Example

curl -X POST https://playground.kaireonai.com/api/v1/connectors \
  -H "Content-Type: application/json" \
  -H "X-Tenant-Id: my-tenant" \
  -d '{
    "name": "Customer Data Warehouse",
    "type": "snowflake",
    "config": {
      "account": "xy12345.us-east-1",
      "warehouse": "COMPUTE_WH",
      "database": "ANALYTICS"
    },
    "authMethod": "access_key",
    "authConfig": {
      "username": "svc_kaireon",
      "password": "secret"
    }
  }'
Response: 201 Created with the connector object (excluding authConfig).

PUT /api/v1/connectors

Update an existing connector. Only provided fields are updated.

Request Body

FieldTypeRequiredDescription
idstringYesConnector ID
namestringNoUpdated name
typestringNoUpdated type
descriptionstringNoUpdated description
configobjectNoUpdated configuration
authMethodstringNoUpdated auth method
authConfigobjectNoUpdated credentials (re-encrypted)
statusstringNoUpdated status
Response: 200 OK with the updated connector (excluding authConfig).

DELETE /api/v1/connectors

Delete a connector by ID.

Query Parameters

ParameterTypeRequiredDescription
idstringYesConnector ID to delete
Response: 204 No Content

POST /api/v1/connectors/test

Test a connector’s connection by performing a real probe (TCP, HTTP, or SDK-specific check). Rate limited to 100 requests per 60 seconds.

Request Body

FieldTypeRequiredDescription
idstringYesID of the connector to test

Response

{
  "id": "conn_001",
  "name": "Production Snowflake",
  "type": "snowflake",
  "status": "active",
  "lastTestedAt": "2026-03-16T14:30:00.000Z",
  "lastError": null,
  "authConfig": { "username": "sv***vc", "password": "****" }
}
The test endpoint:
  • Validates required configuration fields for the connector type
  • Performs a real connection probe (TCP for databases, HTTP HEAD for REST/webhook, bucket checks for cloud storage)
  • Updates the connector’s status to "active" (success) or "error" (failure)
  • Uses a circuit breaker to prevent hammering failed connectors
  • Includes SSRF protection (blocks private IPs, validates DNS resolution)
  • Returns masked authConfig values (first 2 + last 2 characters visible)

Error Responses

StatusCause
400Missing id or invalid JSON
404Connector not found
429Rate limit exceeded

Roles

EndpointAllowed Roles
GET /connectorsadmin, editor, viewer
POST /connectorsadmin, editor
PUT /connectorsadmin, editor
DELETE /connectorsadmin, editor
POST /connectors/testadmin, editor
See also: Data Platform