For the complete documentation index, see llms.txt. This page is also available as Markdown.

Exports

Exports retrieve data from source systems — on a schedule, in delta mode, in real time, on demand, or as a file/blob transfer — package the results into ≤ 5-MB pages, and pass each page to downstream flow steps. Depending on configuration, an export surfaces in the Flow Builder as an export, a real-time listener, a file transfer, or a mid-flow lookup.

Export schema

List exports

get
/v1/exports

Returns a list of all exports configured in the account. If no exports exist in the account, a 204 response with no body will be returned.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
externalIdstringOptional

Filter to exports matching this exact external identifier.

limitinteger · min: 1Optional

Maximum number of exports to return per page.

afterstringOptional

Opaque cursor for forward pagination. Pass the value from the Link response header (rel="next") to fetch the next page.

includestringOptional

Comma-separated list of fields to project into each returned record. Triggers summary projection: the response contains a minimal identity set (_id, name, plus resource-specific fields) with the requested fields added on top. Supports dot notation for nested fields. Mutually exclusive with exclude.

Example: _integrationId,disabled,lastModified
excludestringOptional

Comma-separated list of fields to strip from the default response. Unlike include, does not trigger summary projection — returns the full record with the named fields removed. Protected identity fields (e.g. name) cannot be stripped. Mutually exclusive with include.

Example: createdAt,lastModified
Responses
200

Successfully retrieved list of exports

application/json
get/v1/exports
GET /v1/exports HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "_id": "5f8d43a1b9e5a80011a35f2c",
    "name": "Get Modified Contacts",
    "_connectionId": "60a2c4e6f321d800129a1a3c",
    "adaptorType": "HTTPExport",
    "http": {
      "relativeURI": "/api/v1/contacts",
      "method": "GET"
    },
    "asynchronous": true,
    "apiIdentifier": "e53af6b210",
    "createdAt": "2026-06-09T17:30:12.482Z",
    "lastModified": "2026-06-09T17:30:12.554Z"
  }
]

Create an export

post
/v1/exports

Creates a new export configuration that can be used to retrieve data from applications or external sources.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body

Fields that can be sent when creating or updating an export. Set the adaptor-specific configuration object matching adaptorType, and the mode-specific object matching type. SimpleExport (data-loader) is the exception — it needs no adaptor config object.

namestring · max: 100Required

Display name for the export, shown in the flow builder, job history, and error logs. Descriptive, unique names indicating the data source and purpose make large accounts easier to manage.

Example: Salesforce Contacts Export
descriptionstring · max: 5120 · nullableOptional

Free-text summary of what the export retrieves and why. Shown in the UI and available to AI agents for context; has no effect on execution.

Example: Exports contacts from Salesforce for syncing to NetSuite
_connectionIdstring · nullableOptional

Connection this export uses to reach the source system. The connection's type must be compatible with the export's adaptorType (e.g. an HTTPExport needs an http connection). Server-required unless type is webhook or simple (those receive data instead of fetching it).

Example: 60a2c4e6f321d800129a1a3c
adaptorTypestring · enumOptional

Selects the adaptor technology that executes this export, which determines the compatible connection types and which adaptor-specific configuration object must also be supplied (e.g. set salesforce when using SalesforceExport).

Example: HTTPExportPossible values:
typestring,null · enum · nullableOptional

Operational mode of the export. When omitted, the export retrieves all available records — the standard batch mode, which is also the right choice for parsing structured files (CSV/XML/JSON) into records. Each mode requires its matching configuration object (e.g. a delta object when type is delta); use blob only to transfer raw files without parsing their contents.

Example: webhookPossible values:
pageSizeinteger · nullableOptional

Number of records per page streamed to downstream flow steps. Pages are additionally capped at 5 MB regardless of record count, so very large records may produce smaller pages. The server does not validate the value.

Default: 20Example: 100
dataURITemplatestringOptional

Handlebars template that builds a link back to each record in the source application's UI (e.g. https://my.salesforce.com/lightning/r/Contact/{{record.Id}}/view). The resolved URL is stored with error records in job history so users can jump straight to the record.

Example: https://your-store.myshopify.com/admin/customers/{{record.id}}
traceKeyTemplatestring · nullableOptional

Handlebars template that overrides how each record's unique trace key is generated, used to track records through the flow and match retries to prior errors (e.g. {{join "_" record.customerId record.orderId}}). When omitted, the system picks a unique field automatically. If a transform reshapes the data first, omit the record. prefix. Trace keys are capped at 256 characters; a longer key is stored truncated from the middle, keeping the beginning and end of the value.

Example: {{record.id}}
skipRetriesbooleanOptional

When true, the platform does not retain the source data needed to retry failed records, reducing stored data at the cost of being unable to reprocess errors from this export. Shown as "Do not store retry data" in the UI. Defaults to false.

Example: true
oneToManybooleanOptional

Controls whether the resource treats child records within parent records as the primary data units.

Important: this is not for specifying where records are in an api response

If you need to tell an export where to find the array of records in the HTTP response body (e.g. "the records are at data.items"), use http.response.resourcePath instead. oneToMany serves a completely different purpose — it operates on records that have already been extracted from the response.

What oneToMany actually does

When set to true, this field fundamentally changes how record data is processed:

  • The system will "unwrap" nested child records from their parent containers
  • Each child record becomes a separate output record for downstream processing
  • The pathToMany field must be set to indicate where these child records are located
  • Parent record fields can still be accessed via a special "parent" context

This is typically used on lookup exports (isLookup: true) or imports where the incoming records contain nested arrays that need to be fanned out.

Common scenarios for enabling this option:

  • Processing order line items individually from an order export
  • Handling invoice line items from an invoice export
  • Processing individual transaction lines from journal entries
  • Extracting address records from customer exports

This setting applies for the duration of the current flow step only and does not affect how data is stored or structured in other flow steps.

If false (default), the resource processes each top-level record as a single unit.

Default: falseExample: true
pathToManystringOptional

Specifies the JSON path to child records when oneToMany mode is enabled.

This field is only used when oneToMany is set to true. It defines the exact location of child records within the parent record structure using dot notation:

  • Simple path: "items" for a direct child array field
  • Nested path: "lines.lineItems" for a more deeply nested array
  • Multi-level: "details.items.subitems" for deeply nested structures

The system uses this path to:

  • Locate the array of child records within each parent record
  • Extract each array element as a separate record for processing
  • Make both the child record data and parent context available to downstream steps

Important considerations:

  • The path must point to an array field
  • For row-based data (i.e. where Celigo models this via an array or arrays of objects), this field is not required
  • If the path is invalid or doesn't exist, the resource will report success but process zero records
  • Maximum path depth: 10 levels

This field must contain a valid JSON path expression using dot notation.

Example: items
isLookupbooleanOptional

When true, the export runs as a mid-flow lookup: it executes once per incoming record, using the input record's fields to parameterize the request, and passes the results to subsequent steps. When false, the export runs as a standalone data source.

Example: true
groupByFieldsstring[]Optional

Specifies which fields to use for grouping records in the export results. When configured, records with the same values in these fields will be grouped together and treated as a single record by downstream steps in your flow.

For example:

  • Group sales orders by customer ID to process all orders for each customer together
  • Group journal entries by accounting period to consolidate related transactions
  • Group inventory items by location to process inventory by warehouse

When grouping is used, the export's page size determines the maximum number of groups per page, not individual records. Note that effective grouping typically requires that records with the same group field values appear together in the export data.

Example: ["customerId","orderId"]
_ediProfileIdstring · objectIdOptional

EDI profile this export uses to parse incoming X12 EDI documents into structured JSON — it supplies the envelope qualifiers, delimiters, version, and validation rules. Set it when the export parses or validates EDI files; omit it otherwise.

Example: 60a2c4e6f321d800129a1a3c
_postParseListenerIdstring · objectIdOptional

Webhook export invoked once per file after EDI parsing, on both success and failure (errors are included in the payload when parsing fails). Primarily used to send functional acknowledgements (997/999) to trading partners. Only supported for AS2Export and FTPExport parsing EDI files.

Example: 60a2c4e6f321d800129a1a3c
externalIdstring · nullableOptional

External identifier for correlating the export with a record in another system.

_integrationIdstring · nullableOptional

Integration this export belongs to.

_connectorIdstring · objectIdOptional

Connector this export was created from, set when the export is part of an installed integration app.

unencryptedobjectOptional

Custom configuration values stored without encryption and returned in API responses.

useTechAdaptorFormbooleanOptional

When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.

rawDatastringOptional

Key referencing the raw sample payload captured for preview and testing.

assistantstringOptional

Identifier for the connector assistant used to configure this export.

assistantMetadataobject | stringOptional

Metadata associated with the connector assistant configuration.

sampleDatastring | object | array · nullableOptional

Sample data payload used for previewing and testing the export.

Responses
201

Export created successfully

application/json

Export object as returned by the API.

namestring · max: 100Required

Display name for the export, shown in the flow builder, job history, and error logs. Descriptive, unique names indicating the data source and purpose make large accounts easier to manage.

Example: Salesforce Contacts Export
descriptionstring · max: 5120 · nullableOptional

Free-text summary of what the export retrieves and why. Shown in the UI and available to AI agents for context; has no effect on execution.

Example: Exports contacts from Salesforce for syncing to NetSuite
_connectionIdstring · nullableOptional

Connection this export uses to reach the source system. The connection's type must be compatible with the export's adaptorType (e.g. an HTTPExport needs an http connection). Server-required unless type is webhook or simple (those receive data instead of fetching it).

Example: 60a2c4e6f321d800129a1a3c
adaptorTypestring · enumRequired

Selects the adaptor technology that executes this export, which determines the compatible connection types and which adaptor-specific configuration object must also be supplied (e.g. set salesforce when using SalesforceExport).

Example: HTTPExportPossible values:
typestring,null · enum · nullableOptional

Operational mode of the export. When omitted, the export retrieves all available records — the standard batch mode, which is also the right choice for parsing structured files (CSV/XML/JSON) into records. Each mode requires its matching configuration object (e.g. a delta object when type is delta); use blob only to transfer raw files without parsing their contents.

Example: webhookPossible values:
pageSizeinteger · nullableOptional

