Weld ELT Syncs API
The ELT Syncs API from Weld — 8 operation(s) for elt syncs.
The ELT Syncs API from Weld — 8 operation(s) for elt syncs.
openapi: 3.0.0
info:
title: Weld REST Connection Bridge ELT Syncs API
description: With the Weld REST API you can programmatically control your syncs
version: '0.1'
contact: {}
servers:
- url: https://connect.weld.app
security:
- api_key: []
tags:
- name: ELT Syncs
paths:
/elt_syncs/{id}/enable:
post:
description: Enables scheduling for the specified ELT Sync. It will be executed periodically based on its sync interval.
operationId: EltSyncsOpenApiController_enableEltSync
parameters:
- name: id
required: true
in: path
description: The ID of the ELT Sync to enable.
schema:
example: X4ughggABSd3UY
type: string
responses:
'204':
description: The ELT Sync has been successfully enabled.
summary: Enable ELT Sync
tags:
- ELT Syncs
/elt_syncs/{id}/disable:
post:
description: Disables scheduling for the specified ELT Sync. It will no longer be executed periodically.
operationId: EltSyncsOpenApiController_disableEltSync
parameters:
- name: id
required: true
in: path
description: The ID of the ELT Sync to disable.
schema:
example: X4ughggABSd3UY
type: string
responses:
'204':
description: The ELT Sync has been successfully disabled.
summary: Disable ELT Sync
tags:
- ELT Syncs
/elt_syncs:
get:
description: List all ELT Syncs in pages sorted by their creation date.
operationId: EltSyncsOpenApiController_getEltSyncs
parameters:
- name: starting_after
required: false
in: query
description: The cursor to use in pagination. Use the value of the `next_cursor` field from the response of a previous list request.
schema:
example: ewK8sDoLNI4CFR
type: string
- name: limit
required: false
in: query
description: The number of items to return in a single page.
schema:
minimum: 1
maximum: 100
default: 10
type: integer
- name: connection_id
required: false
in: query
description: Filter ELT Syncs by the associated Source Connection ID.
schema:
example: SrcCon_12345
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PagedEltSyncDto'
summary: List ELT Syncs
tags:
- ELT Syncs
post:
operationId: EltSyncsOpenApiController_createEltSync
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncCreateRequestDto'
responses:
'201':
description: The ELT Sync has been successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncDto'
'409':
description: The connection reached the maximum number of allowed syncs.
summary: Create a new ELT Sync
tags:
- ELT Syncs
/elt_syncs/{id}:
post:
operationId: EltSyncsOpenApiController_updateEltSync
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncUpdateRequestDto'
responses:
'200':
description: The ELT Sync has been successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncDto'
summary: Update an existing ELT Sync
tags:
- ELT Syncs
get:
description: Get data of a specific ELT sync.
operationId: EltSyncsOpenApiController_getEltSync
parameters:
- name: id
required: true
in: path
description: The ID of the ELT sync.
schema:
example: X4ughggABSd3UY
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncDto'
'404':
description: ''
summary: Get ELT Sync
tags:
- ELT Syncs
delete:
description: Delete a specific ELT sync. This will also delete all associated source streams.
operationId: EltSyncsOpenApiController_deleteEltSync
parameters:
- name: id
required: true
in: path
description: The ID of the ELT sync.
schema:
example: X4ughggABSd3UY
type: string
- name: removeDataReferences
required: false
in: query
description: If set to true, all tables created in the destination by this ELT sync will also be removed. Default is false.
schema:
example: 'true'
type: string
responses:
'204':
description: The ELT Sync has been successfully deleted.
summary: Delete ELT sync
tags:
- ELT Syncs
/elt_syncs/{id}/orchestration:
post:
description: Attaches this ELT sync to an Orchestration Workflow, so it runs as part of that workflow's runs instead of on its own schedule.
operationId: EltSyncsOpenApiController_attachOrchestration
parameters:
- name: id
required: true
in: path
description: The ID of the ELT sync.
schema:
example: X4ughggABSd3UY
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncAttachOrchestrationRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncDto'
'404':
description: ELT sync or Orchestration Workflow not found.
summary: Attach ELT sync to an orchestration
tags:
- ELT Syncs
delete:
description: Detaches this ELT sync from its Orchestration Workflow. Streams with their own sync_interval will resume running on it; streams without one will fall back to the sync_interval on the sync (defaulting to daily if none is set).
operationId: EltSyncsOpenApiController_detachOrchestration
parameters:
- name: id
required: true
in: path
description: The ID of the ELT sync.
schema:
example: X4ughggABSd3UY
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncDto'
'404':
description: ELT sync not found.
summary: Detach ELT sync from its orchestration
tags:
- ELT Syncs
/elt_syncs/{id}/available_source_streams:
get:
description: List all streams that can be created for the given ELT sync.
operationId: EltSyncsOpenApiController_getSourceStreams
parameters:
- name: id
required: true
in: path
description: The ID of the ELT sync.
schema:
example: X4ughggABSd3UY
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PagedAvailableEltStreamDto'
summary: Get available streams for ELT sync
tags:
- ELT Syncs
/elt_syncs/{id}/source_streams:
post:
description: Add source streams to the given ELT sync and return the newly created streams. This method will only add new streams and update existing streams
operationId: EltSyncsOpenApiController_addSourceStreams
parameters:
- name: id
required: true
in: path
description: The ID of the ELT sync.
schema:
example: X4ughggABSd3UY
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncAddSourceStreamsRequestDto'
responses:
'201':
description: The source streams have been successfully added.
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncAddSourceStreamsResponseDto'
'400':
description: ''
summary: Add source streams to ELT sync
tags:
- ELT Syncs
/elt_syncs/{id}/status:
get:
description: Get the current status of an ELT sync, including active and latest sync states for each source stream.
operationId: EltSyncsOpenApiController_getEltSyncStatus
parameters:
- name: id
required: true
in: path
description: The ID of the ELT sync.
schema:
example: X4ughggABSd3UY
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EltSyncStatusDto'
summary: Get ELT Sync Status
tags:
- ELT Syncs
components:
schemas:
EltSyncAddSourceStreamsResponseDto:
type: object
properties:
source_streams:
description: The updated list of source streams for the ELT sync.
type: array
items:
$ref: '#/components/schemas/EltStreamDto'
required:
- source_streams
SourceStreamSnapshotStatesDto:
type: object
properties:
name:
type: string
description: Name of the source stream
example: users
active_sync:
description: Currently active sync if any
allOf:
- $ref: '#/components/schemas/SourceStreamSnapshotDto'
latest_sync:
description: Latest completed sync if any
allOf:
- $ref: '#/components/schemas/SourceStreamSnapshotDto'
required:
- name
RetirementDetails:
type: object
properties:
in_favor_of:
type: string
description: In favor of another stream that should be used instead
removal_date:
type: string
description: Due date when stream will stop syncing
format: ISO 8601 date string
details:
type: string
description: Optional details of the retirement
link:
type: string
description: Optional link to official documentation that describes the retirement and migration details
EltSyncCreateRequestDto:
type: object
properties:
connection_id:
type: string
description: The connection id.
destination_schema_name:
type: string
description: The name of the destination schema that will contain the synced tables.
elt_settings:
type: object
description: The ELT settings for a sync.
sync_interval:
type: string
description: Cron expression for the elt sync schedule.
example: 0 0 * * *
start_date:
type: string
description: The earliest date from which data will be synced. Defaults to a predefined date if not set. Support varies by integration; see the supports_start_date field in the Integrations endpoint.
format: YYYY-MM-DD
example: '2020-01-01'
required:
- connection_id
- destination_schema_name
- sync_interval
SourceStreamDto:
type: object
properties:
name:
type: string
description: The name of the source stream.
incremental_pointer_id:
type: string
description: Incremental pointer ID for the source stream.
excluded_columns:
description: Columns to exclude from the sync.
type: array
items:
type: string
hashed_columns:
description: Columns to hash during the sync.
type: array
items:
type: string
full_sync_always:
type: boolean
description: Whether to always perform a full sync.
full_sync_at_midnight:
type: boolean
description: Whether to perform a full sync at midnight.
protected_from_full_sync:
type: boolean
description: Whether the stream is protected from full sync.
excluded_substreams:
description: Excluded substreams from syncing.
example:
- substream1
- substream2
type: array
items:
type: string
enabled_history_table:
type: boolean
description: Whether history table(s) are enabled for this stream
default: false
required:
- name
EltSyncDto:
type: object
properties:
account_id:
type: string
description: The Id of the Account.
example: acc_789
config:
type: object
description: The configuration for the ELT sync.
example:
sourceSettings: {}
created_at:
format: date-time
type: string
description: The datetime when the ELT Sync was created.
example: '2020-01-01T00:00:00.000Z'
destination_connection_id:
type: string
description: The Id of the Destination Connection.
example: conn_456
destination_integration_id:
type: string
description: The Id of the Destination Integration.
example: bigquery
destination_schema_name:
type: string
description: The name of the destination schema.
example: my_schema
enabled:
type: boolean
description: Whether the ELT sync is enabled and running on its schedule.
example: true
id:
type: string
description: The Id of the ELT Sync.
example: OoORhGXUVjsqFG
orchestration_workflow_id:
type: string
description: The Id of the Orchestration Workflow that the sync is attached to.
example: 3LIw2FdxoByya9
source_connection_id:
type: string
description: The Id of the Source Connection.
example: conn_123
source_integration_id:
type: string
description: The Id of the Source Integration.
example: excel
source_streams:
description: The source streams that belong to this ELT sync.
type: array
items:
$ref: '#/components/schemas/EltStreamDto'
start_date:
format: date-time
type: string
description: The date from when the sync should synchronize the data.
example: '2020-01-01T00:00:00.000Z'
status:
type: string
description: The status of the sync.
example: RUNNING
enum:
- NOT_STARTED
- RUNNING
- FAILED
- PAUSED
sync_interval:
type: string
description: The cron expression when the sync should run. Provided if sync is not attached to an Orchestration.
format: cron expression
example: 0 0 * * *
updated_at:
format: date-time
type: string
description: The datetime when the ELT Sync was last updated.
example: '2020-01-01T00:00:00.000Z'
required:
- account_id
- created_at
- destination_connection_id
- destination_integration_id
- enabled
- id
- source_connection_id
- source_integration_id
- status
- updated_at
EltSyncAddSourceStreamsRequestDto:
type: object
properties:
source_streams:
description: The source streams for the elt sync.
type: array
items:
$ref: '#/components/schemas/SourceStreamDto'
EltSyncAttachOrchestrationRequestDto:
type: object
properties:
orchestration_workflow_id:
type: string
description: The ID of the Orchestration Workflow to attach this ELT sync to.
example: 3LIw2FdxoByya9
required:
- orchestration_workflow_id
SourceStreamSnapshotDto:
type: object
properties:
bytes_synced:
type: number
description: Number of bytes synced
example: 1024
error_message:
type: string
description: Error message if any
example: Connection timeout
estimated_total_count:
type: number
description: Estimated total count of records
example: 1000
finished_at:
type: string
description: When the sync finished
example: '2024-03-20T10:00:00Z'
full_sync_trigger:
enum:
- ALWAYS_FULL
- ERROR
- INITIAL_SYNC
- LOOKBACK
- MIDNIGHT
- MIGRATION
- NONE
- SCHEMA_CHANGE
- USER
type: string
description: Full sync trigger type
operation_mode:
enum:
- APPEND
- FULL
- INCREMENTAL
type: string
description: Operation mode
records_synced:
type: number
description: Number of records synced
example: 500
retry_attempt:
type: number
description: Retry attempt number
example: 0
started_at:
type: string
description: When the sync started
example: '2024-03-20T09:00:00Z'
status:
enum:
- COMPLETED
- DELAYED
- FAILED
- RETRYING
- RUNNING
- SCHEDULED
type: string
description: Sync status
details:
type: string
description: Additional details
example: Processing chunk 1/5
required:
- bytes_synced
EltStreamDto:
type: object
properties:
id:
type: string
description: The Id of the ELT Stream.
example: SCTVdLAcyDTgNx
elt_sync_id:
type: string
description: The Id of the ELT Sync that the ELT Stream belongs to.
example: 3LIw2FdxoByya9
name:
type: string
description: The name of the ELT Stream
example: users
incremental_primary_key_name:
description: The name of the primary key field used for incremental sync. Most commonly used for database incremental syncs.
example:
- id
type: array
items:
type: string
incremental_pointer_id:
type: string
description: The name of the field used for incremental sync cursor.
example: updated_at
full_sync_at_midnight:
type: boolean
description: Indicates whether the full sync should be performed at midnight.
example: false
full_sync_always:
type: boolean
description: Indicates whether the full sync should always be performed.
example: false
protected_from_full_sync:
type: boolean
description: Indicates whether the stream is protected from full sync.
example: false
created_at:
format: date-time
type: string
description: The datetime when the ELT Stream was created.
example: '2020-01-01T00:00:00.000Z'
updated_at:
format: date-time
type: string
description: The datetime when the ELT Stream was last updated.
example: '2020-01-01T00:00:00.000Z'
excluded_substreams:
description: Excluded substreams from syncing.
example:
- substream1
- substream2
type: array
items:
type: string
enabled_history_table:
type: boolean
description: Whether history table(s) are enabled for this stream
example: false
required:
- id
- elt_sync_id
- name
- full_sync_at_midnight
- full_sync_always
- protected_from_full_sync
- created_at
- updated_at
- excluded_substreams
- enabled_history_table
EltSyncUpdateRequestDto:
type: object
properties:
elt_settings:
type: object
description: The elt settings for a sync.
sync_interval:
type: string
description: Cron expression for the elt sync schedule.
example: 0 0 * * *
PagedEltSyncDto:
type: object
properties:
has_more:
type: boolean
description: Indicates whether there are more items to be fetched in the subsequent pages.
example: true
next_cursor:
type: string
description: The cursor to use in pagination. Use this value as `starting_after` to get the next page.
example: VeN1GjhVIq1D9h
data:
description: List of ELT Syncs
type: array
items:
$ref: '#/components/schemas/EltSyncDto'
required:
- has_more
- data
PagedAvailableEltStreamDto:
type: object
properties:
has_more:
type: boolean
description: Indicates whether there are more items to be fetched in the subsequent pages.
example: true
next_cursor:
type: string
description: The cursor to use in pagination. Use this value as `starting_after` to get the next page.
example: VeN1GjhVIq1D9h
data:
description: List of the available streams for the integration
type: array
items:
$ref: '#/components/schemas/AvailableStreamDto'
required:
- has_more
- data
AvailableStreamDto:
type: object
properties:
name:
type: string
description: The name of the stream
example: users
is_selectable:
type: boolean
description: Whether it is possible to select it. It is false for not used source streams
preselect:
type: boolean
description: Whether the source stream should be pre-selected by default
sub_streams:
description: An array of the substreams
example:
- user_address
type: array
items:
type: string
retired:
type: boolean
description: If the stream is retired and should not be used anymore
example: false
retirement_details:
description: Details for the retired stream
allOf:
- $ref: '#/components/schemas/RetirementDetails'
required:
- name
- retired
EltSyncStatusDto:
type: object
properties:
elt_sync_id:
type: string
description: Sync ID
example: X4ughggABSd3UY
source_streams:
description: List of source stream states
type: array
items:
$ref: '#/components/schemas/SourceStreamSnapshotStatesDto'
required:
- elt_sync_id
- source_streams
securitySchemes:
api_key:
type: apiKey
name: x-api-key
in: header
description: The API key from Settings -> API Keys