openapi: 3.0.0 info: version: v1 title: Listrak Data Import REST API description: "# INTRODUCTION\r\nWelcome to the Listrak Data Import REST\ \ API!\n# Versioning\r\n\r\nThe API version is denoted in the URI. This API's\ \ base URI is:\r\n\r\n`https://api.listrak.com/data/v1`\r\n\r\n
\r\n\r\n\ The API version will be incremented if breaking changes are introduced. Breaking\ \ changes may include:\r\n\r\n- Addition of required headers, parameters, or model\ \ fields to a current route\r\n- Alterations that would result in currently valid\ \ requests failing, or performing unexpectedly\r\n\r\n
\r\n\r\nChanges that\ \ are not considered breaking may include:\r\n\r\n- Addition of new model fields\r\ \n- Addition of new routes\r\n- Addition of new response headers\r\n- Any alteration\ \ to a route that is marked as In Development\r\n\ # Usage\r\n\r\n## External Libraries\r\n\r\nThe C# code examples featured on this\ \ site require the following packages:\r\n\r\n- Microsoft.AspNet.WebApi.Client\r\n- Newtonsoft.Json\r\n\r\nThe Php code examples require the following package:\r\ \n- Guzzle 6\n# Feedback\r\ \n\r\nWe are actively seeking feedback in the following areas:\r\n- Code samples\r\ \n- Response examples\r\n- Resource and field descriptions\r\n\r\n
\r\n\r\ \nPlease provide your feedback to us at restapifeedback@listrak.com.\n# INTEGRATION\ \ SETUP\r\nTo enable API access, **you must create an _Integration_** on the _Integrations_\ \ page. In the Listrak application left menu, go to: Integrations → Integration\ \ Management.\r\n\r\nPlease specify integration type `Data` for your integration.\r\ \n\r\nMake sure to securely store a copy of your _Client ID_ and _Client Secret_.\ \ These values will be needed to authenticate with the API. For your security,\ \ the _Client Secret_ cannot be retrieved if it is lost.\r\n\n# Status Codes\r\ \n\r\n| Status Code | Status | Description |\r\n|-|-|-|\r\n| 200 | OK | The request\ \ succeeded. |\r\n| 201 | Created | A new resource has been created. |\r\n| 400\ \ | Bad Request | Your request is malformed or invalid. |\r\n| 401 | Unauthorized\ \ | Authentication is required. |\r\n| 404 | Not Found | The resource does not\ \ exist. |\r\n| 405 | Method Not Allowed | The route does not support the requested\ \ method. |\r\n| 415 | Unsupported Media Type | Please use a `Content-Type` of\ \ `application/json`. |\r\n| 500 | Internal Server Error | An unexpected error\ \ occurred. Our development team has been notified. |\r\n\n# Parameters\r\n##\ \ Route Parameters\r\n\r\nResource identifiers are specified in the route. For\ \ example, in the route `/Resource/{resourceId}`, `resourceId` is a route parameter.\ \ In this example, if you wish to interact with Resource #123, its route would\ \ be `/Resource/123`.\r\n\r\n## Query Parameters\r\n\r\nSome routes support additional\ \ query parameters; for example, some resources support query parameters relating\ \ to paging. Supported query parameters are described in their respective documentation\ \ areas.\r\n\r\n## Request Body\r\n\r\nRequest bodies are required for most `POST`\ \ and `PUT` requests. Please use a `Content-Type` of `application/json` and provide\ \ a JSON object in your request body.\r\n\r\nThe maximum accepted request body\ \ size is 250 MB (262,144,000 bytes). Headers are not counted against this limit.\ \ Requests larger than this limit will result in a `404 Not Found` response.\r\ \n\n" x-logo: url: /Data/Documentation/Images/Logo.png paths: /v1/Customer: post: operationId: Customer_PostCustomerCollection summary: Start a Customer Import description: Starts a new import using the supplied customer collection. tags: - Customer responses: '400': description: BadRequest content: application/json: schema: $ref: '#/definitions/Error' '201': description: Created content: application/json: schema: $ref: '#/definitions/ResourceCreated' '401': description: Unauthorized content: application/json: schema: $ref: '#/definitions/Error' security: - OAuth 2: - Customer requestBody: required: true content: application/json: schema: type: array items: $ref: '#/definitions/Customer' /v1/Order: post: operationId: Order_PostOrderCollection summary: Start an Order Import description: Starts a new import using the supplied order collection. tags: - Order responses: '400': description: BadRequest content: application/json: schema: $ref: '#/definitions/Error' '201': description: Created content: application/json: schema: $ref: '#/definitions/ResourceCreated' '401': description: Unauthorized content: application/json: schema: $ref: '#/definitions/Error' security: - OAuth 2: - Order requestBody: required: true content: application/json: schema: type: array items: $ref: '#/definitions/Order' /v1/Product: post: operationId: Product_PostProductCollection summary: Start a Product Import description: Starts a new import using the supplied product collection. tags: - Product responses: '400': description: BadRequest content: application/json: schema: $ref: '#/definitions/Error' '201': description: Created content: application/json: schema: $ref: '#/definitions/ResourceCreated' '401': description: Unauthorized content: application/json: schema: $ref: '#/definitions/Error' security: - OAuth 2: - Product requestBody: required: true content: application/json: schema: type: array items: $ref: '#/definitions/Product' /v1/RatingSummary: post: operationId: RatingSummary_PostRatingSummaryCollection summary: Start a Rating Summary Import description: Starts a new import using the supplied rating summary collection. tags: - RatingSummary responses: '400': description: BadRequest content: application/json: schema: $ref: '#/definitions/Error' '201': description: Created content: application/json: schema: $ref: '#/definitions/ResourceCreated' '401': description: Unauthorized content: application/json: schema: $ref: '#/definitions/Error' security: - OAuth 2: - Review requestBody: required: true content: application/json: schema: type: array items: $ref: '#/definitions/RatingSummary' /v1/Review: post: operationId: Review_PostReviewCollection summary: Start a Review Import description: Starts a new import using the supplied review collection. tags: - Review responses: '400': description: BadRequest content: application/json: schema: $ref: '#/definitions/Error' '201': description: Created content: application/json: schema: $ref: '#/definitions/ResourceCreated' '401': description: Unauthorized content: application/json: schema: $ref: '#/definitions/Error' security: - OAuth 2: - Review requestBody: required: true content: application/json: schema: type: array items: $ref: '#/definitions/Review' components: schemas: Customer: description: Customer for the order - DEPRECATED - Please use the BillingAddress and/or ShippingAddress fields instead. type: object properties: address: $ref: '#/definitions/Address' description: Address of customer birthday: format: date-time description: Customer birthdate type: string customerNumber: description: Internal customer number maxLength: 20 minLength: 0 type: string email: description: Email address of customer. This property is required for accounts that are not CRM enabled. maxLength: 100 minLength: 0 type: string firstName: description: First name maxLength: 50 minLength: 0 type: string gender: description: Gender of customer (M/F, Male/Female) maxLength: 50 minLength: 0 type: string homePhone: description: Landline phone number maxLength: 50 minLength: 0 type: string lastName: description: Last name maxLength: 50 minLength: 0 type: string loyalty: $ref: '#/definitions/Loyalty' description: Loyalty data meta1: description: Additional meta information maxLength: 250 minLength: 0 type: string meta2: description: Additional meta information maxLength: 250 minLength: 0 type: string meta3: description: Additional meta information maxLength: 250 minLength: 0 type: string meta4: description: Additional meta information maxLength: 250 minLength: 0 type: string meta5: description: Additional meta information maxLength: 250 minLength: 0 type: string mobilePhone: description: Mobile phone number maxLength: 50 minLength: 0 type: string preferredStoreNumber: description: Preferred brick and mortar store location maxLength: 100 minLength: 0 type: string registered: description: Indicates the customer registration state type: boolean social: $ref: '#/definitions/Social' description: Social data workPhone: description: Work phone number maxLength: 50 minLength: 0 type: string zipCode: description: Customer ZIP Code maxLength: 20 minLength: 0 type: string Address: description: Address of customer type: object properties: address1: description: Home address line 1 maxLength: 100 minLength: 0 type: string address2: description: Home address line 2 maxLength: 100 minLength: 0 type: string address3: description: Home address line 3 maxLength: 100 minLength: 0 type: string city: description: Home address city maxLength: 100 minLength: 0 type: string country: description: Home address country maxLength: 100 minLength: 0 type: string state: description: Home address state maxLength: 100 minLength: 0 type: string Loyalty: description: Loyalty data for a Customer (This data will only be imported into Listrak if there is an active loyalty integration setup for your account.) type: object properties: activeLoyaltyMember: description: Whether customer is an active loyalty member type: boolean availablePoints: format: int32 description: Available points type: integer currentTierLevel: description: Current tier level maxLength: 100 minLength: 0 type: string enrollDate: format: date-time description: Enrollment date/time type: string expiringPoints: format: int32 description: Expiring points type: integer lastActivityDate: format: date-time description: Last activity date type: string lastPointEarnedDate: format: date-time description: Last date points were earned type: string lastPointRedemptionDate: format: date-time description: Last date points were redeemed type: string lifetimePoints: format: int32 description: Lifetime points type: integer loyaltySignUpSource: description: Sign-up source maxLength: 100 minLength: 0 type: string monthlyPoints: format: int32 description: Monthly points type: integer nextTierLevel: description: Next tier level maxLength: 100 minLength: 0 type: string numberOfReferrals: format: int32 description: Number of referrals type: integer pendingPoints: format: int32 description: Pending points type: integer personOfReferred: description: Referrer of this customer maxLength: 250 minLength: 0 type: string pointExpirationDate: format: date-time description: Points expiration date type: string pointsToNext: format: int32 description: Points to next milestone type: integer referralCode: description: Referral code maxLength: 100 minLength: 0 type: string referralUrl: description: Referral URL maxLength: 250 minLength: 0 type: string rewardsAvailable: description: Rewards available maxLength: 250 minLength: 0 type: string rewardsClaimed: description: Rewards claimed maxLength: 250 minLength: 0 type: string rewardsID: description: Rewards ID maxLength: 250 minLength: 0 type: string spentPoints: format: int32 description: Spent points type: integer tierID: description: Tier ID maxLength: 100 minLength: 0 type: string weeklyPoints: format: int32 description: Weekly points type: integer Social: description: Social data for a Customer type: object properties: facebookID: description: Facebook ID maxLength: 100 minLength: 0 type: string facebookNumberOfFriends: format: int32 description: Number of Facebook friends type: integer instagramID: description: Instagram ID maxLength: 100 minLength: 0 type: string instagramNumberOfFollowers: format: int32 description: Number of Instagram followers type: integer twitterID: description: Twitter ID maxLength: 100 minLength: 0 type: string twitterNumberOfFollowers: format: int32 description: Number of Twitter followers type: integer ResourceCreated: type: object properties: status: format: int32 description: HTTP status code. type: integer resourceId: description: An identifier used to locate a resource. type: string Error: type: object properties: status: format: int32 description: HTTP status code. type: integer error: description: Error code indicating what error has occured. type: string message: description: Message describing the status and the error that occurred. type: string Order: description: An order resource required: - orderNumber type: object properties: associateID: description: Associate ID of order type: string billingAddress: $ref: '#/definitions/BillingAddress' description: Billing address of order couponCode: description: Coupon code used with order maxLength: 32 minLength: 0 type: string customer: $ref: '#/definitions/Customer' description: Customer of order customerNumber: description: Internal customer number maxLength: 20 minLength: 0 type: string dateEntered: format: date-time description: Timestamp of order date (ET) type: string discountTotal: format: double description: DEPRECATED as of March 2022 type: number email: description: Email address of customer. This property is required for accounts that are not CRM enabled. maxLength: 100 minLength: 0 type: string handlingTotal: format: double description: Total handling costs type: number items: description: Order items type: array items: $ref: '#/definitions/OrderItem' itemTotal: format: double description: Total cost of items ordered (subtotal) type: number merchandiseDiscount: format: double description: Discount applied to the merchandise of the order type: number merchandiseDiscountDescription: description: Description of the discount applied to the merchandise of the order type: string merchandiseDiscountType: description: Type of discount applied to the merchandise of the order enum: - NotSet - PriceOverride - PriceRule - Promotion - SeniorCitizen - Markdown - Coupon - QuantityDiscount - Rebate - CashDiscount - TradeDiscount - TradeInKind - PromptPaymentDiscount - GeneralDiscount - GiftVoucher - FlexibleDiscount - RewardProgram - ManufacturerReward - CreditCardReward type: string meta1: description: Additional meta information maxLength: 500 minLength: 0 type: string meta2: description: Additional meta information maxLength: 500 minLength: 0 type: string meta3: description: Additional meta information maxLength: 500 minLength: 0 type: string meta4: description: Additional meta information maxLength: 500 minLength: 0 type: string meta5: description: Additional meta information maxLength: 500 minLength: 0 type: string nonMerchandiseDiscount: format: double description: Discounts applied to the order that is not related to the merchandise type: number nonMerchandiseDiscountDescription: description: Description of the discount applied to the order not related to the merchandise type: string nonMerchandiseDiscountType: description: Type of discount applied to the order not related to the merchandise enum: - NotSet - PriceOverride - PriceRule - Promotion - SeniorCitizen - Markdown - Coupon - QuantityDiscount - Rebate - CashDiscount - TradeDiscount - TradeInKind - PromptPaymentDiscount - GeneralDiscount - GiftVoucher - FlexibleDiscount - RewardProgram - ManufacturerReward - CreditCardReward type: string orderNumber: description: Unique order number maxLength: 50 minLength: 0 type: string orderTotal: format: double description: Total value of order type: number shipDate: format: date-time description: Timestamp when entire order shipped (ET) type: string shippingAddress: $ref: '#/definitions/ShippingAddress' description: Shipping address of order shippingMethod: description: Shipping method (e.g. UPS Ground) maxLength: 32 minLength: 0 type: string shippingTotal: format: double description: Total shipping costs type: number source: description: Describes the source at which the order was placed (online, POS, etc.) maxLength: 25 minLength: 0 type: string status: description: Status indicator enum: - NotSet - Misc - PreOrder - BackOrder - Pending - Hold - Processing - Shipped - Completed - Returned - Canceled - Unknown - Closed type: string storeNumber: description: Brick and mortar store location maxLength: 100 minLength: 0 type: string taxTotal: format: double description: Total sales tax charged type: number trackingNumber: description: Shipment tracking number maxLength: 32 minLength: 0 type: string BillingAddress: description: Billing address of order type: object properties: firstName: description: First name type: string lastName: description: Last name type: string mobilePhone: description: Mobile phone number type: string phone: description: Phone number type: string zipCode: description: Home address ZIP Code type: string address1: description: Home address line 1 maxLength: 100 minLength: 0 type: string address2: description: Home address line 2 maxLength: 100 minLength: 0 type: string address3: description: Home address line 3 maxLength: 100 minLength: 0 type: string city: description: Home address city maxLength: 100 minLength: 0 type: string country: description: Home address country maxLength: 100 minLength: 0 type: string state: description: Home address state maxLength: 100 minLength: 0 type: string OrderItem: description: An order resource required: - orderNumber - sku type: object properties: discountDescription: description: Description of the discount for the line item type: string discountType: description: Type of discount for the line item enum: - NotSet - PriceOverride - PriceRule - Promotion - SeniorCitizen - Markdown - Coupon - QuantityDiscount - Rebate - CashDiscount - TradeDiscount - TradeInKind - PromptPaymentDiscount - GeneralDiscount - GiftVoucher - FlexibleDiscount - RewardProgram - ManufacturerReward - CreditCardReward type: string discountedPrice: format: double description: Total discounted cost of product type: number itemTotal: format: double description: Total line item cost (quantity times price) type: number itemDiscountTotal: format: double description: Total amount of the discount for the line item type: number meta1: description: Additional Optional Information maxLength: 500 minLength: 0 type: string meta2: description: Additional Optional Information maxLength: 500 minLength: 0 type: string meta3: description: Additional Optional Information maxLength: 500 minLength: 0 type: string meta4: description: Additional Optional Information maxLength: 500 minLength: 0 type: string meta5: description: Additional Optional Information maxLength: 500 minLength: 0 type: string orderNumber: description: Order number maxLength: 50 minLength: 0 type: string price: format: double description: Price of one unit purchased type: number quantity: format: int32 description: Total number of units purchased type: integer shipDate: format: date-time description: Timestamp when item shipped (ET) type: string shippingMethod: description: Shipping method (e.g. UPS Ground) maxLength: 32 minLength: 0 type: string sku: description: Unique stock number of product maxLength: 100 minLength: 0 type: string status: description: Status indicator enum: - NotSet - Misc - PreOrder - BackOrder - Pending - Hold - Processing - Shipped - Completed - Returned - Canceled - Unknown - Closed type: string trackingNumber: description: Shipment tracking number maxLength: 32 minLength: 0 type: string ShippingAddress: description: Shipping address of order type: object properties: firstName: description: First name maxLength: 50 minLength: 0 type: string lastName: description: Last name maxLength: 50 minLength: 0 type: string phone: description: Phone number type: string zipCode: description: Home address ZIP Code type: string address1: description: Home address line 1 maxLength: 100 minLength: 0 type: string address2: description: Home address line 2 maxLength: 100 minLength: 0 type: string address3: description: Home address line 3 maxLength: 100 minLength: 0 type: string city: description: Home address city maxLength: 100 minLength: 0 type: string country: description: Home address country maxLength: 100 minLength: 0 type: string state: description: Home address state maxLength: 100 minLength: 0 type: string Product: description: A product resource required: - sku type: object properties: alternateImagesType1: description: Alternate product images type: array items: $ref: '#/definitions/AlternateImage' alternateImagesType2: description: Alternate product images type: array items: $ref: '#/definitions/AlternateImage' alternateImagesType3: description: Alternate product images type: array items: $ref: '#/definitions/AlternateImage' brand: description: Brand name of product maxLength: 50 minLength: 0 type: string category: description: Category or department maxLength: 50 minLength: 0 type: string color: description: Color of product (e.g. green, paisley, etc.) maxLength: 100 minLength: 0 type: string description: description: Description of product maxLength: 4000 minLength: 0 type: string discontinued: description: Explicit indicator that the item has been discontinued type: boolean gender: description: Gender of product (if applicable) maxLength: 50 minLength: 0 type: string imageUrl: description: URL for product image maxLength: 500 minLength: 0 type: string inStock: description: Explicit indicator that the item is in stock type: boolean isClearance: description: Explicit indicator that the item is a clearance item type: boolean isOutlet: description: Explicit indicator that the item is an outlet item type: boolean isPurchasable: description: Explicit indicator that the item can be included in recommendations type: boolean isViewable: description: Flag used in some systems to determine if the item should be included in recommendations type: boolean linkUrl: description: URL for product webpage maxLength: 500 minLength: 0 type: string masterSku: description: Unique stock number of the master product maxLength: 100 minLength: 0 type: string meta1: description: Additional meta information maxLength: 500 minLength: 0 type: string meta2: description: Additional meta information maxLength: 500 minLength: 0 type: string meta3: description: Additional meta information maxLength: 500 minLength: 0 type: string meta4: description: Additional meta information maxLength: 500 minLength: 0 type: string meta5: description: Additional meta information maxLength: 500 minLength: 0 type: string msrp: format: double description: Retail price of the product type: number onSale: description: Explicit indicator that the item is on sale type: boolean price: format: double description: List price of product type: number qoh: format: int32 description: Quantity on hand type: integer relatedProducts: type: array items: $ref: '#/definitions/RelatedProduct' reviewProductID: description: Unique identifier used by 3rd-party reviews provider maxLength: 100 minLength: 0 type: string reviewURL: description: URL for review webpage maxLength: 500 minLength: 0 type: string saleEndDate: format: date-time description: End date time of sale type: string salePrice: format: double description: Sale price of product type: number saleStartDate: format: date-time description: Start date time of sale type: string size: description: Size of product (e.g. small, M, 6 7/8”) maxLength: 50 minLength: 0 type: string sku: description: Unique stock number of product maxLength: 100 minLength: 0 type: string style: description: Style of product maxLength: 100 minLength: 0 type: string subCategory: description: Sub-category or sub-department maxLength: 50 minLength: 0 type: string title: description: Product name maxLength: 500 minLength: 0 type: string unitCost: format: double description: Price per individual item type: number tags: description: Comma separated list of tags type: string AlternateImage: description: Alternate product image type: object properties: rank: format: int32 description: Rank for alternate product image type: integer url: description: URL for alternate product image type: string RelatedProduct: description: Related products type: object properties: rank: format: int32 description: Rank of related product type: integer sku: description: Unique stock number of related product type: string type: description: Type of related product type: string RatingSummary: type: object properties: provider: description: Provider name type: string providerProductID: description: Unique identifier used to identify the product being rated maxLength: 100 minLength: 0 type: string ratingSummaries: description: Collection of rating summaries type: array items: $ref: '#/definitions/RatingSummaryField' RatingSummaryField: required: - providerRatingSummaryID - rating type: object properties: count: format: int32 description: Rating summary count type: integer deleted: description: Indicates if the rating summary has been deleted type: boolean displayType: description: Rating summary display type type: string providerRatingSummaryID: description: Rating summary identifier used by review provider type: string rating: format: double description: Rating summary value type: number ratingMax: format: double description: Maximum value for rating summary type: number ratingMin: format: double description: Minimum value for rating summary type: number type: description: Rating summary type type: string Review: required: - featured - provider - providerProductID - providerReviewID - recommended - title type: object properties: deleted: description: Indicates if the review has been deleted type: boolean featured: description: Indicates if the review is featured type: boolean feedbackCount: format: int32 description: Number of feedback entries type: integer feedbackNegativeCount: format: int32 description: Number of negative feedback entries type: integer feedbackPositiveCount: format: int32 description: Number of positive feedback entries type: integer provider: description: Review provider maxLength: 50 minLength: 0 type: string providerProductID: description: Product identifier used by review provider maxLength: 100 minLength: 0 type: string providerReviewID: description: Review identifier used by review maxLength: 100 minLength: 0 type: string ratings: description: Review ratings type: array items: $ref: '#/definitions/Rating' recommended: description: Indicates if the review is recommended type: boolean reviewerEmail: description: Email address of reviewer maxLength: 100 minLength: 0 type: string reviewerLocation: description: Location of reviewer maxLength: 500 minLength: 0 type: string reviewerName: description: Name of reviewer maxLength: 500 minLength: 0 type: string reviewSubmitted: format: date-time description: When review was submitted type: string reviewUpdated: format: date-time description: When review was last updated type: string text: description: Content of review type: string title: description: Title of review maxLength: 500 minLength: 0 type: string Rating: required: - displayType - providerRatingID - ratingMax - ratingMin - ratingValue - type type: object properties: deleted: description: Indicates if the review has been deleted type: boolean displayType: description: Rating display type maxLength: 50 minLength: 0 type: string providerRatingID: description: Rating identifier used by review provider maxLength: 100 minLength: 0 type: string ratingMax: format: double description: Maximum value for ratings type: number ratingMin: format: double description: Minimum value for ratings type: number ratingValue: format: double description: Rating value type: number type: description: Rating type maxLength: 100 minLength: 0 type: string securitySchemes: OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://auth.listrak.com/OAuth2/Token scopes: {} servers: - url: https://api.listrak.com/data