openapi: 3.0.0 info: title: Insight data service description: 'Manage Insight data collections and records at both account and contact level. Use this API to bulk-import records via asynchronous upsert, retrieve and update individual records, create and delete collections, empty collections, and poll the status of import or asynchronous operations. Insight data makes structured behavioural and transactional data — such as orders, product catalogues, and web activity — available to drive personalisation, segmentation, and product recommendations across your campaigns. ' version: 3.3.1 externalDocs: description: Learn more about Dotdigital APIs url: https://developer.dotdigital.com servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 security: - basicAuth: [] paths: /insightData/v3/import: put: summary: Bulk imports Insight data description: 'Imports a batch of Insight data records into a collection and upserts them. This either creates new records or updates already existing records. This is an asynchronous operation and you need to check when it is complete by calling **getImportStatus** *Notes:* * *If the Insight data collection does not exist it will be created* * *If targeting a **contact** scoped Insight collection, then you **must** provide a **contactIdentity** on each record*' operationId: importInsightData parameters: - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 requestBody: description: Insight data data records to be imported content: application/json: schema: $ref: '#/components/schemas/v3_import_body' examples: Account level Insight data: value: collectionName: catalog_myStore collectionScope: account collectionType: catalog records: - key: '24938' json: name: Armani Jeans beanie hat price: 56 url: https://mystore.fake.com/product/24938 sku: hat-24938-men Contact level Insight data: value: collectionName: Orders collectionScope: contact collectionType: orders records: - contactIdentity: identifier: email value: joe.bloggs@emailsim.io key: 24938 json: PurchaseDate: '2020-01-01T09:40:18.527Z' TotalExTax: 56 TotalIncTax: 67.2 SalesChannel: In store SalesSubChannel: Manchester Product: Name: Armani Jeans beanie hat Brand: Armani Jeans Department: Menswear Category: Hat PriceExTax: 56 ProductID: '24938' required: true responses: '202': description: Import processing content: application/json: schema: $ref: '#/components/schemas/inline_response_202' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:badJson description: The request JSON is badly formed '401': description: Unauthorized /insightData/v3/import/{importId}: get: summary: Retrieve the status of a Insight data import request description: Retrieves the status of a Insight data import request and the results if available. operationId: getImportStatus parameters: - name: importId in: path description: The import id you want the status for required: true schema: type: string example: d7de900d-d337-43f6-b1e1-c8ec73e1a434 - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/inline_response_200' examples: Import in progress: value: importId: d7de900d-d337-43f6-b1e1-c8ec73e1a434 status: NotStarted Import complete: value: importId: d7de900d-d337-43f6-b1e1-c8ec73e1a434 status: Finished collectionName: Orders summary: totalRecords: 10 totalImported: 9 totalRejected: 1 failures: - collectionOwner: ownerType: contact contactIdentity: identifier: email value: joe.bloggs@emailsim.io failureReason: Unknown details: - Field 'name' is required but was missing - Field 'price' is expected to be a number key: '24938' json: PurchaseDate: '2020-01-01T09:40:18.527Z' TotalExTax: 56 TotalIncTax: 67.2 SalesChannel: In store SalesSubChannel: Manchester Product: Name: Armani Jeans beanie hat Brand: Armani Jeans Department: Menswear Category: Hat PriceExTax: 56 ProductID: '24938' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The id value '123646' is invalid for the identifier 'email' '401': description: Unauthorized '404': description: Import request not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:importNotFound description: The import request 'd7de900d-d337-43f6-b1e1-c8ec73e1a434' could not be found! /insightData/v3/async/{jobId}: get: summary: Retrieve the status of an asynchronous request description: Retrieves the status of an asynchronous request and the results if available, such as emptying or deleting collections. operationId: getAsyncStatus parameters: - name: jobId in: path description: The async job id you want the status for required: true schema: type: string example: d7de900d-d337-43f6-b1e1-c8ec73e1a434 - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/inline_response_200_1' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The id value '123646' is invalid for the identifier 'email' '401': description: Unauthorized '404': description: Asynchronous job not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:asyncJobNotFound description: The job ID 'd7de900d-d337-43f6-b1e1-c8ec73e1a434' could not be found! /insightData/v3/collections: get: summary: Lists all Insight data collections description: Retrieves a list of Insight data collections used at both account and contact level operationId: getAllInsightDataCollections parameters: - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '200': description: Successful operation content: application/json: schema: type: array description: The Insight data collections for the account items: $ref: '#/components/schemas/collectionSummary' '401': description: Unauthorized /insightData/v3/collections/{collectionName}: post: summary: Creates an Insight data collection description: 'Creates an empty Insight data collection. If the collection already exists a successful result will be returned.

