Skip to main content

Connectors API

Configure and manage data source connectors for metadata synchronization.

Endpoints Overview​

MethodEndpointDescription
GET/catalog/spaces/{slug}/connectorsList connectors
POST/catalog/spaces/{slug}/connectorsCreate connector
GET/catalog/spaces/{slug}/connectors/{id}Get connector
PATCH/catalog/spaces/{slug}/connectors/{id}Update connector
DELETE/catalog/spaces/{slug}/connectors/{id}Delete connector
POST/catalog/spaces/{slug}/connectors/{id}/syncTrigger sync
GET/catalog/spaces/{slug}/sync-historyGet sync history
POST/catalog/spaces/{slug}/connectors/{id}/dbt-manifestUpload dbt manifest

Supported Connector Types​

For the full list of connector types with UI metadata, see the Connector Types API.

TypeCategoryDescription
postgresScraperPostgreSQL
snowflakeScraperSnowflake Data Cloud
bigqueryScraperGoogle BigQuery
databricksScraperDatabricks Unity Catalog
dbtScraperdbt Cloud API Integration
dbt_manifestScraperdbt Manifest Upload
s3ScraperAmazon S3
supersetBIApache Superset
metabaseBIMetabase
lookerBILooker
tableauBITableau
power_biBIPower BI
sfmcSaaSSalesforce Marketing Cloud
salesforce_crmSaaSSalesforce CRM
zendeskSaaSZendesk Support
quality_postgresQualityPostgreSQL Quality Checks
quality_snowflakeQualitySnowflake Quality Checks
quality_bigqueryQualityBigQuery Quality Checks
query_postgresQueryPostgreSQL Query Execution
query_snowflakeQuerySnowflake Query Execution
query_bigqueryQueryBigQuery Query Execution
query_mysqlQueryMySQL Query Execution
query_databricksQueryDatabricks Query Execution
record_issue_tableQualityRow-level record issue sync from warehouse error tables

List Connectors​

GET /catalog/spaces/{slug}/connectors

Response​

[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Production Snowflake",
"connector_type": "snowflake",
"config": {
"account": "abc12345.us-east-1",
"database": "ANALYTICS",
"warehouse": "COMPUTE_WH"
},
"is_active": true,
"product_count": 142,
"last_sync": "2026-01-15T10:30:00Z",
"created_at": "2025-06-01T00:00:00Z"
}
]

Create Connector​

POST /catalog/spaces/{slug}/connectors

Request Body (Snowflake Example)​

{
"name": "Production Snowflake",
"connector_type": "snowflake",
"config": {
"account": "abc12345.us-east-1",
"database": "ANALYTICS",
"warehouse": "COMPUTE_WH",
"schema": "PUBLIC"
},
"credentials": {
"username": "service_account",
"password": "***"
}
}

Request Body (dbt Example)​

{
"name": "dbt Cloud",
"connector_type": "dbt",
"config": {
"project_name": "analytics"
}
}

Request Body (Record Issue Table Example)​

{
"name": "Orders Error Table",
"connector_type": "record_issue_table",
"config": {
"driver_source_type": "postgres",
"host": "warehouse.example.com",
"database": "analytics"
},
"sync_config": {
"source_key": "orders_error_table",
"auto_resolve_missing": true,
"record_issue_tables": [
{
"schema": "dq",
"table": "orders_errors",
"product_slug_column": "product_slug",
"primary_key_columns": ["order_id"],
"issue_key_column": "issue_key",
"title_column": "title",
"description_column": "description",
"severity_column": "severity",
"status_column": "status",
"category_column": "category",
"metadata_columns": ["rule_id", "batch_id"]
}
]
}
}

You can provide a read-only query instead of schema and table. Queries must start with SELECT or WITH; table and schema identifiers are quoted and validated before execution.


Trigger Sync​

POST /catalog/spaces/{slug}/connectors/{connector_id}/sync

Triggers a background metadata sync that:

  1. Connects to the source system
  2. Discovers tables/views
  3. Creates or updates products
  4. Syncs schema information

For record_issue_table connectors, the sync reads configured error tables, maps each row to an external record issue, and calls the record issue external sync flow. Missing records are resolved when auto_resolve_missing is enabled.

Response​

{
"job_id": "...",
"status": "running",
"started_at": "2026-01-15T10:30:00Z"
}

Sync History​

GET /catalog/spaces/{slug}/sync-history

Response​

{
"items": [
{
"id": "...",
"connector_id": "...",
"connector_name": "Production Snowflake",
"status": "completed",
"products_created": 5,
"products_updated": 12,
"started_at": "2026-01-15T10:30:00Z",
"completed_at": "2026-01-15T10:32:00Z"
}
],
"total": 25
}

Upload dbt Manifest​

POST /catalog/spaces/{slug}/connectors/{connector_id}/dbt-manifest
Content-Type: multipart/form-data

Upload a manifest.json file from dbt to import models.

curl -X POST "https://api.qarion.com/.../dbt-manifest" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "manifest_file=@target/manifest.json"

Error Responses​

StatusDescription
400Invalid configuration
401Invalid credentials
404Connector not found
409Sync already in progress