Number of records per page streamed to downstream flow steps. Pages are additionally capped at 5 MB regardless of record count, so very large records may produce smaller pages. The server does not validate the value.

Default: 20Example: 100
dataURITemplatestringOptional

Handlebars template that builds a link back to each record in the source application's UI (e.g. https://my.salesforce.com/lightning/r/Contact/{{record.Id}}/view). The resolved URL is stored with error records in job history so users can jump straight to the record.

Example: https://your-store.myshopify.com/admin/customers/{{record.id}}
traceKeyTemplatestring · nullableOptional

Handlebars template that overrides how each record's unique trace key is generated, used to track records through the flow and match retries to prior errors (e.g. {{join "_" record.customerId record.orderId}}). When omitted, the system picks a unique field automatically. If a transform reshapes the data first, omit the record. prefix. Trace keys are capped at 256 characters; a longer key is stored truncated from the middle, keeping the beginning and end of the value.

Example: {{record.id}}
skipRetriesbooleanOptional

When true, the platform does not retain the source data needed to retry failed records, reducing stored data at the cost of being unable to reprocess errors from this export. Shown as "Do not store retry data" in the UI. Defaults to false.

Example: true
oneToManybooleanOptional

Controls whether the resource treats child records within parent records as the primary data units.

Important: this is not for specifying where records are in an api response

If you need to tell an export where to find the array of records in the HTTP response body (e.g. "the records are at data.items"), use http.response.resourcePath instead. oneToMany serves a completely different purpose — it operates on records that have already been extracted from the response.

What oneToMany actually does

When set to true, this field fundamentally changes how record data is processed:

  • The system will "unwrap" nested child records from their parent containers
  • Each child record becomes a separate output record for downstream processing
  • The pathToMany field must be set to indicate where these child records are located
  • Parent record fields can still be accessed via a special "parent" context

This is typically used on lookup exports (isLookup: true) or imports where the incoming records contain nested arrays that need to be fanned out.

Common scenarios for enabling this option:

  • Processing order line items individually from an order export
  • Handling invoice line items from an invoice export
  • Processing individual transaction lines from journal entries
  • Extracting address records from customer exports

This setting applies for the duration of the current flow step only and does not affect how data is stored or structured in other flow steps.

If false (default), the resource processes each top-level record as a single unit.

Default: falseExample: true
pathToManystringOptional

Specifies the JSON path to child records when oneToMany mode is enabled.

This field is only used when oneToMany is set to true. It defines the exact location of child records within the parent record structure using dot notation:

  • Simple path: "items" for a direct child array field
  • Nested path: "lines.lineItems" for a more deeply nested array
  • Multi-level: "details.items.subitems" for deeply nested structures

The system uses this path to:

  • Locate the array of child records within each parent record
  • Extract each array element as a separate record for processing
  • Make both the child record data and parent context available to downstream steps

Important considerations:

  • The path must point to an array field
  • For row-based data (i.e. where Celigo models this via an array or arrays of objects), this field is not required
  • If the path is invalid or doesn't exist, the resource will report success but process zero records
  • Maximum path depth: 10 levels

This field must contain a valid JSON path expression using dot notation.

Example: items
isLookupbooleanOptional

When true, the export runs as a mid-flow lookup: it executes once per incoming record, using the input record's fields to parameterize the request, and passes the results to subsequent steps. When false, the export runs as a standalone data source.

Example: true
groupByFieldsstring[]Optional

Specifies which fields to use for grouping records in the export results. When configured, records with the same values in these fields will be grouped together and treated as a single record by downstream steps in your flow.

For example:

  • Group sales orders by customer ID to process all orders for each customer together
  • Group journal entries by accounting period to consolidate related transactions
  • Group inventory items by location to process inventory by warehouse

When grouping is used, the export's page size determines the maximum number of groups per page, not individual records. Note that effective grouping typically requires that records with the same group field values appear together in the export data.

Example: ["customerId","orderId"]
_ediProfileIdstring · objectIdOptional

EDI profile this export uses to parse incoming X12 EDI documents into structured JSON — it supplies the envelope qualifiers, delimiters, version, and validation rules. Set it when the export parses or validates EDI files; omit it otherwise.

Example: 60a2c4e6f321d800129a1a3c
_postParseListenerIdstring · objectIdOptional

Webhook export invoked once per file after EDI parsing, on both success and failure (errors are included in the payload when parsing fails). Primarily used to send functional acknowledgements (997/999) to trading partners. Only supported for AS2Export and FTPExport parsing EDI files.

Example: 60a2c4e6f321d800129a1a3c
externalIdstring · nullableOptional

External identifier for correlating the export with a record in another system.

_integrationIdstring · objectIdRead-onlyOptional

Reference to the specific integration instance that contains this resource.

This field is only populated for resources that are part of an integration app installation. It contains the unique identifier (_id) of the integration resource that was installed in the account.

The integration instance represents a specific installed instance of an integration app, with its own configuration, settings, and runtime environment.

This reference enables:

  • Tracing the resource back to its parent integration instance
  • Permission and access control based on integration ownership
  • Lifecycle management (enabling/disabling, updating, or uninstalling)
Example: 5f9a7b2c3d4e5f6a7b8c9d0e
_connectorIdstring · objectIdRead-onlyOptional

Reference to the integration app that defines this resource.

This field is only populated for resources that are part of an integration app. It contains the unique identifier (_id) of the integration app (connector) that defines the structure, behavior, and templates for this resource.

The integration app is the published template that can be installed multiple times across different accounts, with each installation creating a separate integration instance (referenced by _integrationId).

This reference enables:

  • Identifying the source integration app for this resource
  • Determining which template version is being used
  • Linking to documentation, support, and marketplace information
Example: 5e8d43a1b9e5a80011a35f1b
unencryptedobjectOptional

Custom configuration values stored without encryption and returned in API responses.

useTechAdaptorFormbooleanOptional

When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.

rawDatastringOptional

Key referencing the raw sample payload captured for preview and testing.

assistantstringOptional

Identifier for the connector assistant used to configure this export.

assistantMetadataobject | stringOptional

Metadata associated with the connector assistant configuration.

sampleDatastring | object | array · nullableOptional

Sample data payload used for previewing and testing the export.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
apiIdentifierstringRead-onlyOptional

API identifier assigned to this export.

asynchronousbooleanRead-onlyOptional

Server-managed execution-mode flag set on creation; client values are ignored.

__linkedLookupCacheIdsstring · objectId[]Read-onlyOptional

Lookup caches linked to this export, managed by the platform.

_sourceIdstring · objectIdRead-onlyOptional

Reference to the source resource this export was created from.

_templateIdstring · objectIdRead-onlyOptional

Template this export was created from.

draftbooleanRead-onlyOptional

When true, this export is in draft state and has not been confirmed.

draftExpiresAtstring · date-timeRead-onlyOptional

Timestamp when the draft version of this export expires.

debugUntilstring · date-timeRead-onlyOptional

Timestamp until which debug logging is enabled for this export.

post/v1/exports
POST /v1/exports HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 159

{
  "name": "Get Modified Contacts",
  "_connectionId": "60a2c4e6f321d800129a1a3c",
  "adaptorType": "HTTPExport",
  "http": {
    "relativeURI": "/api/v1/contacts",
    "method": "GET"
  }
}
{
  "_id": "5f8d43a1b9e5a80011a35f2c",
  "name": "Get Modified Contacts",
  "_connectionId": "60a2c4e6f321d800129a1a3c",
  "adaptorType": "HTTPExport",
  "http": {
    "relativeURI": "/api/v1/contacts",
    "method": "GET"
  },
  "asynchronous": true,
  "apiIdentifier": "e53af6b210",
  "createdAt": "2026-06-09T17:30:12.482Z",
  "lastModified": "2026-06-09T17:30:12.554Z"
}

Get an export

get
/v1/exports/{_id}

Returns the complete configuration of a specific export.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the export

Example: 5f8d43a1b9e5a80011a35f2c
Responses
200

Export retrieved successfully

application/json

Export object as returned by the API.

namestring · max: 100Required

Display name for the export, shown in the flow builder, job history, and error logs. Descriptive, unique names indicating the data source and purpose make large accounts easier to manage.

Example: Salesforce Contacts Export
descriptionstring · max: 5120 · nullableOptional

Free-text summary of what the export retrieves and why. Shown in the UI and available to AI agents for context; has no effect on execution.

Example: Exports contacts from Salesforce for syncing to NetSuite
_connectionIdstring · nullableOptional

Connection this export uses to reach the source system. The connection's type must be compatible with the export's adaptorType (e.g. an HTTPExport needs an http connection). Server-required unless type is webhook or simple (those receive data instead of fetching it).

Example: 60a2c4e6f321d800129a1a3c
adaptorTypestring · enumRequired

Selects the adaptor technology that executes this export, which determines the compatible connection types and which adaptor-specific configuration object must also be supplied (e.g. set salesforce when using SalesforceExport).

Example: HTTPExportPossible values:
typestring,null · enum · nullableOptional

Operational mode of the export. When omitted, the export retrieves all available records — the standard batch mode, which is also the right choice for parsing structured files (CSV/XML/JSON) into records. Each mode requires its matching configuration object (e.g. a delta object when type is delta); use blob only to transfer raw files without parsing their contents.

Example: webhookPossible values:
pageSizeinteger · nullableOptional

Number of records per page streamed to downstream flow steps. Pages are additionally capped at 5 MB regardless of record count, so very large records may produce smaller pages. The server does not validate the value.

Default: 20Example: 100
dataURITemplatestringOptional

Handlebars template that builds a link back to each record in the source application's UI (e.g. https://my.salesforce.com/lightning/r/Contact/{{record.Id}}/view). The resolved URL is stored with error records in job history so users can jump straight to the record.

Example: https://your-store.myshopify.com/admin/customers/{{record.id}}
traceKeyTemplatestring · nullableOptional

Handlebars template that overrides how each record's unique trace key is generated, used to track records through the flow and match retries to prior errors (e.g. {{join "_" record.customerId record.orderId}}). When omitted, the system picks a unique field automatically. If a transform reshapes the data first, omit the record. prefix. Trace keys are capped at 256 characters; a longer key is stored truncated from the middle, keeping the beginning and end of the value.

Example: {{record.id}}
skipRetriesbooleanOptional

