Skip to main content
POST
/
orgs
/
{org_id}
/
connectors
/
{connector_id}
/
syncs
`POST /orgs/{org_id}/connectors/{connector_id}/syncs`
curl --request POST \
  --url https://api.timbal.ai/orgs/{org_id}/connectors/{connector_id}/syncs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "dest_table": "<string>",
  "interval_secs": 123,
  "kb_id": 123,
  "source": {
    "connection_ref": "<string>",
    "cursor_column": "<string>",
    "table": "<string>",
    "kind": "postgres",
    "columns": [
      "<string>"
    ],
    "schema": "<string>"
  },
  "name": "<string>"
}
'
{
  "sync_id": "<string>"
}

Authorizations

Authorization
string
header
required

Timbal API key. Obtain your API key from the Timbal platform settings. See Authentication for more information.

Path Parameters

org_id
string
required
connector_id
string
required

Body

application/json
dest_table
string
required

Destination table inside the KB. Must not pre-exist: the first run creates it, later runs append.

interval_secs
integer<int64>
required

Seconds between run starts. The scheduler ticks every 30s, so smaller values effectively mean "every tick".

kb_id
integer<int64>
required

Target KB (numeric id, same as the /k2 routes).

source
object
required

The source half of a dispatch, tagged by kind. Each variant maps to a SourceSpec and gates on the connector advertising the matching source:<kind> capability. Request shape: "source": { "kind": "sql_server", "connection_ref": "...", "table": "...", "cursor_column": "..." }.

name
string | null

Operator label.

Response

Sync created

sync_id
string
required