**Note:** You can create a maximum of 1000 Insight data collections.' operationId: postCreateInsightDataCollection parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 - name: collectionScope in: query description: The scope the collection applies to, either account level or contact level required: true schema: $ref: '#/components/schemas/collectionScope' - name: collectionType in: query description: Type of data the collection holds; **custom** must be used when adding custom data required: true schema: $ref: '#/components/schemas/collectionType' responses: '200': description: Insight data collection already exists '201': description: Insight data collection created '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '412': description: Insight data collection limit exceeded delete: summary: Deletes an Insight data collection description: 'Requests a delete of a specified Insight data collection and all records for either an account scoped collection or for all contacts when referencing an contact scoped collection.

**Notes:** * The deletion is asynchronous progress can be monitored by calling [getAsyncStatus](/reference/getasyncstatus) * If you delete a contact scoped Insight data collection then it is deleted for all contacts!' operationId: delInsightDataCollection parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '202': description: Insight data collection delete request accepted content: application/json: schema: $ref: '#/components/schemas/asyncJobId' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/accounts/{collectionName}/deleteRecords: delete: summary: Deletes multiple records from an account scoped Insight Data collection. description: 'Delete from 1 to 5000 records from a single account scoped Insight Data collection in a single call. This call can be used when you need to remove many records from a collection but not all. ' operationId: delAccountInsightDataRecords parameters: - name: collectionName in: path description: The Insight data collection name. required: true schema: $ref: '#/components/schemas/collectionName' - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 requestBody: description: Record keys to delete content: application/json: schema: $ref: '#/components/schemas/collectionName_deleteRecords_body' required: true responses: '200': description: Insight data record deleted content: application/json: schema: $ref: '#/components/schemas/inline_response_200_2' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:noRecordsSpecified description: You must speify the keys for the records to be deleted from the collection. '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/collections/{collectionName}/empty: delete: summary: Empties an Insight data collection description: 'Deletes all records from the specified Insight data collection but not the collection itself, so further data can be added without removing dependencies to product recommendations, campaigns, or segments.

**Notes:** * The deletion is asynchronous progress can be monitored by calling [getAsyncStatus](/reference/getasyncstatus) * If you empty a contact scoped Insight data collection then all data for all contacts in that collection will be removed' operationId: delEmptyAnyInsightDataCollection parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '202': description: Empty request accepted content: application/json: schema: $ref: '#/components/schemas/asyncJobId' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/collections/{collectionName}/schema: get: summary: Gets the JSON schema for an Insight data collection description: 'Gets the schema for an Insight data collection. *Note: All records added to the collection must adhere to this schema, but are allowed to extend it.*' operationId: getInsightDataCollectionSchema parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '200': description: Schema for the collection content: application/json: schema: $ref: '#/components/schemas/inline_response_200_3' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/account: get: summary: List account Insight data collections description: Retrieves a list of all Insight data collections for an account operationId: getAccountInsightDataCollections parameters: - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '200': description: Successful operation content: application/json: schema: type: array description: The Insight data collections for the account items: $ref: '#/components/schemas/collectionSummary' '401': description: Unauthorized /insightData/v3/account/{collectionName}: get: summary: Retrieves records from an accounts Insight data collection description: 'Retrieve all records from an Insight data collection