When true, the platform does not retain the source data needed to retry failed records, reducing stored data at the cost of being unable to reprocess errors from this export. Shown as "Do not store retry data" in the UI. Defaults to false.

Example: true
oneToManybooleanOptional

Controls whether the resource treats child records within parent records as the primary data units.

Important: this is not for specifying where records are in an api response

If you need to tell an export where to find the array of records in the HTTP response body (e.g. "the records are at data.items"), use http.response.resourcePath instead. oneToMany serves a completely different purpose — it operates on records that have already been extracted from the response.

What oneToMany actually does

When set to true, this field fundamentally changes how record data is processed:

  • The system will "unwrap" nested child records from their parent containers
  • Each child record becomes a separate output record for downstream processing
  • The pathToMany field must be set to indicate where these child records are located
  • Parent record fields can still be accessed via a special "parent" context

This is typically used on lookup exports (isLookup: true) or imports where the incoming records contain nested arrays that need to be fanned out.

Common scenarios for enabling this option:

  • Processing order line items individually from an order export
  • Handling invoice line items from an invoice export
  • Processing individual transaction lines from journal entries
  • Extracting address records from customer exports

This setting applies for the duration of the current flow step only and does not affect how data is stored or structured in other flow steps.

If false (default), the resource processes each top-level record as a single unit.

Default: falseExample: true
pathToManystringOptional

Specifies the JSON path to child records when oneToMany mode is enabled.

This field is only used when oneToMany is set to true. It defines the exact location of child records within the parent record structure using dot notation:

  • Simple path: "items" for a direct child array field
  • Nested path: "lines.lineItems" for a more deeply nested array
  • Multi-level: "details.items.subitems" for deeply nested structures

The system uses this path to:

  • Locate the array of child records within each parent record
  • Extract each array element as a separate record for processing
  • Make both the child record data and parent context available to downstream steps

Important considerations:

  • The path must point to an array field
  • For row-based data (i.e. where Celigo models this via an array or arrays of objects), this field is not required
  • If the path is invalid or doesn't exist, the resource will report success but process zero records
  • Maximum path depth: 10 levels

This field must contain a valid JSON path expression using dot notation.

Example: items
isLookupbooleanOptional

When true, the export runs as a mid-flow lookup: it executes once per incoming record, using the input record's fields to parameterize the request, and passes the results to subsequent steps. When false, the export runs as a standalone data source.

Example: true
groupByFieldsstring[]Optional

Specifies which fields to use for grouping records in the export results. When configured, records with the same values in these fields will be grouped together and treated as a single record by downstream steps in your flow.

For example:

  • Group sales orders by customer ID to process all orders for each customer together
  • Group journal entries by accounting period to consolidate related transactions
  • Group inventory items by location to process inventory by warehouse

When grouping is used, the export's page size determines the maximum number of groups per page, not individual records. Note that effective grouping typically requires that records with the same group field values appear together in the export data.

Example: ["customerId","orderId"]
_ediProfileIdstring · objectIdOptional

EDI profile this export uses to parse incoming X12 EDI documents into structured JSON — it supplies the envelope qualifiers, delimiters, version, and validation rules. Set it when the export parses or validates EDI files; omit it otherwise.

Example: 60a2c4e6f321d800129a1a3c
_postParseListenerIdstring · objectIdOptional

Webhook export invoked once per file after EDI parsing, on both success and failure (errors are included in the payload when parsing fails). Primarily used to send functional acknowledgements (997/999) to trading partners. Only supported for AS2Export and FTPExport parsing EDI files.

Example: 60a2c4e6f321d800129a1a3c
externalIdstring · nullableOptional

External identifier for correlating the export with a record in another system.

_integrationIdstring · objectIdRead-onlyOptional

Reference to the specific integration instance that contains this resource.

This field is only populated for resources that are part of an integration app installation. It contains the unique identifier (_id) of the integration resource that was installed in the account.

The integration instance represents a specific installed instance of an integration app, with its own configuration, settings, and runtime environment.

This reference enables:

  • Tracing the resource back to its parent integration instance
  • Permission and access control based on integration ownership
  • Lifecycle management (enabling/disabling, updating, or uninstalling)
Example: 5f9a7b2c3d4e5f6a7b8c9d0e
_connectorIdstring · objectIdRead-onlyOptional

Reference to the integration app that defines this resource.

This field is only populated for resources that are part of an integration app. It contains the unique identifier (_id) of the integration app (connector) that defines the structure, behavior, and templates for this resource.

The integration app is the published template that can be installed multiple times across different accounts, with each installation creating a separate integration instance (referenced by _integrationId).

This reference enables:

  • Identifying the source integration app for this resource
  • Determining which template version is being used
  • Linking to documentation, support, and marketplace information
Example: 5e8d43a1b9e5a80011a35f1b
unencryptedobjectOptional

Custom configuration values stored without encryption and returned in API responses.

useTechAdaptorFormbooleanOptional

When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.

rawDatastringOptional

Key referencing the raw sample payload captured for preview and testing.

assistantstringOptional

Identifier for the connector assistant used to configure this export.

assistantMetadataobject | stringOptional

Metadata associated with the connector assistant configuration.

sampleDatastring | object | array · nullableOptional

Sample data payload used for previewing and testing the export.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
apiIdentifierstringRead-onlyOptional

API identifier assigned to this export.

asynchronousbooleanRead-onlyOptional

Server-managed execution-mode flag set on creation; client values are ignored.

__linkedLookupCacheIdsstring · objectId[]Read-onlyOptional

Lookup caches linked to this export, managed by the platform.

_sourceIdstring · objectIdRead-onlyOptional

Reference to the source resource this export was created from.

_templateIdstring · objectIdRead-onlyOptional

Template this export was created from.

draftbooleanRead-onlyOptional

When true, this export is in draft state and has not been confirmed.

draftExpiresAtstring · date-timeRead-onlyOptional

Timestamp when the draft version of this export expires.

debugUntilstring · date-timeRead-onlyOptional

Timestamp until which debug logging is enabled for this export.

get/v1/exports/{_id}
GET /v1/exports/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "_id": "5f8d43a1b9e5a80011a35f2c",
  "name": "Get Modified Contacts",
  "_connectionId": "60a2c4e6f321d800129a1a3c",
  "adaptorType": "HTTPExport",
  "http": {
    "relativeURI": "/api/v1/contacts",
    "method": "GET"
  },
  "asynchronous": true,
  "apiIdentifier": "e53af6b210",
  "createdAt": "2026-06-09T17:30:12.482Z",
  "lastModified": "2026-06-09T17:30:12.554Z"
}

Update an export

put
/v1/exports/{_id}

Updates an existing export with the provided configuration. This is used for major updates to an export's structure or behavior.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the export

Example: 5f8d43a1b9e5a80011a35f2c
Body

Fields that can be sent when creating or updating an export. Set the adaptor-specific configuration object matching adaptorType, and the mode-specific object matching type. SimpleExport (data-loader) is the exception — it needs no adaptor config object.

namestring · max: 100Required

Display name for the export, shown in the flow builder, job history, and error logs. Descriptive, unique names indicating the data source and purpose make large accounts easier to manage.

Example: Salesforce Contacts Export
descriptionstring · max: 5120 · nullableOptional

Free-text summary of what the export retrieves and why. Shown in the UI and available to AI agents for context; has no effect on execution.

Example: Exports contacts from Salesforce for syncing to NetSuite
_connectionIdstring · nullableOptional

Connection this export uses to reach the source system. The connection's type must be compatible with the export's adaptorType (e.g. an HTTPExport needs an http connection). Server-required unless type is webhook or simple (those receive data instead of fetching it).

Example: 60a2c4e6f321d800129a1a3c
adaptorTypestring · enumOptional

Selects the adaptor technology that executes this export, which determines the compatible connection types and which adaptor-specific configuration object must also be supplied (e.g. set salesforce when using SalesforceExport).

Example: HTTPExportPossible values:
typestring,null · enum · nullableOptional

Operational mode of the export. When omitted, the export retrieves all available records — the standard batch mode, which is also the right choice for parsing structured files (CSV/XML/JSON) into records. Each mode requires its matching configuration object (e.g. a delta object when type is delta); use blob only to transfer raw files without parsing their contents.

Example: webhookPossible values:
pageSizeinteger · nullableOptional

Number of records per page streamed to downstream flow steps. Pages are additionally capped at 5 MB regardless of record count, so very large records may produce smaller pages. The server does not validate the value.

Default: 20Example: 100
dataURITemplatestringOptional

Handlebars template that builds a link back to each record in the source application's UI (e.g. https://my.salesforce.com/lightning/r/Contact/{{record.Id}}/view). The resolved URL is stored with error records in job history so users can jump straight to the record.

Example: https://your-store.myshopify.com/admin/customers/{{record.id}}
traceKeyTemplatestring · nullableOptional

Handlebars template that overrides how each record's unique trace key is generated, used to track records through the flow and match retries to prior errors (e.g. {{join "_" record.customerId record.orderId}}). When omitted, the system picks a unique field automatically. If a transform reshapes the data first, omit the record. prefix. Trace keys are capped at 256 characters; a longer key is stored truncated from the middle, keeping the beginning and end of the value.

Example: {{record.id}}
skipRetriesbooleanOptional

When true, the platform does not retain the source data needed to retry failed records, reducing stored data at the cost of being unable to reprocess errors from this export. Shown as "Do not store retry data" in the UI. Defaults to false.

Example: true
oneToManybooleanOptional

Controls whether the resource treats child records within parent records as the primary data units.

Important: this is not for specifying where records are in an api response

If you need to tell an export where to find the array of records in the HTTP response body (e.g. "the records are at data.items"), use http.response.resourcePath instead. oneToMany serves a completely different purpose — it operates on records that have already been extracted from the response.

What oneToMany actually does

When set to true, this field fundamentally changes how record data is processed:

  • The system will "unwrap" nested child records from their parent containers
  • Each child record becomes a separate output record for downstream processing
  • The pathToMany field must be set to indicate where these child records are located
  • Parent record fields can still be accessed via a special "parent" context

This is typically used on lookup exports (isLookup: true) or imports where the incoming records contain nested arrays that need to be fanned out.

