{"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.\n","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**\n\n*Notes:*\n* *If the Insight data collection does not exist it will be created*\n* *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.<br/><br/>\n**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.<br/><br/>\n**Notes:**\n* The deletion is asynchronous progress can be monitored by calling [getAsyncStatus](/reference/getasyncstatus)\n* 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.\n","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. <br/><br/>\n**Notes:**\n* The deletion is asynchronous progress can be monitored by calling [getAsyncStatus](/reference/getasyncstatus)\n* 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.\n\n*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<br><br>*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.<br/>\n***Note:***\n* 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<br><br>\n***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.<br/>\n***Note:***\n* 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.<br>***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<br><br>*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.<br>***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.<br/>\n***Note:***\n* 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.\n","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.<br>***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.<br/><br/>\n**Notes:**\n* 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.<br>***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.<br>***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.<br>***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.<br>***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.<br/>\n***Note:***\n* 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.<br>***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"]}