*Note: All data is returned in ascending order*' operationId: getAccountInsightData parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 - name: ~modified in: query description: 'Filter by last modified date.
***Note:*** * The date must be in ([ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601))' schema: pattern: ^gte::\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$ type: string examples: Greater than or equal to modified date: value: gte::2021-12-17T00:00:00Z - name: limit in: query description: Maximum number of records to retrieve per page schema: maximum: 5000 minimum: 1 type: integer format: int32 example: 1000 - name: marker in: query description: Pagination marker to retrieve the data from schema: type: string example: RXhhbXBsZSBhbXJrZXIgdmFsdWU= responses: '200': description: Insight data retrieved content: application/json: schema: $ref: '#/components/schemas/inline_response_200_4' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/account/{collectionName}/{recordId}: get: summary: Retrieve single record from an account Insight data collection description: Retrieve single record from an account Insight data collection operationId: getAccountInsightDataRecord parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: recordId in: path description: Unique ID for the Insight data record required: true schema: type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '200': description: Insight data record retrieved content: application/json: schema: $ref: '#/components/schemas/returnedInsightRecord' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The id value '123646' is invalid for the identifier 'email' '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found recordNotFound: summary: Record not found value: errorCode: insightData:recordNotFound description: The Insight data record could not be found details: - item: '24938' description: Not found in the contacts collection '{collectionName}' put: summary: Upsert record into an account Insight data collection description: Updates or creates a record in a specified Insight data collection operationId: putAccountInsightDataRecord parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: recordId in: path description: Unique ID for the Insight data record required: true schema: type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 requestBody: description: Insight data record content: application/json: schema: type: string example: '{"id":387,"name":"400 watt power supply","price":109,"pricelevel":"List Price","sku":"ACC00001","stock":22,"status":true,"image_path":"https://example.com/core/media/media.nl?id=292&c=TD2815248&h=3fvIALEwyWdcy9fWbbmpfS3LBSIos2tziU8i5Rj-Zp9piVEw","url":"https://exanmple.com/item/387","description":"400 Watt Power Supply","lastmodifiedutc":"2024-08-28T11:18:30Z","type":"Simple"}' required: true responses: '201': description: Record created '204': description: Record replaced '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The id value '123646' is invalid for the identifier 'email' '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found delete: summary: Delete record from an account Insight data collection description: Deletes a single record from a specified Insight data collection operationId: delAccountInsightDataRecord parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: recordId in: path description: Unique ID for the Insight data record required: true schema: type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '204': description: Insight data record deleted '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'My collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found recordNotFound: summary: Record not found value: errorCode: insightData:recordNotFound description: The Insight data record could not be found details: - item: '24938' description: Not found in the contacts collection '{collectionName}' /insightData/v3/contacts/{collectionName}: get: summary: Retrieve data for contact-scoped Insight data collection description: 'Retrieves records from across all contacts for a contacts scoped Insight data collection

***Note:** All data is returned in ascending order*' operationId: getAllContactsInsightData parameters: - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 - name: ~modified in: query description: 'Filter by last modified date.
***Note:*** * The date must be in ([ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601))' schema: pattern: ^gte::\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$ type: string examples: Greater than or equal to modified date: value: gte::2021-12-17T00:00:00Z - name: limit in: query description: Maximum number of records to retrieve per page schema: maximum: 5000 minimum: 1 type: integer format: int32 example: 1000 - name: marker in: query description: Pagination marker to retrieve the data from schema: type: string example: RXhhbXBsZSBhbXJrZXIgdmFsdWU= responses: '200': description: Insight data retrieved content: application/json: schema: $ref: '#/components/schemas/inline_response_200_5' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/contacts/{identifier}/{value}: get: summary: List Insight data collections for a contact description: Retrieves a list of Insight Data collections for a contact using a specific identifier operationId: getContactInsightDataCollections parameters: - name: identifier in: path description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of **contactId**, **email** or **mobileNumber** required: true schema: maxLength: 50 minLength: 1 pattern: (^[-A-Za-z0-9_]{1,50}$) type: string - name: value in: path description: The unique value to identify the contact.
***Note:** Must be the same type as the **identifier*** required: true schema: maxLength: 256 minLength: 1 type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '200': description: Successful operation content: application/json: schema: maxItems: 1000 type: array description: The Insight data collections for the contact items: $ref: '#/components/schemas/collectionSummary' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The id value '123646' is invalid for the identifier 'email' '401': description: Unauthorized '404': description: Contact not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:contactNotFound description: The following contacts could not be found details: - item: unknown@emailsim.io description: Not found using the identifier 'email' /insightData/v3/contacts/{identifier}/{value}/{collectionName}: get: summary: Retrieve records for a contact from Insight data collection description: 'Retrieves records from a specified Insight data collection for a contact