Common scenarios for enabling this option:

  • Processing order line items individually from an order export
  • Handling invoice line items from an invoice export
  • Processing individual transaction lines from journal entries
  • Extracting address records from customer exports

This setting applies for the duration of the current flow step only and does not affect how data is stored or structured in other flow steps.

If false (default), the resource processes each top-level record as a single unit.

Default: falseExample: true
pathToManystringOptional

Specifies the JSON path to child records when oneToMany mode is enabled.

This field is only used when oneToMany is set to true. It defines the exact location of child records within the parent record structure using dot notation:

  • Simple path: "items" for a direct child array field
  • Nested path: "lines.lineItems" for a more deeply nested array
  • Multi-level: "details.items.subitems" for deeply nested structures

The system uses this path to:

  • Locate the array of child records within each parent record
  • Extract each array element as a separate record for processing
  • Make both the child record data and parent context available to downstream steps

Important considerations:

  • The path must point to an array field
  • For row-based data (i.e. where Celigo models this via an array or arrays of objects), this field is not required
  • If the path is invalid or doesn't exist, the resource will report success but process zero records
  • Maximum path depth: 10 levels

This field must contain a valid JSON path expression using dot notation.

Example: items
isLookupbooleanOptional

When true, the export runs as a mid-flow lookup: it executes once per incoming record, using the input record's fields to parameterize the request, and passes the results to subsequent steps. When false, the export runs as a standalone data source.

Example: true
groupByFieldsstring[]Optional

Specifies which fields to use for grouping records in the export results. When configured, records with the same values in these fields will be grouped together and treated as a single record by downstream steps in your flow.

For example:

  • Group sales orders by customer ID to process all orders for each customer together
  • Group journal entries by accounting period to consolidate related transactions
  • Group inventory items by location to process inventory by warehouse

When grouping is used, the export's page size determines the maximum number of groups per page, not individual records. Note that effective grouping typically requires that records with the same group field values appear together in the export data.

Example: ["customerId","orderId"]
_ediProfileIdstring · objectIdOptional

EDI profile this export uses to parse incoming X12 EDI documents into structured JSON — it supplies the envelope qualifiers, delimiters, version, and validation rules. Set it when the export parses or validates EDI files; omit it otherwise.

Example: 60a2c4e6f321d800129a1a3c
_postParseListenerIdstring · objectIdOptional

Webhook export invoked once per file after EDI parsing, on both success and failure (errors are included in the payload when parsing fails). Primarily used to send functional acknowledgements (997/999) to trading partners. Only supported for AS2Export and FTPExport parsing EDI files.

Example: 60a2c4e6f321d800129a1a3c
externalIdstring · nullableOptional

External identifier for correlating the export with a record in another system.

_integrationIdstring · nullableOptional

Integration this export belongs to.

_connectorIdstring · objectIdOptional

Connector this export was created from, set when the export is part of an installed integration app.

unencryptedobjectOptional

Custom configuration values stored without encryption and returned in API responses.

useTechAdaptorFormbooleanOptional

When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.

rawDatastringOptional

Key referencing the raw sample payload captured for preview and testing.

assistantstringOptional

Identifier for the connector assistant used to configure this export.

assistantMetadataobject | stringOptional

Metadata associated with the connector assistant configuration.

sampleDatastring | object | array · nullableOptional

Sample data payload used for previewing and testing the export.

Responses
200

Export updated successfully

application/json

Export object as returned by the API.

namestring · max: 100Required

Display name for the export, shown in the flow builder, job history, and error logs. Descriptive, unique names indicating the data source and purpose make large accounts easier to manage.

Example: Salesforce Contacts Export
descriptionstring · max: 5120 · nullableOptional

Free-text summary of what the export retrieves and why. Shown in the UI and available to AI agents for context; has no effect on execution.

Example: Exports contacts from Salesforce for syncing to NetSuite
_connectionIdstring · nullableOptional

Connection this export uses to reach the source system. The connection's type must be compatible with the export's adaptorType (e.g. an HTTPExport needs an http connection). Server-required unless type is webhook or simple (those receive data instead of fetching it).

Example: 60a2c4e6f321d800129a1a3c
adaptorTypestring · enumRequired

Selects the adaptor technology that executes this export, which determines the compatible connection types and which adaptor-specific configuration object must also be supplied (e.g. set salesforce when using SalesforceExport).

Example: HTTPExportPossible values:
typestring,null · enum · nullableOptional

Operational mode of the export. When omitted, the export retrieves all available records — the standard batch mode, which is also the right choice for parsing structured files (CSV/XML/JSON) into records. Each mode requires its matching configuration object (e.g. a delta object when type is delta); use blob only to transfer raw files without parsing their contents.

Example: webhookPossible values:
pageSizeinteger · nullableOptional

Number of records per page streamed to downstream flow steps. Pages are additionally capped at 5 MB regardless of record count, so very large records may produce smaller pages. The server does not validate the value.

Default: 20Example: 100
dataURITemplatestringOptional

Handlebars template that builds a link back to each record in the source application's UI (e.g. https://my.salesforce.com/lightning/r/Contact/{{record.Id}}/view). The resolved URL is stored with error records in job history so users can jump straight to the record.

Example: https://your-store.myshopify.com/admin/customers/{{record.id}}
traceKeyTemplatestring · nullableOptional

Handlebars template that overrides how each record's unique trace key is generated, used to track records through the flow and match retries to prior errors (e.g. {{join "_" record.customerId record.orderId}}). When omitted, the system picks a unique field automatically. If a transform reshapes the data first, omit the record. prefix. Trace keys are capped at 256 characters; a longer key is stored truncated from the middle, keeping the beginning and end of the value.

Example: {{record.id}}
skipRetriesbooleanOptional

When true, the platform does not retain the source data needed to retry failed records, reducing stored data at the cost of being unable to reprocess errors from this export. Shown as "Do not store retry data" in the UI. Defaults to false.

Example: true
oneToManybooleanOptional

Controls whether the resource treats child records within parent records as the primary data units.

Important: this is not for specifying where records are in an api response

If you need to tell an export where to find the array of records in the HTTP response body (e.g. "the records are at data.items"), use http.response.resourcePath instead. oneToMany serves a completely different purpose — it operates on records that have already been extracted from the response.

What oneToMany actually does

When set to true, this field fundamentally changes how record data is processed:

  • The system will "unwrap" nested child records from their parent containers
  • Each child record becomes a separate output record for downstream processing
  • The pathToMany field must be set to indicate where these child records are located
  • Parent record fields can still be accessed via a special "parent" context

This is typically used on lookup exports (isLookup: true) or imports where the incoming records contain nested arrays that need to be fanned out.

Common scenarios for enabling this option:

  • Processing order line items individually from an order export
  • Handling invoice line items from an invoice export
  • Processing individual transaction lines from journal entries
  • Extracting address records from customer exports

This setting applies for the duration of the current flow step only and does not affect how data is stored or structured in other flow steps.

If false (default), the resource processes each top-level record as a single unit.

Default: falseExample: true
pathToManystringOptional

Specifies the JSON path to child records when oneToMany mode is enabled.

This field is only used when oneToMany is set to true. It defines the exact location of child records within the parent record structure using dot notation:

  • Simple path: "items" for a direct child array field
  • Nested path: "lines.lineItems" for a more deeply nested array
  • Multi-level: "details.items.subitems" for deeply nested structures

The system uses this path to:

  • Locate the array of child records within each parent record
  • Extract each array element as a separate record for processing
  • Make both the child record data and parent context available to downstream steps

Important considerations:

  • The path must point to an array field
  • For row-based data (i.e. where Celigo models this via an array or arrays of objects), this field is not required
  • If the path is invalid or doesn't exist, the resource will report success but process zero records
  • Maximum path depth: 10 levels

This field must contain a valid JSON path expression using dot notation.

Example: items
isLookupbooleanOptional

When true, the export runs as a mid-flow lookup: it executes once per incoming record, using the input record's fields to parameterize the request, and passes the results to subsequent steps. When false, the export runs as a standalone data source.

Example: true
groupByFieldsstring[]Optional

Specifies which fields to use for grouping records in the export results. When configured, records with the same values in these fields will be grouped together and treated as a single record by downstream steps in your flow.

For example:

  • Group sales orders by customer ID to process all orders for each customer together
  • Group journal entries by accounting period to consolidate related transactions
  • Group inventory items by location to process inventory by warehouse

When grouping is used, the export's page size determines the maximum number of groups per page, not individual records. Note that effective grouping typically requires that records with the same group field values appear together in the export data.

Example: ["customerId","orderId"]
_ediProfileIdstring · objectIdOptional

EDI profile this export uses to parse incoming X12 EDI documents into structured JSON — it supplies the envelope qualifiers, delimiters, version, and validation rules. Set it when the export parses or validates EDI files; omit it otherwise.

Example: 60a2c4e6f321d800129a1a3c
_postParseListenerIdstring · objectIdOptional

Webhook export invoked once per file after EDI parsing, on both success and failure (errors are included in the payload when parsing fails). Primarily used to send functional acknowledgements (997/999) to trading partners. Only supported for AS2Export and FTPExport parsing EDI files.

Example: 60a2c4e6f321d800129a1a3c
externalIdstring · nullableOptional

External identifier for correlating the export with a record in another system.

_integrationIdstring · objectIdRead-onlyOptional

Reference to the specific integration instance that contains this resource.

This field is only populated for resources that are part of an integration app installation. It contains the unique identifier (_id) of the integration resource that was installed in the account.

The integration instance represents a specific installed instance of an integration app, with its own configuration, settings, and runtime environment.

This reference enables:

  • Tracing the resource back to its parent integration instance
  • Permission and access control based on integration ownership
  • Lifecycle management (enabling/disabling, updating, or uninstalling)
Example: 5f9a7b2c3d4e5f6a7b8c9d0e
_connectorIdstring · objectIdRead-onlyOptional

Reference to the integration app that defines this resource.

This field is only populated for resources that are part of an integration app. It contains the unique identifier (_id) of the integration app (connector) that defines the structure, behavior, and templates for this resource.

The integration app is the published template that can be installed multiple times across different accounts, with each installation creating a separate integration instance (referenced by _integrationId).

