Connectors
Returns all data connectors for the organisation. Credentials are never returned; only metadata (name, type, status, etc.). Results are filtered by organisationId from the auth context.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Successful response
Unauthorized
Forbidden
Too Many Requests; the response carries Retry-After
Internal Server Error
GET /api/v1/connectors HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"id": null,
"organisationId": "text",
"name": "text",
"type": "PostgreSQL",
"createdAt": "text",
"updatedAt": "text",
"status": "unconfigured",
"errorMessage": null
}
]
}Creates a new connector with name, type, and optional credentials. Stored in platform MongoDB; credentials are encrypted at rest. Connector starts in status "unconfigured" until used with browse/import/test.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Successful response
Bad Request
Unauthorized
Forbidden
Unprocessable Entity
Too Many Requests; the response carries Retry-After
Internal Server Error
POST /api/v1/connectors HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 48
{
"name": "text",
"type": "text",
"credentials": null
}{
"data": {
"id": null,
"organisationId": "text",
"name": "text",
"type": "PostgreSQL",
"createdAt": "text",
"updatedAt": "text",
"status": "unconfigured",
"errorMessage": null
}
}Returns a single connector by id. Credentials are stripped from the response. 404 if not in this organisation.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Path parameter: id
123Successful response
Unauthorized
Forbidden
Not Found
Too Many Requests; the response carries Retry-After
Internal Server Error
GET /api/v1/connectors/{id} HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": {
"id": null,
"organisationId": "text",
"name": "text",
"type": "PostgreSQL",
"createdAt": "text",
"updatedAt": "text",
"status": "unconfigured",
"errorMessage": null
}
}Permanently deletes the connector. Requires full permission. Does not delete sources or jobs created from prior imports.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Path parameter: id
123No Content
No content
Unauthorized
Forbidden
Not Found
Too Many Requests; the response carries Retry-After
Internal Server Error
DELETE /api/v1/connectors/{id} HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Updates connector name and/or credentials. Other fields (type, status) are managed by the system. updatedAt is set automatically.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Path parameter: id
123Successful response
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Too Many Requests; the response carries Retry-After
Internal Server Error
PATCH /api/v1/connectors/{id} HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 34
{
"name": "text",
"credentials": null
}{
"data": {
"id": null,
"organisationId": "text",
"name": "text",
"type": "PostgreSQL",
"createdAt": "text",
"updatedAt": "text",
"status": "unconfigured",
"errorMessage": null
}
}Returns the browse options at one level of the connector's hierarchy (e.g. databases, then tables, then columns). Pass the current level via level and the selected ancestors as additional query parameters (e.g. ?level=tables&database=sales, then ?level=columns&database=sales&table=orders; PostgreSQL uses schema instead of database). Any query parameter other than level and search is forwarded as browse context. Connector must exist and belong to the organisation.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Path parameter: id
123Hierarchy level to list, from the connector's browse hierarchy.
warehousesPossible values: Case-insensitive filter on option values/labels.
exampleBrowse context: parent database (MySQL/ClickHouse/Snowflake).
exampleBrowse context: parent schema (PostgreSQL/Snowflake).
exampleBrowse context: parent table, for level=columns.
exampleBrowse context: warehouse (Snowflake).
exampleSuccessful response
Payload not declared in this repo
Bad Request
Unauthorized
Forbidden
Not Found
Too Many Requests; the response carries Retry-After
Internal Server Error
GET /api/v1/connectors/{id}/browse?level=warehouses HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": "text"
}Starts an import job from the connector into a workspace. Body: workspaceId, config (the connector-specific selection: {table} or a custom {query} for SQL connectors like Snowflake/PostgreSQL/MySQL/ClickHouse, {path} for storage, {object, fields} for CRM connectors — connectorId and type are filled in from the route), optional datasetName, ontologyMode (auto | manual, default auto), and webhookUrl for a completion callback. Returns 202 with jobId; import runs asynchronously — poll jobs or sources to track progress. Use preview-query to validate custom SQL before importing.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Path parameter: id
123Workspace the imported source lands in
Name for the created source (defaults to the table/query name)
Whether ontology analysis runs automatically after import (default auto)
Optional URL called once when the import completes
Accepted; poll the linked resource for completion
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Too Many Requests; the response carries Retry-After
Internal Server Error
POST /api/v1/connectors/{id}/import HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 146
{
"workspaceId": "text",
"config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"datasetName": null,
"ontologyMode": "auto",
"webhookUrl": "https://example.com"
}{
"data": {
"jobId": "text",
"status": "text",
"createdAt": "text",
"links": {
"self": "text",
"cancel": "text"
}
}
}Reads the first rows of a connector dataset and returns them, or the underlying error verbatim — what to call before committing to a full import. Point it at a browsed dataset ({table} plus database/schema/warehouse for SQL connectors, {database, collection} for MongoDB, {path} for storage), or pass {query} to preview custom SQL instead; connectorId and type are filled in from the route. Optional limit defaults to 50 and is capped at 1000. Storage previews read only the head of the object, so previewing a large file is cheap. Read-only against the external system; nothing is stored.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Path parameter: id
123Row cap for the preview (default 50, max 1000)
Successful response
Payload not declared in this repo
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
Too Many Requests; the response carries Retry-After
Internal Server Error
POST /api/v1/connectors/{id}/preview-query HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 59
{
"config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"limit": 1
}{
"data": "text"
}Proxies to data-service integrations test. Validates that the connector's credentials and configuration can reach the external source. Does not modify data. Use before import to avoid failed jobs.
An API key (pk_...) created on the Organisation API page, or an OAuth access token. Every operation requires one.
Path parameter: id
123Successful response
Payload not declared in this repo
Unauthorized
Forbidden
Not Found
Too Many Requests; the response carries Retry-After
Internal Server Error
POST /api/v1/connectors/{id}/test HTTP/1.1
Host: sandbox.rootcause.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": "text"
}Last updated

