Skip to main content
A connector links Ardent to one Postgres source server. The safest API flow is the same as the CLI flow: preflight first, fix anything preflight reports, then create the connector.

Public lifecycle

StepEndpointNotes
Preflight sourcePOST /v1/connectors/preflightChecks source readiness without creating a connector
Create connectorPOST /v1/connectorsStores connector configuration and starts setup
Discover schemaPOST /v1/connectors/{connector_id}/discoverStarts async discovery when needed
Select tables/schemasPOST /v1/connectors/{connector_id}/selectionSets selected paths
Submit replica decisionsPUT /v1/connectors/{connector_id}/replica-identity-decisionsResolves table identity choices
Start setupPOST /v1/connectors/{connector_id}/engine-setupStarts async setup
Inspect connectorGET /v1/connectors/{connector_id}Returns status and readiness information
List connectorsGET /v1/connectorsLists connectors in scope
Update connectorPUT /v1/connectors/{connector_id}Updates supported settings
Delete connectorDELETE /v1/connectors/{connector_id}Deletes the connector

Preflight a source

curl -H "Authorization: Bearer $ARDENT_TOKEN"   -X POST https://api.tryardent.com/v1/connectors/preflight   -H 'Content-Type: application/json'   -d '{"org_id":"org_123","service_name":"postgresql","connection_details":{"url":"postgresql://user:***@host:5432/mydb"},"selected_schemas":["public","billing"]}'
Preflight does not create a connector. It checks reachability, writer status, logical replication settings, slot capacity, plugin availability, permissions, and whether the source is already connected.

Create a connector

curl -H "Authorization: Bearer $ARDENT_TOKEN"   -X POST https://api.tryardent.com/v1/connectors   -H 'Content-Type: application/json'   -d '{"org_id":"org_123","project_id":"project_123","name":"prod-db","service_name":"postgresql","connection_details":{"url":"postgresql://user:***@host:5432/mydb"}}'
For private-network or customer-owned environments, include the environment and private connection IDs that your Ardent team has provisioned:
{
  "byoc": true,
  "environment_id": "env_123",
  "private_link_id": "epl_123"
}

Replica identity decisions

If Ardent reports tables that need a decision, submit a table-to-decision map:
curl -H "Authorization: Bearer $ARDENT_TOKEN"   -X PUT https://api.tryardent.com/v1/connectors/conn_123/replica-identity-decisions   -H 'Content-Type: application/json'   -d '{"decisions":{"public.audit_events":"exclude","public.invoice_line_items":"replica_identity_full"}}'
Decision values:
ValueMeaning
excludeDo not replicate this table yet
add_pkYou will add a primary key or valid unique key on source before retrying
replica_identity_fullOpt into REPLICA IDENTITY FULL for this table

Async setup and discovery

Discovery and setup can return an operation ID. Poll it until terminal:
curl -H "Authorization: Bearer $ARDENT_TOKEN" https://api.tryardent.com/v1/operations/op_123
See Operations.

Delete a connector

curl -H "Authorization: Bearer $ARDENT_TOKEN"   -X DELETE https://api.tryardent.com/v1/connectors/conn_123
By default, Ardent waits for in-progress replication work to finish before deletion. Use force-delete behavior only when your Ardent workflow explicitly supports it and you understand the cleanup impact.