This reference enables:

  • Identifying the source integration app for this resource
  • Determining which template version is being used
  • Linking to documentation, support, and marketplace information
Example: 5e8d43a1b9e5a80011a35f1b
unencryptedobjectOptional

Custom configuration values stored without encryption and returned in API responses.

useTechAdaptorFormbooleanOptional

When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.

rawDatastringOptional

Key referencing the raw sample payload captured for preview and testing.

assistantstringOptional

Identifier for the connector assistant used to configure this export.

assistantMetadataobject | stringOptional

Metadata associated with the connector assistant configuration.

sampleDatastring | object | array · nullableOptional

Sample data payload used for previewing and testing the export.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
apiIdentifierstringRead-onlyOptional

API identifier assigned to this export.

asynchronousbooleanRead-onlyOptional

Server-managed execution-mode flag set on creation; client values are ignored.

__linkedLookupCacheIdsstring · objectId[]Read-onlyOptional

Lookup caches linked to this export, managed by the platform.

_sourceIdstring · objectIdRead-onlyOptional

Reference to the source resource this export was created from.

_templateIdstring · objectIdRead-onlyOptional

Template this export was created from.

draftbooleanRead-onlyOptional

When true, this export is in draft state and has not been confirmed.

draftExpiresAtstring · date-timeRead-onlyOptional

Timestamp when the draft version of this export expires.

debugUntilstring · date-timeRead-onlyOptional

Timestamp until which debug logging is enabled for this export.

put/v1/exports/{_id}
PUT /v1/exports/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 231

{
  "name": "Get Modified Contacts",
  "description": "Fetches contacts changed since the last successful run.",
  "_connectionId": "60a2c4e6f321d800129a1a3c",
  "adaptorType": "HTTPExport",
  "http": {
    "relativeURI": "/api/v1/contacts",
    "method": "GET"
  }
}
{
  "_id": "5f8d43a1b9e5a80011a35f2c",
  "name": "Get Modified Contacts",
  "description": "Fetches contacts changed since the last successful run.",
  "_connectionId": "60a2c4e6f321d800129a1a3c",
  "adaptorType": "HTTPExport",
  "http": {
    "relativeURI": "/api/v1/contacts",
    "method": "GET"
  },
  "asynchronous": true,
  "apiIdentifier": "e53af6b210",
  "createdAt": "2026-06-09T17:30:12.482Z",
  "lastModified": "2026-06-09T18:04:55.117Z"
}

Delete an export

delete
/v1/exports/{_id}

Deletes an export. The export is soft-deleted and retained in the recycle bin for 30 days before permanent removal. If the export is currently in use by any flows, those flows may fail until reconfigured.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the export

Example: 5f8d43a1b9e5a80011a35f2c
Responses
204

Export deleted successfully

No content

delete/v1/exports/{_id}
DELETE /v1/exports/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Patch an export

patch
/v1/exports/{_id}

Partially updates an export using a JSON Patch document (RFC 6902). Only the replace operation is supported, and only on the following whitelisted paths:

Path
Description

/debugUntil

Debug logging expiry (ISO-8601, max 1 hour from now)

/assistantMetadata

Assistant metadata object

All other paths are rejected with 422.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the export

Example: 5f8d43a1b9e5a80011a35f2c
Bodyobject · JsonPatchOperation[]

A JSON Patch document (RFC 6902). Send an array of patch operations on whitelisted fields — all other paths are rejected with 422.

opstring · enumRequired

The operation to perform.

Possible values:
pathstringRequired

JSON Pointer (RFC 6901) to the field to patch. Only whitelisted paths are accepted — unlisted paths return 422 with "<path> is not a whitelisted property".

valueanyOptional

The new value to set. Required for replace and add, omit for remove.

Responses
204

Export patched successfully

No content

patch/v1/exports/{_id}
PATCH /v1/exports/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 74

[
  {
    "op": "replace",
    "path": "/debugUntil",
    "value": "2026-05-02T16:00:00.000Z"
  }
]

No content

Clone an export

post
/v1/exports/{_id}/clone

Creates a copy of an existing export. Supports optionally remapping referenced connections (via connectionMap).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the export to clone

Example: 5f8d43a1b9e5a80011a35f2c
Body

Request body for cloning an export.

namestringOptional

Optional name for the cloned resource. If omitted, the server may generate a default clone name.

Example: Clone - Get Accounts
Other propertiesanyOptional
Responses
201

Export cloned successfully. Returns a manifest of the resource the clone created.

application/json

Response body for a clone operation. Some clone endpoints return the cloned resource, while others may return a list of related created resources.

or
post/v1/exports/{_id}/clone
POST /v1/exports/{_id}/clone HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "name": "Clone - Get Modified Contacts",
  "connectionMap": {
    "60a2c4e6f321d800129a1a3c": "60a2c4e6f321d800129a1a3c"
  }
}
[
  {
    "model": "Export",
    "_id": "64a1234567890abcdef12345",
    "name": "Clone - Get Modified Contacts"
  }
]

Replace connection on export present in a flow

put
/v1/exports/{_id}/replaceConnection

Replaces the connection used by an export in a flow and cancels any running jobs. This is useful when migrating flows between environments or updating to newer connection versions.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the export

Example: 5f8d43a1b9e5a80011a35f2c
Body
_newConnectionIdstringRequired

The id of the new connection to be used

Example: 60a2c4e6f321d800129a1a3c
Responses
204

Successfully replaced connection on export

No content

put/v1/exports/{_id}/replaceConnection
PUT /v1/exports/{_id}/replaceConnection HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "_newConnectionId": "60a2c4e6f321d800129a1a3c"
}

No content

Preview the output of an export doc (no job created)

post
/v1/exports/preview

Runs an export doc through the flow engine's preview pipeline and returns the sample data it would have emitted, along with stage-by-stage diagnostics and any errors encountered. No Job record is created and no flow-level state is updated — this is a stateless preview.

Body is a complete export document (the shape you would POST to /v1/exports), typically without _id. The CLI uses it for two scenarios:

  • ora exports invoke with a doc on stdin → ad-hoc preview of a not-yet-saved export.

  • Agent-driven "preview + refine" loops where an LLM iterates on the export config and calls this endpoint to sample output each time.

The scoped variant at POST /v1/integrations/{_integrationId}/flows/{_flowId}/exports/preview does the same thing but inherits flow + integration context (useful when the export references flow-scoped settings). Prefer the unscoped variant when previewing a standalone export.

Use test.limit inside the body to cap the number of records returned. Configuration errors in the export doc surface in the errors[] and stages[].errors[] arrays within a 200 response; only structural validation failures (e.g. missing _connectionId) return 4xx.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body

Full export document (mirror of POST /v1/exports body shape), optionally with test.limit to cap preview record count. Omit _id when previewing a not-yet-saved export.

Other propertiesanyOptional
Responses
200

Preview envelope — always returned on valid-body calls. User-error in the export config (handlebars template failures, runtime errors) surfaces in errors[] and stages[].errors[]; inspect those before trusting stages[].data[].

application/json

Envelope returned by POST /v1/exports/preview (and the scoped /v1/integrations/{_integrationId}/flows/{_flowId}/exports/preview variant). Carries per-stage diagnostics alongside the sampled records.

dataURIsstring[]Optional

URIs for any files produced by the preview (e.g. file-based exports writing to cloud storage). Empty for non-file adaptors.

dataRecordTraceKeysstring[]Optional

Trace keys for the records in this preview — one per record, correlating stage outputs to their source record.

traceKeysDuplicatestring[]Optional

Trace keys that collided during the preview — a diagnostic for trace-key generation; rarely non-empty in practice.

post/v1/exports/preview
POST /v1/exports/preview HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 159