*Note: All data is returned in ascending order*' operationId: getContactInsightData parameters: - name: identifier in: path description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of **contactId**, **email** or **mobileNumber** required: true schema: maxLength: 50 minLength: 1 pattern: (^[-A-Za-z0-9_]{1,50}$) type: string - name: value in: path description: The unique value to identify the contact.
***Note:** Must be the same type as the **identifier*** required: true schema: maxLength: 256 minLength: 1 type: string - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 - name: ~modified in: query description: 'Filter by last modified date.
***Note:*** * The date must be in ([ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601))' schema: pattern: ^gte::\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$ type: string examples: Greater than or equal to modified date: value: gte::2021-12-17T00:00:00Z - name: limit in: query description: Maximum number of records to retrieve per page schema: maximum: 5000 minimum: 1 type: integer format: int32 example: 1000 - name: marker in: query description: Pagination marker to retrieve the data from schema: type: string example: RXhhbXBsZSBhbXJrZXIgdmFsdWU= responses: '200': description: Insight data retrieved content: application/json: schema: $ref: '#/components/schemas/inline_response_200_6' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The id value '123646' is invalid for the identifier 'email' '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: contactNotFound: summary: Contact cannot be found value: errorCode: insightData:contactNotFound description: The following contacts could not be found details: - item: unknown@emailsim.io description: Not found using the identifier 'email' collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/contacts/{identifier}/{value}/{collectionName}/deleteRecords: delete: summary: Deletes multiple records from an contact scoped Insight Data collection. description: 'Delete from 1 to 5000 records from a single contact scoped Insight Data collection in a single call. This call can be used when you need to remove many records from a collection but not all. ' operationId: delContactInsightDataRecords parameters: - name: identifier in: path description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of **contactId**, **email** or **mobileNumber** required: true schema: maxLength: 50 minLength: 1 pattern: (^[-A-Za-z0-9_]{1,50}$) type: string - name: value in: path description: The unique value to identify the contact.
***Note:** Must be the same type as the **identifier*** required: true schema: maxLength: 256 minLength: 1 type: string - name: collectionName in: path description: The Insight data collection name. required: true schema: $ref: '#/components/schemas/collectionName' requestBody: description: Record keys to delete content: application/json: schema: $ref: '#/components/schemas/collectionName_deleteRecords_body_1' required: true responses: '200': description: Insight data record deleted content: application/json: schema: $ref: '#/components/schemas/inline_response_200_2' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:noRecordsSpecified description: You must speify the keys for the records to be deleted from the collection. '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: contactNotFound: summary: Contact cannot be found value: errorCode: insightData:contactNotFound description: The following contacts could not be found details: - item: unknown@emailsim.io description: Not found using the identifier 'email' collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/contacts/{identifier}/{value}/{collectionName}/empty: delete: summary: Empty Insight data collection for a contact description: 'Deletes all records from a specified Insight data collection for a single contact. The collection itself is not deleted; this allows new data to be added without affecting data dependencies.

