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
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.
Filter to exports matching this exact external identifier.
Maximum number of exports to return per page.
Opaque cursor for forward pagination. Pass the value from the Link
response header (rel="next") to fetch the next page.
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.
_integrationId,disabled,lastModifiedComma-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.
createdAt,lastModifiedSuccessfully retrieved list of exports
No exports exist in the account
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
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"
}
]Creates a new export configuration that can be used to retrieve data from applications or external sources.
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.
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.
Salesforce Contacts ExportFree-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.
Exports contacts from Salesforce for syncing to NetSuiteConnection 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).
60a2c4e6f321d800129a1a3cSelects 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).
HTTPExportPossible values: 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.
webhookPossible values: 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.
20Example: 100Handlebars 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.
https://your-store.myshopify.com/admin/customers/{{record.id}}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.
{{record.id}}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.
trueControls 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.
falseExample: trueSpecifies 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.
itemsWhen 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.
trueSpecifies 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.
["customerId","orderId"]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.
60a2c4e6f321d800129a1a3cWebhook 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.
60a2c4e6f321d800129a1a3cExternal identifier for correlating the export with a record in another system.
Integration this export belongs to.
Connector this export was created from, set when the export is part of an installed integration app.
Custom configuration values stored without encryption and returned in API responses.
When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.
Key referencing the raw sample payload captured for preview and testing.
Identifier for the connector assistant used to configure this export.
Metadata associated with the connector assistant configuration.
Sample data payload used for previewing and testing the export.
Export created successfully
Export object as returned by the API.
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.
Salesforce Contacts ExportFree-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.
Exports contacts from Salesforce for syncing to NetSuiteConnection 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).
60a2c4e6f321d800129a1a3cSelects 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).
HTTPExportPossible values: 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.
webhookPossible values: 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.
20Example: 100Handlebars 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.
https://your-store.myshopify.com/admin/customers/{{record.id}}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.
{{record.id}}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.
trueControls 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.
falseExample: trueSpecifies 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.
itemsWhen 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.
trueSpecifies 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.
["customerId","orderId"]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.
60a2c4e6f321d800129a1a3cWebhook 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.
60a2c4e6f321d800129a1a3cExternal identifier for correlating the export with a record in another system.
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)
5f9a7b2c3d4e5f6a7b8c9d0eReference 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
5e8d43a1b9e5a80011a35f1bCustom configuration values stored without encryption and returned in API responses.
When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.
Key referencing the raw sample payload captured for preview and testing.
Identifier for the connector assistant used to configure this export.
Metadata associated with the connector assistant configuration.
Sample data payload used for previewing and testing the export.
Unique identifier for the resource. Format is a 24-character hexadecimal string.
5f8d43a1b9e5a80011a35f2cTimestamp when the resource was created. Set automatically and cannot be modified.
2023-04-01T09:15:32ZTimestamp when the resource was last updated. Changes whenever any property is modified.
2023-04-15T14:30:15ZTimestamp when the resource was soft-deleted. When null or absent, the resource is active.
2023-05-20T11:45:32ZAPI identifier assigned to this export.
Server-managed execution-mode flag set on creation; client values are ignored.
Lookup caches linked to this export, managed by the platform.
Reference to the source resource this export was created from.
Template this export was created from.
When true, this export is in draft state and has not been confirmed.
Timestamp when the draft version of this export expires.
Timestamp until which debug logging is enabled for this export.
Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
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"
}Returns the complete configuration of a specific export.
The unique identifier of the export
5f8d43a1b9e5a80011a35f2cExport retrieved successfully
Export object as returned by the API.
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.
Salesforce Contacts ExportFree-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.
Exports contacts from Salesforce for syncing to NetSuiteConnection 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).
60a2c4e6f321d800129a1a3cSelects 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).
HTTPExportPossible values: 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.
webhookPossible values: 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.
20Example: 100Handlebars 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.
https://your-store.myshopify.com/admin/customers/{{record.id}}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.
{{record.id}}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.
trueControls 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.
falseExample: trueSpecifies 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.
itemsWhen 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.
trueSpecifies 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.
["customerId","orderId"]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.
60a2c4e6f321d800129a1a3cWebhook 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.
60a2c4e6f321d800129a1a3cExternal identifier for correlating the export with a record in another system.
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)
5f9a7b2c3d4e5f6a7b8c9d0eReference 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
5e8d43a1b9e5a80011a35f1bCustom configuration values stored without encryption and returned in API responses.
When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.
Key referencing the raw sample payload captured for preview and testing.
Identifier for the connector assistant used to configure this export.
Metadata associated with the connector assistant configuration.
Sample data payload used for previewing and testing the export.
Unique identifier for the resource. Format is a 24-character hexadecimal string.
5f8d43a1b9e5a80011a35f2cTimestamp when the resource was created. Set automatically and cannot be modified.
2023-04-01T09:15:32ZTimestamp when the resource was last updated. Changes whenever any property is modified.
2023-04-15T14:30:15ZTimestamp when the resource was soft-deleted. When null or absent, the resource is active.
2023-05-20T11:45:32ZAPI identifier assigned to this export.
Server-managed execution-mode flag set on creation; client values are ignored.
Lookup caches linked to this export, managed by the platform.
Reference to the source resource this export was created from.
Template this export was created from.
When true, this export is in draft state and has not been confirmed.
Timestamp when the draft version of this export expires.
Timestamp until which debug logging is enabled for this export.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
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"
}Updates an existing export with the provided configuration. This is used for major updates to an export's structure or behavior.
The unique identifier of the export
5f8d43a1b9e5a80011a35f2cFields 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.
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.
Salesforce Contacts ExportFree-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.
Exports contacts from Salesforce for syncing to NetSuiteConnection 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).
60a2c4e6f321d800129a1a3cSelects 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).
HTTPExportPossible values: 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.
webhookPossible values: 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.
20Example: 100Handlebars 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.
https://your-store.myshopify.com/admin/customers/{{record.id}}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.
{{record.id}}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.
trueControls 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.
falseExample: trueSpecifies 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.
itemsWhen 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.
trueSpecifies 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.
["customerId","orderId"]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.
60a2c4e6f321d800129a1a3cWebhook 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.
60a2c4e6f321d800129a1a3cExternal identifier for correlating the export with a record in another system.
Integration this export belongs to.
Connector this export was created from, set when the export is part of an installed integration app.
Custom configuration values stored without encryption and returned in API responses.
When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.
Key referencing the raw sample payload captured for preview and testing.
Identifier for the connector assistant used to configure this export.
Metadata associated with the connector assistant configuration.
Sample data payload used for previewing and testing the export.
Export updated successfully
Export object as returned by the API.
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.
Salesforce Contacts ExportFree-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.
Exports contacts from Salesforce for syncing to NetSuiteConnection 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).
60a2c4e6f321d800129a1a3cSelects 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).
HTTPExportPossible values: 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.
webhookPossible values: 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.
20Example: 100Handlebars 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.
https://your-store.myshopify.com/admin/customers/{{record.id}}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.
{{record.id}}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.
trueControls 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.
falseExample: trueSpecifies 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.
itemsWhen 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.
trueSpecifies 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.
["customerId","orderId"]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.
60a2c4e6f321d800129a1a3cWebhook 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.
60a2c4e6f321d800129a1a3cExternal identifier for correlating the export with a record in another system.
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)
5f9a7b2c3d4e5f6a7b8c9d0eReference 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
5e8d43a1b9e5a80011a35f1bCustom configuration values stored without encryption and returned in API responses.
When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.
Key referencing the raw sample payload captured for preview and testing.
Identifier for the connector assistant used to configure this export.
Metadata associated with the connector assistant configuration.
Sample data payload used for previewing and testing the export.
Unique identifier for the resource. Format is a 24-character hexadecimal string.
5f8d43a1b9e5a80011a35f2cTimestamp when the resource was created. Set automatically and cannot be modified.
2023-04-01T09:15:32ZTimestamp when the resource was last updated. Changes whenever any property is modified.
2023-04-15T14:30:15ZTimestamp when the resource was soft-deleted. When null or absent, the resource is active.
2023-05-20T11:45:32ZAPI identifier assigned to this export.
Server-managed execution-mode flag set on creation; client values are ignored.
Lookup caches linked to this export, managed by the platform.
Reference to the source resource this export was created from.
Template this export was created from.
When true, this export is in draft state and has not been confirmed.
Timestamp when the draft version of this export expires.
Timestamp until which debug logging is enabled for this export.
Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
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"
}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.
The unique identifier of the export
5f8d43a1b9e5a80011a35f2cExport deleted successfully
No content
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
The resource has dependents that must be deleted first. Each entry
in the errors array names one blocking resource.
DELETE /v1/exports/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Partially updates an export using a JSON Patch document (RFC 6902). Only the replace operation is supported, and only on the following whitelisted paths:
/debugUntil
Debug logging expiry (ISO-8601, max 1 hour from now)
/assistantMetadata
Assistant metadata object
All other paths are rejected with 422.
The unique identifier of the export
5f8d43a1b9e5a80011a35f2cA JSON Patch document (RFC 6902). Send an array of patch operations on whitelisted fields — all other paths are rejected with 422.
The operation to perform.
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".
The new value to set. Required for replace and add, omit for remove.
Export patched successfully
No content
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
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
Creates a copy of an existing export. Supports optionally remapping referenced connections (via connectionMap).
The unique identifier of the export to clone
5f8d43a1b9e5a80011a35f2cRequest body for cloning an export.
Optional name for the cloned resource. If omitted, the server may generate a default clone name.
Clone - Get AccountsExport cloned successfully. Returns a manifest of the resource the clone created.
Response body for a clone operation. Some clone endpoints return the cloned resource, while others may return a list of related created resources.
Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
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"
}
]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.
The unique identifier of the export
5f8d43a1b9e5a80011a35f2cThe id of the new connection to be used
60a2c4e6f321d800129a1a3cSuccessfully replaced connection on export
No content
Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
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
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 invokewith 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.
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.
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[].
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.
URIs for any files produced by the preview (e.g. file-based exports writing to cloud storage). Empty for non-file adaptors.
Trace keys for the records in this preview — one per record, correlating stage outputs to their source record.
Trace keys that collided during the preview — a diagnostic for trace-key generation; rarely non-empty in practice.
The export type does not support preview. Virtual (unsaved) previews
are rejected for simple and other virtual export types — only
builder-style exports (e.g. HTTP, RDBMS) can be previewed via this
endpoint.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Structural validation failed — typically missing_required_field
for fields the preview pipeline needs before it can execute
(e.g. _connectionId).
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 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.
The integration ID
The flow ID
Export object as returned by the API.
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.
Salesforce Contacts ExportFree-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.
Exports contacts from Salesforce for syncing to NetSuiteConnection 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).
60a2c4e6f321d800129a1a3cSelects 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).
HTTPExportPossible values: 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.
webhookPossible values: 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.
20Example: 100Handlebars 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.
https://your-store.myshopify.com/admin/customers/{{record.id}}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.
{{record.id}}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.
trueControls 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.
falseExample: trueSpecifies 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.
itemsWhen 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.
trueSpecifies 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.
["customerId","orderId"]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.
60a2c4e6f321d800129a1a3cWebhook 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.
60a2c4e6f321d800129a1a3cExternal identifier for correlating the export with a record in another system.
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)
5f9a7b2c3d4e5f6a7b8c9d0eReference 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
5e8d43a1b9e5a80011a35f1bCustom configuration values stored without encryption and returned in API responses.
When true, the UI presents the full technical adaptor form for this export instead of the simplified assistant form.
Key referencing the raw sample payload captured for preview and testing.
Identifier for the connector assistant used to configure this export.
Metadata associated with the connector assistant configuration.
Sample data payload used for previewing and testing the export.
Unique identifier for the resource. Format is a 24-character hexadecimal string.
5f8d43a1b9e5a80011a35f2cTimestamp when the resource was created. Set automatically and cannot be modified.
2023-04-01T09:15:32ZTimestamp when the resource was last updated. Changes whenever any property is modified.
2023-04-15T14:30:15ZTimestamp when the resource was soft-deleted. When null or absent, the resource is active.
2023-05-20T11:45:32ZAPI identifier assigned to this export.
Server-managed execution-mode flag set on creation; client values are ignored.
Lookup caches linked to this export, managed by the platform.
Reference to the source resource this export was created from.
Template this export was created from.
When true, this export is in draft state and has not been confirmed.
Timestamp when the draft version of this export expires.
Timestamp until which debug logging is enabled for this export.
Successfully previewed export data
Response body for export data preview
The data exported from source app
URIs to the data in the source app
Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
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": [
{}
]
}
]
}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.
Export ID
5f8d43a1b9e5a80011a35f2cOptional input payload. Most exports ignore the body; some accept
a data array of records to feed into the export pipeline.
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.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Export not found
Server error — can occur when the export is misconfigured (e.g. a SimpleExport with no connection).
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
}
]
}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.
Resource ID.
5f8d43a1b9e5a80011a35f2cDependency map. Keys are resource-type strings; values are arrays
of dependency entries. Returns {} when no dependents exist.
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.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
GET /v1/exports/{_id}/dependencies HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}Last updated
Was this helpful?