{
  "name": "preview-test",
  "adaptorType": "HTTPExport",
  "_connectionId": "68e28b6b0ab8b1de3f24fc67",
  "http": {
    "relativeURI": "/users",
    "method": "GET"
  },
  "test": {
    "limit": 1
  }
}
{
  "data": [],
  "dataURIs": [
    "text"
  ],
  "dataRecordTraceKeys": [
    "text"
  ],
  "stages": [
    {
      "name": "text",
      "data": [],
      "errors": [
        {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        }
      ]
    }
  ],
  "errors": [
    {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  ],
  "traceKeysDuplicate": [
    "text"
  ]
}

Preview export data

post
/v1/integrations/{_integrationId}/flows/{_flowId}/exports/preview

Preview export data from a specific export within a flow. This endpoint allows you to preview the data that would be exported, including the exported data, URIs to the data in the source app, and processing stages information.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_integrationIdstring · objectIdRequired

The integration ID

_flowIdstring · objectIdRequired

The flow ID

Body

Export object as returned by the API.

namestring · max: 100Required

Display name for the export, shown in the flow builder, job history, and error logs. Descriptive, unique names indicating the data source and purpose make large accounts easier to manage.

Example: Salesforce Contacts Export
descriptionstring · max: 5120 · nullableOptional

Free-text summary of what the export retrieves and why. Shown in the UI and available to AI agents for context; has no effect on execution.

Example: Exports contacts from Salesforce for syncing to NetSuite
_connectionIdstring · nullableOptional

Connection this export uses to reach the source system. The connection's type must be compatible with the export's adaptorType (e.g. an HTTPExport needs an http connection). Server-required unless type is webhook or simple (those receive data instead of fetching it).

Example: 60a2c4e6f321d800129a1a3c
adaptorTypestring · enumRequired

Selects the adaptor technology that executes this export, which determines the compatible connection types and which adaptor-specific configuration object must also be supplied (e.g. set salesforce when using SalesforceExport).

Example: HTTPExportPossible values:
typestring,null · enum · nullableOptional

Operational mode of the export. When omitted, the export retrieves all available records — the standard batch mode, which is also the right choice for parsing structured files (CSV/XML/JSON) into records. Each mode requires its matching configuration object (e.g. a delta object when type is delta); use blob only to transfer raw files without parsing their contents.

Example: webhookPossible values:
pageSizeinteger · nullableOptional

Number of records per page streamed to downstream flow steps. Pages are additionally capped at 5 MB regardless of record count, so very large records may produce smaller pages. The server does not validate the value.

Default: 20Example: 100
dataURITemplatestringOptional

Handlebars template that builds a link back to each record in the source application's UI (e.g. https://my.salesforce.com/lightning/r/Contact/{{record.Id}}/view). The resolved URL is stored with error records in job history so users can jump straight to the record.

Example: https://your-store.myshopify.com/admin/customers/{{record.id}}
traceKeyTemplatestring · nullableOptional

Handlebars template that overrides how each record's unique trace key is generated, used to track records through the flow and match retries to prior errors (e.g. {{join "_" record.customerId record.orderId}}). When omitted, the system picks a unique field automatically. If a transform reshapes the data first, omit the record. prefix. Trace keys are capped at 256 characters; a longer key is stored truncated from the middle, keeping the beginning and end of the value.

Example: {{record.id}}
skipRetriesbooleanOptional

When true, the platform does not retain the source data needed to retry failed records, reducing stored data at the cost of being unable to reprocess errors from this export. Shown as "Do not store retry data" in the UI. Defaults to false.

Example: true
oneToManybooleanOptional

Controls whether the resource treats child records within parent records as the primary data units.

Important: this is not for specifying where records are in an api response

If you need to tell an export where to find the array of records in the HTTP response body (e.g. "the records are at data.items"), use http.response.resourcePath instead. oneToMany serves a completely different purpose — it operates on records that have already been extracted from the response.

What oneToMany actually does

When set to true, this field fundamentally changes how record data is processed:

  • The system will "unwrap" nested child records from their parent containers
  • Each child record becomes a separate output record for downstream processing
  • The pathToMany field must be set to indicate where these child records are located
  • Parent record fields can still be accessed via a special "parent" context

This is typically used on lookup exports (isLookup: true) or imports where the incoming records contain nested arrays that need to be fanned out.

Common scenarios for enabling this option:

  • Processing order line items individually from an order export
  • Handling invoice line items from an invoice export
  • Processing individual transaction lines from journal entries
  • Extracting address records from customer exports

This setting applies for the duration of the current flow step only and does not affect how data is stored or structured in other flow steps.

If false (default), the resource processes each top-level record as a single unit.

Default: falseExample: true
pathToManystringOptional

Specifies the JSON path to child records when oneToMany mode is enabled.

This field is only used when oneToMany is set to true. It defines the exact location of child records within the parent record structure using dot notation:

  • Simple path: "items" for a direct child array field
  • Nested path: "lines.lineItems" for a more deeply nested array
  • Multi-level: "details.items.subitems" for deeply nested structures

The system uses this path to:

  • Locate the array of child records within each parent record
  • Extract each array element as a separate record for processing
  • Make both the child record data and parent context available to downstream steps

Important considerations:

  • The path must point to an array field
  • For row-based data (i.e. where Celigo models this via an array or arrays of objects), this field is not required
  • If the path is invalid or doesn't exist, the resource will report success but process zero records
  • Maximum path depth: 10 levels

This field must contain a valid JSON path expression using dot notation.

Example: items
isLookupbooleanOptional

When true, the export runs as a mid-flow lookup: it executes once per incoming record, using the input record's fields to parameterize the request, and passes the results to subsequent steps. When false, the export runs as a standalone data source.

Example: true
groupByFieldsstring[]Optional

Specifies which fields to use for grouping records in the export results. When configured, records with the same values in these fields will be grouped together and treated as a single record by downstream steps in your flow.

For example:

  • Group sales orders by customer ID to process all orders for each customer together
  • Group journal entries by accounting period to consolidate related transactions
  • Group inventory items by location to process inventory by warehouse

When grouping is used, the export's page size determines the maximum number of groups per page, not individual records. Note that effective grouping typically requires that records with the same group field values appear together in the export data.

Example: ["customerId","orderId"]
_ediProfileIdstring · objectIdOptional

EDI profile this export uses to parse incoming X12 EDI documents into structured JSON — it supplies the envelope qualifiers, delimiters, version, and validation rules. Set it when the export parses or validates EDI files; omit it otherwise.

Example: 60a2c4e6f321d800129a1a3c
_postParseListenerIdstring · objectIdOptional

Webhook export invoked once per file after EDI parsing, on both success and failure (errors are included in the payload when parsing fails). Primarily used to send functional acknowledgements (997/999) to trading partners. Only supported for AS2Export and FTPExport parsing EDI files.

Example: 60a2c4e6f321d800129a1a3c
externalIdstring · nullableOptional

External identifier for correlating the export with a record in another system.

_integrationIdstring · objectIdRead-onlyOptional

Reference to the specific integration instance that contains this resource.

This field is only populated for resources that are part of an integration app installation. It contains the unique identifier (_id) of the integration resource that was installed in the account.

The integration instance represents a specific installed instance of an integration app, with its own configuration, settings, and runtime environment.

This reference enables:

  • Tracing the resource back to its parent integration instance
  • Permission and access control based on integration ownership
  • Lifecycle management (enabling/disabling, updating, or uninstalling)
Example: 5f9a7b2c3d4e5f6a7b8c9d0e
_connectorIdstring · objectIdRead-onlyOptional

Reference to the integration app that defines this resource.

This field is only populated for resources that are part of an integration app. It contains the unique identifier (_id) of the integration app (connector) that defines the structure, behavior, and templates for this resource.

The integration app is the published template that can be installed multiple times across different accounts, with each installation creating a separate integration instance (referenced by _integrationId).

This reference enables:

  • Identifying the source integration app for this resource
  • Determining which template version is being used
  • Linking to documentation, support, and marketplace information
Example: 5e8d43a1b9e5a80011a35f1b
unencryptedobjectOptional

Custom configuration values stored without encryption and returned in API responses.

useTechAdaptorFormbooleanOptional

When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.

rawDatastringOptional

Key referencing the raw sample payload captured for preview and testing.

assistantstringOptional

Identifier for the connector assistant used to configure this export.

assistantMetadataobject | stringOptional

Metadata associated with the connector assistant configuration.

sampleDatastring | object | array · nullableOptional

Sample data payload used for previewing and testing the export.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
apiIdentifierstringRead-onlyOptional

API identifier assigned to this export.

asynchronousbooleanRead-onlyOptional

Server-managed execution-mode flag set on creation; client values are ignored.

__linkedLookupCacheIdsstring · objectId[]Read-onlyOptional

Lookup caches linked to this export, managed by the platform.

_sourceIdstring · objectIdRead-onlyOptional

Reference to the source resource this export was created from.

_templateIdstring · objectIdRead-onlyOptional

Template this export was created from.

draftbooleanRead-onlyOptional

When true, this export is in draft state and has not been confirmed.

draftExpiresAtstring · date-timeRead-onlyOptional

Timestamp when the draft version of this export expires.

debugUntilstring · date-timeRead-onlyOptional

Timestamp until which debug logging is enabled for this export.

Responses
200

Successfully previewed export data

application/json

Response body for export data preview

dataobject[]Optional

The data exported from source app

dataURIsstring[]Optional

URIs to the data in the source app

post/v1/integrations/{_integrationId}/flows/{_flowId}/exports/preview
POST /v1/integrations/{_integrationId}/flows/{_flowId}/exports/preview HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 14100

{
  "name": "Salesforce Contacts Export",
  "description": "Exports contacts from Salesforce for syncing to NetSuite",
  "_connectionId": "60a2c4e6f321d800129a1a3c",
  "adaptorType": "HTTPExport",
  "type": "webhook",
  "pageSize": 100,
  "dataURITemplate": "https://your-store.myshopify.com/admin/customers/{{record.id}}",
  "traceKeyTemplate": "{{record.id}}",
  "skipRetries": true,
  "oneToMany": true,
  "pathToMany": "items",
  "isLookup": true,
  "groupByFields": [
    "customerId",
    "orderId"
  ],
  "delta": {
    "dateField": "lastModifiedDate",
    "dateFormat": "YYYY-MM-DD",
    "lagOffset": 15000,
    "startDate": "2024-01-01T00:00:00.000Z"
  },
  "test": {
    "limit": 10
  },
  "once": {
    "booleanField": "isExported"
  },
  "webhook": {
    "provider": "shopify",
    "verify": "token",
    "token": "verification_token_abcdef",
    "algorithm": "sha256",
    "encoding": "hex",
    "key": "whsec_3a7c4f8b2e9d1a5c6b3e7d9f2a1c5b8e3a7c4f8b",
    "header": "X-Webhook-Signature",
    "tokenLocation": "body",
    "path": "token",
    "tokenHeaderName": "X-Webhook-Token",
    "tokenHeaderScheme": "bearer",
    "customTokenScheme": "Token",
    "tokenQueryParamName": "token",
    "_httpConnectorId": "text",
    "requestMediaType": "json",
    "pathToRecords": "events",
    "includeParentData": true,
    "username": "webhook_user",
    "password": "xC7!rTp2@bN9$mQ5",
    "successStatusCode": 200,
    "successBody": "{\"success\":true}",
    "successMediaType": "json",
    "successResponseHeaders": [
      {
        "name": "Content-Type",
        "value": "application/json"
      }
    ],
    "challengeResponseHeaders": [
      {
        "name": "Content-Type",
        "value": "application/json"
      }
    ],
    "challengeSuccessBody": "{\"challenge\":\"{{challenge}}\"}",
    "challengeSuccessStatusCode": 200,
    "challengeSuccessMediaType": "json"
  },
  "simple": {
    "file": {
      "encoding": "utf8",
      "type": "csv",
      "output": "records",
      "skipDelete": true,
      "compressionFormat": "gzip",
      "purgeInternalBackup": true,
      "decrypt": "pgp",
      "batchSize": 10,
      "sortByFields": [
        {
          "field": "date",
          "descending": true
        }
      ],
      "groupByFields": [
        "customerId",
        "orderId"
      ],
      "groupEmptyValues": true,
      "csv": {
        "columnDelimiter": ",",
        "rowDelimiter": "\n",
        "hasHeaderRow": true,
        "trimSpaces": true,
        "rowsToSkip": 0,
        "disableQuoteAndStripEnclosingQuotes": true,
        "keyColumns": [
          "Event Type"
        ]
      },
      "json": {
        "resourcePath": "data.orders"
      },
      "xlsx": {
        "hasHeaderRow": true
      },
      "xml": {
        "resourcePath": "/Root/Orders/Order"
      },
      "includeParentData": true,
      "fileDefinition": {
        "_fileDefinitionId": "60a2c4e6f321d800129a1a3c",
        "allowPartialSuccess": true
      },
      "filter": {
        "type": "expression",
        "expression": {
          "version": "1",
          "rules": [
            "text"
          ]
        },
        "script": {
          "_scriptId": "60a2c4e6f321d800129a1a3c",
          "function": "filterItems"
        }
      },
      "backupPath": "/var/backups/exports",
      "directory": {
        "pathMode": "relativePath",
        "id": "1KppvTTr4jKhJqwPAhGWN6SRwk5m45DL2",
        "name": "Invoices - Inbound",
        "storageRootId": "1qU1hvFarBFMb4-twqKm1rR5o_6j9vs9g",
        "storageRootName": "Shared drive - Finance"
      },
      "backupDirectory": {
        "pathMode": "relativePath",
        "id": "1KppvTTr4jKhJqwPAhGWN6SRwk5m45DL2",
        "name": "Processed archive",
        "storageRootId": "1qU1hvFarBFMb4-twqKm1rR5o_6j9vs9g"
      }
    }
  },
  "distributed": {
    "bearerToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
  },
  "cdc": {
    "captureMode": "change_streams_update_full",
    "snapshotMode": "initial",
    "slotName": "celigo_orders_slot",
    "publicationName": "celigo_pub",
    "cursor": "text",
    "paths": [
      "payload"
    ],
    "intervalTime": 300,
    "properties": [
      {
        "name": "snapshot.mode",
        "value": "no_data"
      }
    ]
  },
  "filesystem": {
    "directoryPath": "C:\\Celigo\\Inbound"
  },
  "http": {
    "type": "file",
    "formType": "http",
    "method": "GET",
    "followRedirects": false,
    "maxRedirects": 3,
    "relativeURI": "/api/v1/contacts",
    "headers": [
      {
        "name": "Accept",
        "value": "application/json"
      }
    ],
    "requestMediaType": "json",
    "body": "{\"query\": \"SELECT * FROM Contacts WHERE LastModifiedDate > {{lastExportDateTime}}\"}",
    "successMediaType": "json",
    "errorMediaType": "json",
    "_asyncHelperId": "60a2c4e6f321d800129a1a3c",
    "once": {
      "relativeURI": "/api/v1/mark-exported",
      "method": "POST",
      "body": "{\"status\": \"exported\", \"exportId\": \"{{_exportId}}\"}"
    },
    "paging": {
      "method": "page",
      "page": 1,
      "skip": 0,
      "token": "next_token_123",
      "path": "meta.nextPage",
      "pathLocation": "body",
      "pathAfterFirstRequest": "pagination.nextToken",
      "relativeURI": "{{previous_page.full_response.next_page}}",
      "body": "{\"query\": \"query($cursor: String) { items(after: $cursor) { edges { node { id name } } pageInfo { endCursor } } }\", \"variables\": {\"cursor\": \"{{previous_page.full_response.data.items.pageInfo.endCursor}}\"}}",
      "mergeBodyParamsToPagingBody": true,
      "linkHeaderRelation": "next",
      "resourcePath": "results",
      "lastPageStatusCode": 204,
      "lastPagePath": "meta.isLastPage",
      "lastPageValues": [
        "true"
      ],
      "maxPagePath": "meta.totalPages",
      "maxCountPath": "meta.totalCount"
    },
    "response": {
      "resourcePath": "data",
      "includeParentData": true,
      "resourceIdPath": "id",
      "successPath": "status",
      "successValues": [
        "ok"
      ],
      "errorPath": "error.message",
      "failPath": "error",
      "failValues": [
        "error",
        "failed"
      ],
      "allowArrayforSuccessPath": true,
      "twoDArray": {
        "hasHeader": true,
        "doNotNormalize": true
      },
      "blobFormat": "utf8"
    },
    "sendAuthForFileDownloads": true
  },
  "file": {
    "encoding": "utf8",
    "type": "csv",
    "output": "records",
    "skipDelete": true,
    "compressionFormat": "gzip",
    "purgeInternalBackup": true,
    "decrypt": "pgp",
    "batchSize": 10,
    "sortByFields": [
      {
        "field": "date",
        "descending": true
      }
    ],
    "groupByFields": [
      "customerId",
      "orderId"
    ],
    "groupEmptyValues": true,
    "csv": {
      "columnDelimiter": ",",
      "rowDelimiter": "\n",
      "hasHeaderRow": true,
      "trimSpaces": true,
      "rowsToSkip": 0,
      "disableQuoteAndStripEnclosingQuotes": true,
      "keyColumns": [
        "Event Type"
      ]
    },
    "json": {
      "resourcePath": "data.orders"
    },
    "xlsx": {
      "hasHeaderRow": true
    },
    "xml": {
      "resourcePath": "/Root/Orders/Order"
    },
    "includeParentData": true,
    "fileDefinition": {
      "_fileDefinitionId": "60a2c4e6f321d800129a1a3c",
      "allowPartialSuccess": true
    },
    "filter": {
      "type": "expression",
      "expression": {
        "version": "1",
        "rules": [
          "text"
        ]
      },
      "script": {
        "_scriptId": "60a2c4e6f321d800129a1a3c",
        "function": "filterItems"
      }
    },
    "backupPath": "/var/backups/exports",
    "directory": {
      "pathMode": "relativePath",
      "id": "1KppvTTr4jKhJqwPAhGWN6SRwk5m45DL2",
      "name": "Invoices - Inbound",
      "storageRootId": "1qU1hvFarBFMb4-twqKm1rR5o_6j9vs9g",
      "storageRootName": "Shared drive - Finance"
    },
    "backupDirectory": {
      "pathMode": "relativePath",
      "id": "1KppvTTr4jKhJqwPAhGWN6SRwk5m45DL2",
      "name": "Processed archive",
      "storageRootId": "1qU1hvFarBFMb4-twqKm1rR5o_6j9vs9g"
    }
  },
  "salesforce": {
    "type": "soql",
    "sObjectType": "Account",
    "id": "00P5f00000ZQcTZEA1",
    "includeDeletedRecords": true,
    "api": "rest",
    "bulk": {
      "maxRecords": 10000,
      "purgeJobAfterExport": true
    },
    "soql": {
      "query": "SELECT Id, Name FROM Account WHERE LastModifiedDate > {{lastExportDateTime}}"
    },
    "distributed": {
      "referencedFields": [
        "Account.Name"
      ],
      "disabled": true,
      "qualifier": "Amount > 1000",
      "batchSize": 10,
      "skipExportFieldId": "Skip_Export__c",
      "relatedLists": [
        {
          "referencedFields": [
            "FirstName"
          ],
          "parentField": "AccountId",
          "sObjectType": "Contact",
          "filter": "IsActive = true",
          "orderBy": "CreatedDate DESC"
        }
      ]
    }
  },
  "as2": {
    "_tpConnectorId": "60a2c4e6f321d800129a1a3c",
    "blob": true
  },
  "dynamodb": {
    "region": "us-east-1",
    "method": "query",
    "tableName": "Customers",
    "keyConditionExpression": "#pk = :customerId",
    "filterExpression": "#status = :active AND #price > :threshold",
    "projectionExpression": [
      "#id",
      "#name",
      "#email"
    ],
    "expressionAttributeNames": "{\"#pk\": \"id\", \"#sk\": \"timestamp\"}",
    "expressionAttributeValues": "{\":val\": \"12345\"}",
    "onceExportPartitionKey": "id",
    "onceExportSortKey": "timestamp",
    "pathToRecords": "lineItems",
    "includeParentData": true
  },
  "ftp": {
    "_tpConnectorId": "60a2c4e6f321d800129a1a3c",
    "directoryPath": "users/dave",
    "fileNameStartsWith": "ORDER_",
    "fileNameEndsWith": ".csv",
    "backupDirectoryPath": "processed"
  },
  "jdbc": {
    "formType": "sql",
    "query": "SELECT * FROM customers WHERE updatedAt > {{lastExportDateTime}}",
    "once": {
      "query": "UPDATE orders SET exported=true WHERE id={{record.id}}"
    },
    "simple": {
      "table": "dbo.Orders",
      "columns": [
        "id",
        "name",
        "total"
      ],
      "filter": {
        "type": "expression",
        "expression": {
          "version": "1",
          "rules": [
            "text"
          ]
        },
        "script": {
          "_scriptId": "60a2c4e6f321d800129a1a3c",
          "function": "filterItems"
        }
      }
    }
  },
  "mongodb": {
    "method": "find",
    "collection": "customers",
    "filter": "{\"status\": \"active\"}",
    "projection": "{\"name\": 1, \"email\": 1, \"_id\": 0}",
    "pipeline": "[{\"$match\": {\"status\": \"active\"}}, {\"$project\": {\"name\": 1, \"email\": 1}}]",
    "readPreference": "doNotOverride",
    "pathToRecords": "lineItems",
    "includeParentData": true
  },
  "netsuite": {
    "type": "file",
    "searches": [
      {
        "savedSearchId": "text",
        "recordType": "text",
        "criteria": [
          {
            "field": "text",
            "operator": "text",
            "join": "text",
            "searchValue": null
          }
        ]
      }
    ],
    "metadata": {},
    "selectoption": {},
    "customFieldMetadata": {},
    "skipGrouping": true,
    "statsOnly": true,
    "internalId": "12345",
    "blob": {
      "purgeFileAfterExport": true
    },
    "restlet": {
      "recordType": "customer",
      "batchSize": 100,
      "searchId": "1234",
      "useSS2Restlets": true,
      "restletVersion": "suitebundle",
      "criteria": [
        {
          "field": "text",
          "join": "text",
          "operator": "operator",
          "searchValue": "Acme Corporation",
          "searchValue2": "text",
          "formula": "CASE WHEN {status} ="
        }
      ],
      "columns": [
        {
          "_id": "text",
          "name": "text",
          "join": "customer",
          "summary": "text",
          "formula": "CASE WHEN {status} =",
          "label": "Customer Name",
          "sort": true
        }
      ],
      "markExportedBatchSize": 1,
      "hooks": {
        "batchSize": 1,
        "preSend": {
          "fileInternalId": "12345",
          "function": "sanitizePayload",
          "configuration": {}
        }
      },
      "cLocked": {}
    },
    "distributed": {
      "recordType": "customer",
      "executionContext": [
        "userinterface"
      ],
      "disabled": true,
      "executionType": [
        "create"
      ],
      "qualifier": null,
      "skipExportFieldId": "text",
      "hooks": {
        "preSend": {
          "fileInternalId": "12345",
          "function": "validateCustomerData",
          "configuration": {}
        }
      },
      "sublists": [
        "item"
      ],
      "referencedFields": {},
      "relatedLists": {},
      "forceReload": true,
      "ioEnvironment": "development",
      "ioDomain": "api.netsuite.com",
      "lastSyncedDate": "2024-06-15T14:30:00Z",
      "settings": {},
      "useSS2Framework": true,
      "frameworkVersion": "suitebundle"
    },
    "getList": [
      {
        "type": "text",
        "typeId": "text",
        "internalId": "text",
        "externalId": "text"
      }
    ],
    "searchPreferences": {
      "bodyFieldsOnly": true,
      "pageSize": 1,
      "returnSearchColumns": true
    },
    "file": {
      "folderInternalId": "12345",
      "backupFolderInternalId": "12345",
      "fileNameStartsWith": "ORDER_",
      "fileNameEndsWith": ".csv"
    }
  },
  "rdbms": {
    "tables": "UKGODS.dbo.UKG_MetadataStaging",
    "query": "SELECT * FROM customers WHERE updatedAt > {{lastExportDateTime}}",
    "once": {
      "query": "UPDATE orders SET exported=true WHERE id={{record.id}}"
    }
  },
  "s3": {
    "region": "us-east-1",
    "bucket": "my-company-exports",
    "keyStartsWith": "exports/",
    "keyEndsWith": ".csv",
    "backupBucket": "my-company-processed",
    "keyPrefix": "processed/"
  },
  "wrapper": {
    "function": "getOrdersFromWooCommerce",
    "configuration": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  },
  "parsers": [
    {
      "version": "1",
      "type": "xml",
      "name": "XMLCustomParser",
      "rules": {
        "V0_json": false,
        "listNodes": [
          "/product-lineitems/product-lineitem",
          "/shipping-lineitems/shipping-lineitem",
          "/shipments/shipment"
        ],
        "includeNodes": [
          "/order/customer",
          "/order/items",
          "/order/shipping"
        ],
        "excludeNodes": [
          "/order/metadata",
          "/order/system-info",
          "/order/audit-trail"
        ],
        "stripNewLineChars": false,
        "trimSpaces": false,
        "attributePrefix": "Att-",
        "textNodeName": "txt"
      }
    }
  ],
  "filter": {
    "type": "expression",
    "expression": {
      "version": "1",
      "rules": [
        "text"
      ]
    },
    "script": {
      "_scriptId": "60a2c4e6f321d800129a1a3c",
      "function": "filterItems"
    }
  },
  "inputFilter": {
    "type": "expression",
    "expression": {
      "version": "1",
      "rules": [
        "text"
      ]
    },
    "script": {
      "_scriptId": "60a2c4e6f321d800129a1a3c",
      "function": "filterItems"
    }
  },
  "mappings": {
    "0": {
      "generate": "name",
      "dataType": "string",
      "extract": "$.fullName",
      "extractDateFormat": "YYYY-MM-DD",
      "extractDateTimezone": "UTC",
      "generateDateFormat": "YYYY-MM-DD",
      "generateDateTimezone": "UTC",
      "default": "N/A",
      "lookupName": "countryCodeToName",
      "description": "Maps customer name",
      "sourceDataType": "string",
      "mappings": "[Circular Reference]",
      "buildArrayHelper": "[Circular Reference]",
      "status": "Active",
      "conditional": {
        "when": "record_created"
      }
    }
  },
  "transform": {
    "type": "expression",
    "expression": {
      "version": "1",
      "rules": [
        [
          {
            "extract": "text",
            "generate": "text",
            "key": "text"
          }
        ]
      ],
      "rulesTwoDotZero": "[Circular Reference]"
    },
    "script": {
      "_scriptId": "60a2c4e6f321d800129a1a3c",
      "function": "transformData"
    }
  },
  "hooks": {
    "preSavePage": {
      "function": "processPage",
      "_scriptId": "60a2c4e6f321d800129a1a3c",
      "_stackId": "text",
      "configuration": {
        "threshold": 100,
        "prefix": "EXP-"
      }
    }
  },
  "settingsForm": {
    "form": {
      "fieldMap": {
        "ANY_ADDITIONAL_PROPERTY": {
          "id": "url",
          "name": "url",
          "type": "text",
          "label": "Some url with handlebars support.",
          "description": "This input is used to collect a set of key-value pairs. The item delete action is optional and set using th showDelete prop. Also note that he key and value names can be configured as well.",
          "helpText": "example of a custom input.",
          "required": true,
          "multiline": true,
          "rowsMax": 5,
          "inputType": "number",
          "delimiter": ",",
          "mode": "json",
          "keyName": "theKey",
          "valueName": "theValue",
          "showDelete": true,
          "doNotAllowFutureDates": true,
          "skipTimezoneConversion": true,
          "options": [
            {
              "items": [
                "Create",
                "Update",
                "Delete"
              ]
            }
          ],
          "visibleWhen": [
            {
              "field": "mode",
              "is": [
                "Update"
              ]
            }
          ]
        }
      },
      "layout": {
        "type": "column",
        "containers": [
          {
            "type": "indent",
            "label": "Basic fields",
            "fields": [
              "A",
              "url"
            ],
            "containers": [
              {
                "label": "Indented fields",
                "fields": [
                  "keyValue",
                  "checkbox"
                ]
              }
            ]
          }
        ]
      },
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "init": {
      "function": "initializeForm",
      "_scriptId": "60a2c4e6f321d800129a1a3c"
    }
  },
  "settings": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "mockOutput": {
    "page_of_records": [
      {
        "record": {
          "id": "12345",
          "name": "Sample Product",
          "price": 99.99,
          "inStock": true,
          "categories": [
            "Electronics",
            "Accessories"
          ]
        }
      },
      {
        "record": {
          "id": "67890",
          "name": "Another Product",
          "price": 49.99,
          "inStock": false,
          "categories": [
            "Home",
            "Kitchen"
          ]
        }
      }
    ]
  },
  "_ediProfileId": "60a2c4e6f321d800129a1a3c",
  "_postParseListenerId": "60a2c4e6f321d800129a1a3c",
  "externalId": null,
  "_integrationId": null,
  "_connectorId": "text",
  "unencrypted": {},
  "useTechAdaptorForm": true,
  "rawData": "text",
  "preSave": {
    "function": "preSave",
    "_scriptId": "60a2c4e6f321d800129a1a3c"
  },
  "assistant": "text",
  "assistantMetadata": null,
  "sampleData": null,
  "sampleHeaders": [
    {
      "name": "text",
      "value": "text"
    }
  ],
  "sampleQueryParams": [
    {
      "name": "text",
      "value": "text"
    }
  ],
  "aiDescription": {
    "summary": "AI-generated overview of what this resource does and the systems it interacts with.",
    "detailed": "<p>A detailed AI-generated explanation of this resource's purpose, configuration, and behavior.</p><p>The text is regenerated when the resource's configuration changes.</p>",
    "generatedOn": "2023-05-10T13:25:42Z"
  },
  "apim": [
    {
      "apiId": "text",
      "flowId": "text",
      "status": "oaspending"
    }
  ],
  "postData": {
    "currentExportDateTime": "1751909419",
    "lastExportDateTime": "1742641523"
  }
}
{
  "data": [
    {}
  ],
  "dataURIs": [
    "text"
  ],
  "stages": [
    {
      "name": "text",
      "errors": [
        {}
      ],
      "data": [
        {}
      ]
    }
  ]
}

Invoke an export and return its data

post
/v1/exports/{_id}/invoke

Runs an existing export end-to-end and returns the fetched data (or errors) synchronously. Unlike POST /v1/flows/{_id}/run, which starts a full flow job, this endpoint invokes a single export in isolation and returns the raw result directly in the response body.

The request body is optional — pass {} or omit the body entirely for exports that require no input. Some adaptor types accept a data array in the body to supply input records.

On success, the response contains the export's fetched data. On application-level failure (e.g. the source system is unreachable), the endpoint still returns a successful HTTP status with the errors in an errors array — higher-level error codes are reserved for request-level validation (bad ID, missing auth).

This endpoint executes the export against the live source system. POST /v1/exports/preview also queries the live source (reads only, no job) — prefer it when you only need to inspect fetched records.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Export ID

Example: 5f8d43a1b9e5a80011a35f2c
Body

Optional input payload. Most exports ignore the body; some accept a data array of records to feed into the export pipeline.

Other propertiesanyOptional
Responses
200

Export completed. The response contains either the fetched data or an errors array if the export encountered application-level failures (connection timeout, file not found, etc.). Always inspect for errors even on 200.

application/json
Other propertiesanyOptional
post/v1/exports/{_id}/invoke
POST /v1/exports/{_id}/invoke HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "errors": [
    {
      "code": "UNEXPECTED_ERROR",
      "message": "An unexpected error has occurred; please contact Celigo Support.",
      "source": "internal",
      "isDownstreamError": true,
      "errorSource": {
        "type": "downstream",
        "service": "file-adaptor"
      },
      "resolved": false,
      "occurredAt": 1777645522601
    }
  ]
}

List dependencies of an export

get
/v1/exports/{_id}/dependencies

Returns the set of resources that depend on the specified resource. The response is an object whose keys are dependent-resource types (e.g. flows, imports) and whose values are arrays of dependency entries. Returns {} when no dependents exist, including for well-formatted but nonexistent IDs.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Resource ID.

Example: 5f8d43a1b9e5a80011a35f2c
Responses
200

Dependency map. Keys are resource-type strings; values are arrays of dependency entries. Returns {} when no dependents exist.

application/json

Map of dependent-resource types to arrays of dependency entries. Keys are plural resource type strings (e.g. flows, imports, connections). An empty object {} means no dependents.

get/v1/exports/{_id}/dependencies
GET /v1/exports/{_id}/dependencies HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}

Last updated

Was this helpful?