**Notes:** * The deletion is asynchronous progress can be monitored by calling [getAsyncStatus](/reference/getasyncstatus)' operationId: delEmptyContactInsightDataCollection parameters: - name: identifier in: path description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of **contactId**, **email** or **mobileNumber** required: true schema: maxLength: 50 minLength: 1 pattern: (^[-A-Za-z0-9_]{1,50}$) type: string - name: value in: path description: The unique value to identify the contact.
***Note:** Must be the same type as the **identifier*** required: true schema: maxLength: 256 minLength: 1 type: string - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '202': description: Empty request accepted content: application/json: schema: $ref: '#/components/schemas/asyncJobId' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: contactNotFound: summary: Contact cannot be found value: errorCode: insightData:contactNotFound description: The following contacts could not be found details: - item: unknown@emailsim.io description: Not found using the identifier 'email' collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found /insightData/v3/contacts/{identifier}/{value}/{collectionName}/{recordId}: get: summary: Retrieve Insight data record for a contact description: Retrieves a single record from a specified Insight data collection for a contact operationId: getContactInsightDataRecord parameters: - name: identifier in: path description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of **contactId**, **email** or **mobileNumber** required: true schema: maxLength: 50 minLength: 1 pattern: (^[-A-Za-z0-9_]{1,50}$) type: string - name: value in: path description: The unique value to identify the contact.
***Note:** Must be the same type as the **identifier*** required: true schema: maxLength: 256 minLength: 1 type: string - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: recordId in: path description: Unique ID for the Insight data record required: true schema: type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '200': description: Insight data record retrieved content: application/json: schema: $ref: '#/components/schemas/returnedInsightRecord' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The id value '123646' is invalid for the identifier 'email' '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: contactNotFound: summary: Contact cannot be found value: errorCode: insightData:contactNotFound description: The following contacts could not be found details: - item: unknown@emailsim.io description: Not found using the identifier 'email' collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found recordNotFound: summary: Record not found value: errorCode: insightData:recordNotFound description: The Insight data record could not be found details: - item: '24938' description: Not found in the contacts collection '{collectionName}' put: summary: Upsert record into Insight data collection for a contact description: Updates or creates a record in a specified Insight data collection for a contact operationId: putContactInsightDataRecord parameters: - name: identifier in: path description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of **contactId**, **email** or **mobileNumber** required: true schema: maxLength: 50 minLength: 1 pattern: (^[-A-Za-z0-9_]{1,50}$) type: string - name: value in: path description: The unique value to identify the contact.
***Note:** Must be the same type as the **identifier*** required: true schema: maxLength: 256 minLength: 1 type: string - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: recordId in: path description: Unique ID for the Insight data record required: true schema: type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 requestBody: description: Insight data record content: application/json: schema: type: string format: json example: '{"PurchaseDate":"2020-01-01T09:40:18.527Z","TotalExTax":111.2,"TotalIncTax":133.44,"Product":[{"Name":"Long unlined leather gloves","Brand":"Dents","Department":"Womenswear","Category":"Gloves","PriceExTax":111.2,"ProductID":"24920"}],"SalesChannel":"In store","SalesSubChannel":"London - One New Change"}' required: true responses: '201': description: Record created '204': description: Record replaced '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: contactNotFound: summary: Contact cannot be found value: errorCode: insightData:contactNotFound description: The following contacts could not be found details: - item: unknown@emailsim.io description: Not found using the identifier 'email' collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found delete: summary: Delete record from Insight data collection for a contact description: Deletes a single record from a specified Insight data collection for a contact operationId: delContactInsightDataRecord parameters: - name: identifier in: path description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of **contactId**, **email** or **mobileNumber** required: true schema: maxLength: 50 minLength: 1 pattern: (^[-A-Za-z0-9_]{1,50}$) type: string - name: value in: path description: The unique value to identify the contact.
***Note:** Must be the same type as the **identifier*** required: true schema: maxLength: 256 minLength: 1 type: string - name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string - name: recordId in: path description: Unique ID for the Insight data record required: true schema: type: string - name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 responses: '204': description: Insight data record deleted '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/errorResponse' example: errorCode: insightData:invalidId description: The collectionName value 'my collection' is invalid '401': description: Unauthorized '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/errorResponse' examples: contactNotFound: summary: Contact cannot be found value: errorCode: insightData:contactNotFound description: The following contacts could not be found details: - item: unknown@emailsim.io description: Not found using the identifier 'email' collectionNotFound: summary: Collection not found value: errorCode: insightData:collectionNotFound description: The collection could not be found details: - item: myOrders description: Not found recordNotFound: summary: Record not found value: errorCode: insightData:recordNotFound description: The Insight data record could not be found details: - item: '24938' description: Not found in the contacts collection '{collectionName}' components: schemas: collectionName: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string description: Name of the Insight data collection example: Orders insightRecord: required: - json - key type: object properties: key: type: string description: The unique key for the record example: '24938' json: type: object additionalProperties: true format: json example: PurchaseDate: '2020-01-01T09:40:18.527Z' TotalExTax: 56 TotalIncTax: 67.2 SalesChannel: In store SalesSubChannel: Manchester Product: Name: Armani Jeans beanie hat Brand: Armani Jeans Department: Menswear Category: Hat PriceExTax: 56 ProductID: '24938' description: An Insight data record upsertInsightRecord: description: An Insight data record to be upserted allOf: - type: object properties: contactIdentity: allOf: - description: If targeting a contact scoped collection you must specify the contact that owns this record - $ref: '#/components/schemas/contactIdentifier' additionalProperties: false - $ref: '#/components/schemas/insightRecord' returnedInsightRecord: description: An Insight data record allOf: - $ref: '#/components/schemas/insightRecord' - required: - created - updated type: object properties: created: type: string description: ISO 8601 UTC timestamp for when the record was created format: date-time updated: type: string description: ISO 8601 UTC timestamp for when the record was last updated format: date-time ownerContactId: $ref: '#/components/schemas/contactId' additionalProperties: false collectionSummary: required: - collectionName - collectionType - recordCount type: object properties: collectionName: $ref: '#/components/schemas/collectionName' collectionType: $ref: '#/components/schemas/collectionType' collectionScope: type: string description: Scope the collection applies to; account level or contact level example: contact enum: - account - contact recordCount: type: integer description: Number of records in the collection format: int64 example: 100 description: An Insight data collection summary asyncJobId: required: - jobId type: object properties: jobId: type: string description: The unique asynchronous job id example: e036d11f-15be-4497-8dee-5ca210abeca6 collectionScope: type: string description: The scope the collection applies to, either account level or contact level enum: - account - contact collectionType: type: string description: Type of data the collection holds; **custom** denotes your custom data. enum: - cartInsight - catalog - consentInsight - custom - easyEditorExtensions - nostoEmailCampaigns - orders - productCategories - webInsight - wishList collectionOwner: required: - ownerType type: object properties: ownerType: type: string enum: - account - contact contactIdentity: $ref: '#/components/schemas/contactIdentifier' errorResponse: required: - description - errorCode type: object properties: errorCode: type: string description: Unique error code description: type: string description: Description of the issue details: type: array items: $ref: '#/components/schemas/errorResponse_details' paginationLinks: required: - first - self type: object properties: self: $ref: '#/components/schemas/paginationLinks_self' first: $ref: '#/components/schemas/paginationLinks_first' prev: $ref: '#/components/schemas/paginationLinks_prev' next: $ref: '#/components/schemas/paginationLinks_next' last: $ref: '#/components/schemas/paginationLinks_last' description: Pagination links contactIdentifier: required: - identifier - value type: object properties: identifier: type: string description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of contactId, email or mobileNumber example: contactId value: type: string description: The unique value to identify the contact or the same type as the **identifier** nullable: true example: fred.bloggs@emailsim.io contactId: minimum: 0 type: integer description: Immutable unique identifier for the contact example: 35212311 v3_import_body: required: - collectionName - collectionScope - collectionType - records type: object properties: collectionName: $ref: '#/components/schemas/collectionName' collectionScope: $ref: '#/components/schemas/collectionScope' collectionType: $ref: '#/components/schemas/collectionType' records: minItems: 1 type: array description: The Insight data records for the collection items: $ref: '#/components/schemas/upsertInsightRecord' inline_response_202: type: object properties: importId: type: string description: The import id to use to retrieve the imports status using **getImportStatus** example: d7de900d-d337-43f6-b1e1-c8ec73e1a434 inline_response_200: required: - importId - status type: object properties: importId: type: string description: The import request ID example: d7de900d-d337-43f6-b1e1-c8ec73e1a434 status: type: string example: Finished enum: - NotStarted - Processing - Complete - Failed collectionName: $ref: '#/components/schemas/collectionName' summary: $ref: '#/components/schemas/inline_response_200_summary' failures: minItems: 1 type: array description: The failed to import Insight data records for the collection items: allOf: - description: Details of the owner of the collection being targeted - required: - collectionOwner type: object properties: collectionOwner: $ref: '#/components/schemas/collectionOwner' - required: - failureReason type: object properties: failureReason: type: string description: The reason the record could not be imported enum: - Unknown - InvalidClientKey - InvalidContactIdentifier - InvalidJson - DuplicateKey - ContactIdDoesNotExist - ContactEmailDoesNotExist - JsonContainsNestedArray - JsonKeyTooLong - JsonKeyInvalidCharacters - JsonValueTooLong - JsonValueIncompatibleWithSchema - JsonNumberValueTooLarge details: type: array description: Any additional failure details items: type: string description: A failure reason - $ref: '#/components/schemas/insightRecord' inline_response_200_1: required: - jobId - status type: object properties: jobId: type: string description: Asynchronous job id example: d7de900d-d337-43f6-b1e1-c8ec73e1a434 status: type: string example: Finished enum: - NotStarted - NotFinished - Finished - Failed - NotAvailableInThisVersion summary: $ref: '#/components/schemas/inline_response_200_1_summary' failures: type: array items: $ref: '#/components/schemas/errorResponse' collectionName_deleteRecords_body: required: - keys type: object properties: keys: maxItems: 5000 minItems: 1 type: array description: The record keys to be deleted. example: - MKS-123 - ABS-9932-A - XXX-unknown items: type: string inline_response_200_2: required: - failures - summary type: object properties: summary: $ref: '#/components/schemas/inline_response_200_2_summary' notFound: type: array description: The record keys that could not be found in the collection for deletion. items: type: string example: '["XXX-unknown"]' description: The results of the deletion. inline_response_200_3: required: - collectionName - collectionType - schema type: object properties: collectionName: $ref: '#/components/schemas/collectionName' collectionType: $ref: '#/components/schemas/collectionType' schema: type: object additionalProperties: true description: The JSON schema for the collection example: - name: key mode: NULLABLE type: STRING fields: [] - name: contactIdentifier mode: REQUIRED type: INTEGER fields: [] - name: dateModified mode: REQUIRED type: TIMESTAMP fields: [] - name: deleted mode: NULLABLE type: BOOLEAN fields: [] - name: rowId mode: NULLABLE type: STRING fields: [] - name: json mode: NULLABLE type: RECORD fields: - name: currency type: STRING fields: [] - name: discount_amount type: FLOAT fields: [] - name: order_total type: FLOAT fields: [] - name: order_subtotal type: FLOAT fields: [] - name: products mode: REPEATED type: RECORD fields: - name: id type: FLOAT fields: [] - name: name type: STRING fields: [] - name: price type: FLOAT fields: [] - name: specialprice type: FLOAT fields: [] - name: qty type: FLOAT fields: [] - name: sku type: STRING fields: [] - name: purchase_date type: TIMESTAMP fields: [] - name: base_subtotal_incl_tax type: FLOAT fields: [] - name: billing_address type: RECORD fields: - name: billing_address_1 type: STRING fields: [] - name: billing_address_2 type: STRING fields: [] - name: billing_city type: STRING fields: [] - name: billing_country type: STRING fields: [] - name: billing_postcode type: STRING fields: [] - name: delivery_method type: STRING fields: [] - name: delivery_total type: FLOAT fields: [] - name: order_status type: STRING fields: [] - name: id type: STRING fields: [] description: An Insight data collection summary inline_response_200_4: required: - _items - _links type: object properties: _links: $ref: '#/components/schemas/paginationLinks' _items: maxItems: 1000 type: array description: The returned Insight data records example: - key: '24938' json: PurchaseDate: '2020-01-01T09:40:18.527Z' TotalExTax: 56 TotalIncTax: 67.2 SalesChannel: In store SalesSubChannel: Manchester Product: Name: Armani Jeans beanie hat Brand: Armani Jeans Department: Menswear Category: Hat PriceExTax: 56 ProductID: '24938' created: '2023-04-17T11:50:40.390Z' updated: '2023-04-17T11:50:40.390Z' items: $ref: '#/components/schemas/returnedInsightRecord' inline_response_200_5: required: - _items - _links type: object properties: _links: $ref: '#/components/schemas/paginationLinks' _items: maxItems: 1000 type: array description: The returned Insight data records items: $ref: '#/components/schemas/returnedInsightRecord' inline_response_200_6: required: - _items - _links type: object properties: _links: $ref: '#/components/schemas/paginationLinks' _items: type: array description: The returned Insight data records items: $ref: '#/components/schemas/returnedInsightRecord' collectionName_deleteRecords_body_1: required: - keys type: object properties: keys: maxItems: 5000 minItems: 1 type: array description: The record keys to be deleted. example: - MKS-123 - ABS-9932-A - XXX-unknown items: type: string errorResponse_details: required: - description - item type: object properties: item: type: string description: Item the error is associated with, for example, field name, unique identifier for an entity or item in batch description: type: string description: Description of the error paginationLinks_self: required: - link - marker type: object properties: marker: type: string description: Pagination marker to be passed to API calls to retrieve this data page link: type: string description: Link to retrieve the data page description: Details for accessing this data page via pagination paginationLinks_first: required: - link - marker type: object properties: marker: type: string description: Pagination marker to be passed to API calls to retrieve this data page link: type: string description: Link to retrieve the data page description: Details for accessing the first page worth of data paginationLinks_prev: required: - link - marker type: object properties: marker: type: string description: Pagination marker to be passed to API calls to retrieve this data page link: type: string description: Link to retrieve the data page description: Details for accessing the previous pagea worth of data paginationLinks_next: required: - link - marker type: object properties: marker: type: string description: Pagination marker to be passed to API calls to retrieve this data page link: type: string description: Link to retrieve the data page description: Details for accessing the next pages worth of data paginationLinks_last: required: - link - marker type: object properties: marker: type: string description: Pagination marker to be passed to API calls to retrieve this data page link: type: string description: Link to retrieve the data page description: Details for accessing the last pages worth of data inline_response_200_summary: type: object properties: totalRecords: type: integer description: The number of records submitted for import format: int32 example: 10 totalImported: type: integer description: The number of records successfully imported format: int32 example: 9 totalRejected: type: integer description: The number of records that were rejected due to an issue format: int32 example: 1 inline_response_200_1_summary: type: object properties: totalRecords: type: integer description: The number of records submitted format: int32 example: 10 totalProcessed: type: integer description: The number of records successfully processed format: int32 example: 9 totalFailed: type: integer description: The number of records that failed to process format: int32 example: 1 inline_response_200_2_summary: type: object properties: totalRecords: type: integer description: The number of records submitted for deletion format: int32 example: 3 totalDeleted: type: integer description: The number of records successfully deleted format: int32 example: 2 totalNotFound: type: integer description: The number of records that were not found for deletion format: int32 example: 1 parameters: collectionNameParam: name: collectionName in: path description: Insight data collection name required: true schema: maxLength: 255 pattern: (^[-A-Za-z_][-A-Za-z0-9_]{1,255}$) type: string recordIdParam: name: recordId in: path description: Unique ID for the Insight data record required: true schema: type: string integrationTrackingToken: name: x-ddg-integration-token in: header description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here. required: false schema: pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/ type: string example: 5a96bc79-19a7-4544-973b-e2da0c9136f9 modifiedFilter: name: ~modified in: query description: 'Filter by last modified date.
***Note:*** * The date must be in ([ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601))' schema: pattern: ^gte::\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$ type: string examples: Greater than or equal to modified date: value: gte::2021-12-17T00:00:00Z limit: name: limit in: query description: Maximum number of records to retrieve per page schema: maximum: 5000 minimum: 1 type: integer format: int32 example: 1000 marker: name: marker in: query description: Pagination marker to retrieve the data from schema: type: string example: RXhhbXBsZSBhbXJrZXIgdmFsdWU= identifier: name: identifier in: path description: The field to use to uniquely identify the contact. This can be a custom identifier or a contact identifer of **contactId**, **email** or **mobileNumber** required: true schema: maxLength: 50 minLength: 1 pattern: (^[-A-Za-z0-9_]{1,50}$) type: string value: name: value in: path description: The unique value to identify the contact.
***Note:** Must be the same type as the **identifier*** required: true schema: maxLength: 256 minLength: 1 type: string securitySchemes: basicAuth: type: http scheme: basic x-samples-languages: - curl - csharp - java - javascript - node - python - php - ruby