{"info":{"_postman_id":"6292aab3-56be-4aba-a69a-ab1b4982f5dd","name":"Insider One APIs","description":"<html><head></head><body><p>Insider One's REST APIs provide you the ability to manage your user data and product catalog, send messages, and export data.</p>\n<p>You can call Insider One's various APIs from your end to create, delete, update, and read data on Insider One's end. Using these APIs, you can send messages to your users, update their data, export your analytics, and perform many other actions.</p>\n<p>Insider One also provides Webhooks to manage Insider One's Unified Customer Database, Email, SMS, and Mobile App capabilities. To get a better understanding of the difference between an API and a Webhook, refer to <a href=\"https://academy.useinsider.com/docs/webhooks-vs-apis\">Webhooks vs APIs</a>.</p>\n<p>If you need any assistance for your new/existing API integrations, you can create an <a href=\"https://academy.useinsider.com/docs/ticket-types#integration-support\">Integration Support</a> ticket and reach out to the Insider One team.</p>\n<h1 id=\"scope\">Scope</h1>\n<p>Using Insider One's APIs, you can perform many actions based on your use cases. For example, you can create and send web push notifications to your opt-in users, or unify your users' online data with their offline purchase data. See below for the available categorized actions:</p>\n<ul>\n<li><p>User Data APIs</p>\n</li>\n<li><p>Data Governance APIs</p>\n</li>\n<li><p>User Subscription APIs</p>\n</li>\n<li><p>Messaging APIs</p>\n</li>\n<li><p>Product Catalog APIs</p>\n</li>\n<li><p>Search APIs</p>\n</li>\n<li><p>Reports &amp; Analysis APIs</p>\n</li>\n</ul>\n<h2 id=\"authentication-requirements\">Authentication Requirements</h2>\n<p>To send a request, you might need the following requirements, depending on the API you are using:</p>\n<h3 id=\"api-key\">API key</h3>\n<p>Insider One uses authentication to validate and process incoming API calls. Each API request must include an API key—a unique code used to authenticate the request and authorize access.</p>\n<p>Only users with Administrator permissions can generate API tokens. If your account does not have the necessary permissions, please contact the Insider One team for assistance.</p>\n<p>For security reasons, generated tokens are fully visible only once—immediately after they are created. After that, the full token will no longer be accessible.<br>We strongly recommend saving the token securely at the time of generation. If needed, you can always generate a new token for your project.</p>\n<p>Read more about <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens\">API Authentication Tokens</a>.</p>\n<h3 id=\"request-partner-token\">Request (Partner) Token</h3>\n<p>Some of the Insider One APIs listed above might require a request token. The Insider One team provides this token for your account.</p>\n<h3 id=\"partner-name\">Partner Name</h3>\n<p>Some of the Insider One APIs listed above might require your partner name. Your partner name is displayed in the dropdown menu next to your user name on your dashboard.</p>\n<p>You can also navigate to <strong>InOne</strong> &gt; <strong>Inone Settings</strong> &gt; <strong>Account Settings</strong> to read your partner name.</p>\n<h2 id=\"rate-limits\">Rate Limits</h2>\n<p>Rate limiting controls how many API requests can be made within a defined time window. In large systems, many unintentional denial-of-service (DoS) incidents stem from software bugs or configuration errors rather than malicious attacks. By enforcing rate limits, the system protects itself from overload and ensures stable performance.</p>\n<p>If you exceed the allowed number of requests in the given timeframe, the API will respond with an error, typically a <strong>429 Too Many Requests</strong> status code.</p>\n<p>Refer to the <a href=\"https://academy.useinsider.com/docs/api-rate-limits\">API Rate Limits</a> for the specific rate limits applied to Insider One APIs.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Scope","slug":"scope"}],"owner":"24851117","collectionId":"6292aab3-56be-4aba-a69a-ab1b4982f5dd","publishedId":"2sB3dSR9bM","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-12-12T11:35:23.000Z"},"item":[{"name":"User Data APIs","item":[{"name":"Upsert user data","id":"31942c05-0d7a-4681-a050-271c8424f231","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"users\": [\n        {\n            \"identifiers\": {\n                \"email\": \"sample@mail.com\",\n                \"uuid\": \"1x2y3z\",\n                \"custom\": {\n                    \"user_loyalty_id\": \"xyz123\"\n                }\n            },\n            \"attributes\": {\n                \"email_optin\": true,\n                \"age\": 30,\n                \"language\": \"en_US\",\n                \"list_id\": [\n                    1,\n                    2\n                ],\n                \"birthday\": \"1980-01-01T00:00:00Z\",\n                \"custom\": {\n                    \"loyalty\": \"Gold\"\n                }\n            },\n            \"events\": [\n                {\n                    \"event_name\": \"purchase\",\n                    \"timestamp\": \"2021-01-10T21:35:20Z\",\n                    \"event_params\": {\n                        \"product_id\": \"AGH210070\",\n                        \"unit_price\": 990.9,\n                        \"unit_sale_price\": 890.9,\n                        \"event_group_id\": \"ORDER123\",\n                        \"taxonomy\": [\n                            \"Electronic\",\n                            \"Phone\"\n                        ],\n                        \"currency\": \"USD\"\n                    }\n                },\n                {\n                    \"event_name\": \"account_created\",\n                    \"timestamp\": \"2021-01-17T14:41:21+03:00\",\n                    \"event_params\": {\n                        \"custom\": {\n                            \"customer_type\": \"trial\",\n                            \"trial_start_date\": \"2021-01-17T14:39:21+03:00\",\n                            \"trial_end_date\": \"2021-01-24T14:41:21+03:00\"\n                        }\n                    }\n                }\n            ]\n        }\n    ]\n}"},"url":"https://unification.useinsider.com/api/user/v1/upsert","description":"<p>Upsert API enables you to send users' attributes and events to Insider. It allows you to insert and update user data whenever you need it.</p>\n<p>You can possibly use the Upsert User Data for the following use cases:</p>\n<ul>\n<li><p>Sending offline purchases or any other events</p>\n</li>\n<li><p>Sending leads that are collected from any other platform</p>\n</li>\n<li><p>Sending segments that are prepared in-house</p>\n</li>\n</ul>\n<p>If you want to limit access to the Upsert API for users with a UCD API Key or control data transmission through this API, you can implement IP restrictions. This ensures that only Upsert API requests from approved IP addresses will be accepted. If you want to make such a custom adjustment, please contact the Insider team.</p>\n<p>You should use the <a href=\"https://academy.useinsider.com/docs/update-identifiers-api\">Identifier Update API</a> if you want to update an identifier listed in your <a href=\"https://academy.useinsider.com/v1/docs/identity-resolution-management-settings\">Identity Resolution Management Settings</a>.</p>\n<h2 id=\"body-parameters\">Body Parameters</h2>\n<p>You can send two data types to our data ingestion API: attributes and events.</p>\n<p>An <strong>attribute</strong> is a single, static piece of information about a user, such as gender, age, or loyalty class. When you send data to an array attribute for a user, the new values are added to the existing ones by default. If you don't want to append values but overwrite the array attributes, you need to add <em><strong>\"not_append\": true</strong></em> or <em><strong>\"append\": false</strong></em> to the request. If you use both together, the value you provide for \"append\" will be accepted.</p>\n<p>An <strong>event</strong> is a collection of information, such as purchased products or visited stores. Any update request for an existing user with the same event name will append it to the collection.</p>\n<p>Each user object must have at least one <strong>attributes</strong> object or one <strong>events</strong> object. No default attribute is mandatory. If you use <em>attributes</em> object in the request, you need to have at least one attribute in your object.You can use <strong>event group ID</strong> to group the events of the same type if you send multiple events of this type.When sending events via the Upsert API, ensure that the values fall within the TTL (Time-to-Live) of the events. Events with timestamps exceeding the TTL will not be written. You can refer to the <a href=\"https://academy.useinsider.com/docs/data-retention\">Data Retention</a> for further information.</p>\n<p>Using Upsert API, you can <strong>import</strong> historical data. While importing historical data, if there is an active <a href=\"https://academy.useinsider.com/docs/architect-journey-starter-on-event\">Architect On Event</a> element or the data stream is set, and the imported data meets the conditions of the journey and the data stream, the Architect On Event element or data stream can be triggered.</p>\n<p>For example, you send the purchase events from one year ago to users with Upsert API. At the same time, if an active Architect journey is set with a purchase condition using the On Event element, users will enter this journey because they meet the condition based on their data from a year ago.</p>\n<p>A boolean flag called “skip_hook” is available in the Upsert request body to prevent historical data from entering the current journey. Thanks to this flag, you can choose whether to trigger the data stream or use the Architect On Event starter for the imported data.</p>\n<p>This flag is not mandatory. If not specified, it is taken as <strong>skip_hook:</strong> <em><strong>false</strong></em> by default. If you do not want to trigger the data stream, it should be <strong>skip_hook:</strong> <em><strong>true</strong></em>.</p>\n<p>Identifiers must be placed under the <strong>identifiers</strong> object only. They should not be sent within attributes, events, or any other part of the payload. This structure ensures accurate identity resolution and consistent data processing across the platform.</p>\n<p>Insider allows these parameters to send:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>users</td>\n<td>Array of user information such as identifiers, attributes and events.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>identifiers</td>\n<td>User's identifier information.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>attributes</td>\n<td>Attributes object of user information such as gender, age.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>Attribute. User's email address, can be used as an <strong>identifier</strong>.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>phone_number</td>\n<td>Attribute. User's phone number in <strong>E.164 format</strong> (e.g. +6598765432), can be used as an <strong>identifier.</strong></td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email_optin</td>\n<td>Attribute. User's permission for marketing emails:  <br /><strong>True</strong> = emails allowed;  <br /><strong>False</strong> = email not allowed</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gdpr_optin</td>\n<td>Attribute. User's permission for Insider campaigns, data collection and processing:  <br /><strong>False</strong> = user will not see any Insider campaign or receive any message from any channel;  <br /><strong>True</strong> or empty = Insider may interact with the user through personalization campaigns</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sms_optin</td>\n<td>Attribute. User's permission for SMS:  <br /><strong>True</strong> = SMS allowed;  <br /><strong>False</strong> = SMS not allowed</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>whatsapp_optin</td>\n<td>Attribute. User's permission for WhatsApp Message:  <br /><strong>True</strong> = WhatsApp Message allowed  <br /><strong>False</strong> = WhatsApp Message not allowed</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Attribute. User's name.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>surname</td>\n<td>Attribute. User's surname.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>birthday</td>\n<td>Attribute. User's birthday in <strong>RFC 3339 format</strong> (e.g. 1993-03-12T00:00:00Z).  <br /><strong>Note:</strong> Ensure the birthday ends with <strong>Z</strong> to indicate UTC time; no other time offset is included.</td>\n<td>Date/Time</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>Attribute. Gender of the user</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>age</td>\n<td>Attribute. Age of the user</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>language</td>\n<td>Language information of the user</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>country</td>\n<td>Attribute. The user's country information in <strong>ISO 3166-1 alpha-2 format</strong>.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>city</td>\n<td>Attribute. City information of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>static_segment_id</td>\n<td>Attribute. Newsletter contact list IDs (users are added directly).</td>\n<td>Numbers (Number array)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>Attribute. User’s UUID, can be used as an identifier.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>error_callback_endpoint</td>\n<td>An endpoint to notify you if your upsert request fails on our side because of a unification error.</td>\n<td>URL</td>\n<td>No</td>\n</tr>\n<tr>\n<td>lo</td>\n<td>User's locale information</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>events</td>\n<td>List of events</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>event_name</td>\n<td>Name of the event</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>timestamp</td>\n<td>Event. Event time, the purchase date for the purchase event in <strong>RFC3339 format</strong>.</td>\n<td>Datetime</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>event_params</td>\n<td>Event parameters for purchase-related properties.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>Object consisting of custom event parameters</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>event_group_id</td>\n<td>Event group ID</td>\n<td>String</td>\n<td>No (Yes only when the event_name is <strong>purchase</strong> or <strong>cart_page_view</strong>)</td>\n</tr>\n<tr>\n<td>product_id</td>\n<td>Event parameter. Unique product ID.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Event parameter. Name of the product.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>taxonomy</td>\n<td>Event parameter. Category tree of the product.</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Event parameter. Product URL for purchase events</td>\n<td>URL</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>Event parameter. Currency used for product pricing, in <strong>ISO 4217 format</strong> (e.g. USD).</td>\n<td>String</td>\n<td>No (Yes only when the event_name is <strong>purchase</strong> or <strong>cart_page_view</strong>)</td>\n</tr>\n<tr>\n<td>quantity</td>\n<td>Event parameter. Quantity of the product.</td>\n<td>Integer</td>\n<td>No (Yes only when the event_name is <strong>purchase</strong>)</td>\n</tr>\n<tr>\n<td>unit_price</td>\n<td>Event parameter. Price of the product without any discount(s).</td>\n<td>Float</td>\n<td>No</td>\n</tr>\n<tr>\n<td>unit_sale_price</td>\n<td>Event parameter. Unit price of the product.</td>\n<td>Float</td>\n<td>No (Yes only when the event_name is <strong>purchase</strong> or <strong>cart_page_view</strong>)</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>Event parameter. Locale of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>color</td>\n<td>Event parameter. Color of the product (selected by user).</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>Event parameter. Size of the product (selected by user).</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shipping_cost</td>\n<td>Event parameter. Shipping cost of the items in basket.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>promotion_name</td>\n<td>Event parameter. Name of the promotion.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>promotion_discount</td>\n<td>Event parameter. Total amount of discount applied by promotions.</td>\n<td>Float</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>If your company obtains your users' consent in compliance with the <strong>local regulations</strong>, make sure to pass the GDPR opt-in field to Insider. If you want to <strong>stop</strong> collecting and processing the data of an identified user, GDPR opt-in field should have the <em>false</em> value. Insider cannot be held liable if these obligations are not fulfilled and reserves the right to seek compensation from your company.</p>\n<h2 id=\"sample-example\">Sample Example</h2>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>Please be aware of the limitations while sending your request.</p>\n<p>The request body consists of a <strong>users</strong> array. Each user must have an <strong>identifiers</strong> object.</p>\n<p>The sample request below sends the default <strong>purchase</strong> event. To see the other default events and event parameters that you can use in your requests, refer to <a href=\"https://academy.useinsider.com/docs/default-events-attributes\">Default Events &amp; Attributes</a>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://unification.useinsider.com/api/user/v1/upsert' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: 1a2b3c4e5d6f' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"skip_hook\": false,\n  \"users\": [\n    {\n      \"identifiers\": {\n        \"email\": \"sample@useinsider.com\",\n        \"uuid\": \"1x2y3z\",\n        \"custom\": {\n          \"user_loyalty_id\": \"xyz123\"\n        }\n      },\n      \"attributes\": {\n        \"email_optin\": true,\n        \"age\": 30,\n        \"language\": \"en_US\",\n        \"static_segment_id\": [\n          1,\n          2\n        ],\n        \"birthday\": \"1980-01-01T00:00:00Z\",\n        \"custom\": {\n          \"favorite_color\": [\n            \"green\"\n          ]\n        }\n      },\n      \"events\": [\n        {\n          \"event_name\": \"purchase\",\n          \"timestamp\": \"2021-01-10T21:35:20Z\",\n          \"event_params\": {\n            \"product_id\": \"ABC21000\",\n            \"name\": \"Your Product Name\",\n            \"unit_price\": 990.9,\n            \"unit_sale_price\": 890.9,\n            \"event_group_id\": \"ORDER123\",\n            \"taxonomy\": [\n              \"Electronic\",\n              \"Phone\"\n            ],\n            \"currency\": \"USD\",\n            \"quantity\": 1\n          }\n        },\n        {\n          \"event_name\": \"account_created\",\n          \"timestamp\": \"2021-01-17T14:41:21+03:00\",\n          \"event_params\": {\n            \"custom\": {\n              \"customer_type\": \"trial\",\n              \"trial_start_date\": \"2021-01-17T14:39:21+03:00\",\n              \"trial_end_date\": \"2021-01-24T14:41:21+03:00\"\n            }\n          }\n        }\n      ]\n    }\n  ]\n}'\n\n</code></pre>\n<p>The request body below contains <strong>insider_id</strong>.</p>\n<blockquote>\n<p><strong>insider id</strong> is an internal ID maintained by Insider for each user. To find the <strong>insider_id</strong>, you can refer to the Profile ID on the <a href=\"https://academy.useinsider.com/docs/user-profiles-overview\">User Profiles</a>. </p>\n</blockquote>\n<p><strong>error_callback_endpoint</strong> is an endpoint that will notify you if your upset request fails on the Insider's side due to a unification error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://unification.useinsider.com/api/user/v1/upsert' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: 1a2b3c4e5d6f' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"skip_hook\": false,\n  \"error_callback_endpoint\":\"http://your-error-callback-endpoint.yourdomain.com\",\n  \"users\": [\n    {\n      \"insider_id\": \"sampleinsiderid\",\n      \"attributes\": {\n        \"email_optin\": true,\n        \"age\": 30,\n        \"language\": \"en_US\",\n        \"list_id\": [\n          1,\n          2\n        ],\n        \"birthday\": \"1980-01-01T00:00:00Z\",\n        \"custom\": {\n          \"favorite_color\": [\n            \"green\"\n          ]\n        }\n      },\n      \"not_append\": true,\n      \"events\": [\n        {\n          \"event_name\": \"purchase\",\n          \"timestamp\": \"2021-01-10T21:35:20Z\",\n          \"event_params\": {\n            \"product_id\": \"ABC21000\",\n            \"name\": \"Your Product Name\",\n            \"unit_price\": 990.9,\n            \"unit_sale_price\": 890.9,\n            \"event_group_id\": \"ORDER123\",\n            \"taxonomy\": [\n              \"Electronic\",\n              \"Phone\"\n            ],\n            \"currency\": \"USD\",\n            \"quantity\": 1\n          }\n        },\n        {\n          \"event_name\": \"account_created\",\n          \"timestamp\": \"2021-01-17T14:41:21+03:00\",\n          \"event_params\": {\n            \"custom\": {\n              \"customer_type\": \"trial\",\n              \"trial_start_date\": \"2021-01-17T14:39:21+03:00\",\n              \"trial_end_date\": \"2021-01-24T14:41:21+03:00\"\n            }\n          }\n        }\n      ]\n    }\n  ]\n}'\n\n</code></pre>\n<p>The request below sends data for two users, each with their own attributes, events, and custom parameters.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://unification.useinsider.com/api/user/v1/upsert' \\\n  --header 'X-PARTNER-NAME: mybrand' \\\n  --header 'X-REQUEST-TOKEN: 1a2b3c4e5d6f' \\\n  --header 'Content-Type: application/json' \\\n  --data-raw '{\n    \"skip_hook\": false,\n    \"error_callback_endpoint\":\"http://your-error-callback-endpoint.yourdomain.com\",\n    \"users\": [\n      {\n        \"insider_id\": \"sampleinsiderid\",\n        \"attributes\": {\n          \"email_optin\": true,\n          \"age\": 30,\n          \"language\": \"en_US\",\n          \"list_id\": [\n            1,\n            2\n          ],\n          \"birthday\": \"1980-01-01T00:00:00Z\",\n          \"custom\": {\n            \"favorite_color\": [\n              \"green\"\n            ]\n          }\n        },\n        \"not_append\": true,\n        \"events\": [\n          {\n            \"event_name\": \"purchase\",\n            \"timestamp\": \"2021-01-10T21:35:20Z\",\n            \"event_params\": {\n              \"product_id\": \"ABC21000\",\n              \"name\": \"Your Product Name\",\n              \"unit_price\": 990.9,\n              \"unit_sale_price\": 890.9,\n              \"event_group_id\": \"ORDER123\",\n              \"taxonomy\": [\n                \"Electronic\",\n                \"Phone\"\n              ],\n              \"currency\": \"USD\",\n              \"quantity\": 1\n            }\n          },\n          {\n            \"event_name\": \"account_created\",\n            \"timestamp\": \"2021-01-17T14:41:21+03:00\",\n            \"event_params\": {\n              \"custom\": {\n                \"customer_type\": \"trial\",\n                \"trial_start_date\": \"2021-01-17T14:39:21+03:00\",\n                \"trial_end_date\": \"2021-01-24T14:41:21+03:00\"\n              }\n            }\n          }\n        ]\n      },\n      {\n        \"insider_id\": \"sampleinsiderid_2\",\n        \"attributes\": {\n          \"email_optin\": true,\n          \"age\": 23,\n          \"language\": \"en_US\",\n          \"list_id\": [\n            1,\n            2\n          ],\n          \"birthday\": \"1996-08-08T00:00:00Z\",\n          \"custom\": {\n            \"favorite_color\": [\n              \"blue\"\n            ]\n          }\n        },\n        \"not_append\": true,\n        \"events\": [\n          {\n            \"event_name\": \"purchase\",\n            \"timestamp\": \"2024-01-10T21:35:20Z\",\n            \"event_params\": {\n              \"product_id\": \"CYD21000\",\n              \"name\": \"Your Product Name\",\n              \"unit_price\": 990.9,\n              \"unit_sale_price\": 890.9,\n              \"event_group_id\": \"ORDER123\",\n              \"taxonomy\": [\n                \"Electronic\",\n                \"Phone\"\n              ],\n              \"currency\": \"USD\",\n              \"quantity\": 1\n            }\n          },\n          {\n            \"event_name\": \"account_created\",\n            \"timestamp\": \"2022-02-17T14:41:21+03:00\",\n            \"event_params\": {\n              \"custom\": {\n                \"customer_type\": \"trial\",\n                \"trial_start_date\": \"2021-04-17T14:39:21+03:00\",\n                \"trial_end_date\": \"2021-04-24T14:41:21+03:00\"\n              }\n            }\n          }\n        ]\n      }\n    ]\n  }'\n\n</code></pre>\n<p>If some attributes or parameters are not reflected, the issue is likely related to the request structure or the data being sent. As a solution, check the request structure using a sample payload and ensure that the data types match the values you are trying to send. If the problem persists, feel free to contact the Insider team.</p>\n<p>If none of the attributes, events, or parameters are reflected, or if the user profile is not created after a few hours of sending the request, please reach out to the Insider team.</p>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>This response indicates that the <strong>event_group_id</strong> and <strong>unit_sale_price</strong> parameters are included together in the request for the purchase event.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"successful\": {},\n        \"fail\": {\n            \"count\": 1,\n            \"errors\": {\n                \"users.0.events.0.event_params.*.required\": [\n                    \"event_group_id parameter is required on purchase event\",\n                    \"unit_sale_price parameter is required on purchase event\"\n                ]\n            }\n        }\n    }\n}\n\n</code></pre>\n<h4 id=\"200-ok-1\">200 OK</h4>\n<p>For the request below, you need to use an identifier for the user, which can be either <strong>insider_id</strong> or <strong>UUID</strong>, <strong>email</strong> or <strong>phone number</strong>, or a <strong>custom attribute</strong>. Besides, you can also send these attributes as attributes if any one of them is not an identifier.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"successful\": {},\n        \"fail\": {\n            \"count\": 1,\n            \"errors\": {\n                \"users.0.events.0.event_params.*.required\": [\n                    \"event_group_id parameter is required on purchase event\",\n                    \"unit_sale_price parameter is required on purchase event\"\n                ],\n                \"users.0.identifiers.required\": [\n                    \"either insider_id or idenifiers must be specified\"\n                ],\n                \"users.0.insider_id.required\": [\n                    \"either insider_id or idenifiers must be specified\"\n                ]\n            }\n        }\n    }\n}\n\n</code></pre>\n<h4 id=\"200-ok-2\">200 OK</h4>\n<p>For the request below, you need to have a <strong>valid email address</strong> in the format stated in the parameters table.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"data\": {\n        \"successful\": {},\n        \"fail\": {\n            \"count\": 1,\n            \"errors\": {\n                \"users.0.events.0.event_params.*.required\": [\n                    \"event_group_id parameter is required on purchase event\",\n                    \"unit_sale_price parameter is required on purchase event\"\n                ],\n                \"users.0.identifiers.*.regexp(^.+@.+\\\\..+$)\": [\n                    \"not a valid email address: sample\"\n                ]\n            }\n        }\n    }\n}\n\n</code></pre><h4 id=\"200-ok-3\">200 OK</h4>\n<p>For the request below, you need to have the <strong>valid UUID</strong> in the format stated in the parameters table.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"successful\": {},\n        \"fail\": {\n            \"count\": 1,\n            \"errors\": {\n                \"users.0.events.0.event_params.*.required\": [\n                    \"event_group_id parameter is required on purchase event\",\n                    \"unit_sale_price parameter is required on purchase event\"\n                ],\n                \"users.0.identifiers.*.type(string)\": [\n                    \"uuid must be string: 12345\"\n                ]\n            }\n        }\n    }\n}\n\n</code></pre>\n<h4 id=\"200-ok-4\">200 OK</h4>\n<p>For the request below, you need to have the <strong>valid identifier</strong> in the format stated in the parameters table.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"successful\": {},\n        \"fail\": {\n            \"count\": 1,\n            \"errors\": {\n                \"users.0.events.0.event_params.*.required\": [\n                    \"event_group_id parameter is required on purchase event\",\n                    \"unit_sale_price parameter is required on purchase event\"\n                ],\n                \"users.0.identifiers.*.in(defaults_column)\": [\n                    \"key must be one of phone_number(pn), email(em) or uuid\"\n                ]\n            }\n        }\n    }\n}\n\n</code></pre>\n<h4 id=\"200-ok-5\">200 OK</h4>\n<p>For the request below, you need to have a <strong>valid phone number</strong> in the format stated in the parameters table.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"successful\": {},\n        \"fail\": {\n            \"count\": 1,\n            \"errors\": {\n                \"users.0.events.0.event_params.*.required\": [\n                    \"event_group_id parameter is required on purchase event\",\n                    \"unit_sale_price parameter is required on purchase event\"\n                ],\n                \"users.0.identifiers.*.regexp(^\\\\+[1-9]\\\\d{6,14}$)\": [\n                    \"user has an invalid phone number: 12345\"\n                ]\n            }\n        }\n    }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>If you do not include <strong>user</strong> in your request, you receive an error shown below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"error\":\"users must be defined: bad request\"}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<p>If you exceed the rate limits, you receive an error shown below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"rejected: too many requests\"\n}\n\n</code></pre>\n<p>If this error occurs, consider implementing retries and reviewing your connection configuration to remain within the Upsert API's rate limits. <strong>Not retrying may prevent some data from being successfully applied</strong>.</p>\n<h4 id=\"error-codes\">Error Codes</h4>\n<ul>\n<li><p>400 Bad Request</p>\n</li>\n<li><p>500 Internal Server Error</p>\n</li>\n<li><p>403 Forbidden</p>\n</li>\n</ul>\n<p>If you receive a 403 response instead of 200 OK, stop or pause the current data sending. Check your headers, which are your partner name, and token, and correct any errors. Once the issues are fixed, resume your integration and retry the failed requests. If your headers are correct but you continue to encounter issues, please <a href=\"https://academy.useinsider.com/docs/create-support-tickets\">create a ticket</a> for the Insider team.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new data can be inserted and updated with this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>request token</strong> should be provided in the <strong>request header</strong>. If the token is incorrect, no operation will be executed.</p>\n</li>\n<li><p>The entire request must <strong>not exceed 5 MB</strong>.</p>\n</li>\n<li><p>Each request can upsert the data for <strong>a maximum of 1,000 records</strong> (user).</p>\n</li>\n<li><p>The rate limit is shared with the <a href=\"https://academy.useinsider.com/docs/delete-user-attribute-api\">Delete User Attribute</a>, allowing a total of 25,000 requests per minute, which means you can process up to <strong>25 million</strong> user records per minute with full batching.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","user","v1","upsert"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"f73144ad-1fd8-4bfa-a1b2-12168967837b","name":"Upsert default and custom attributes","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"users\": [\n        {\n            \"identifiers\": {\n                \"email\": \"insideracademy@mail.com\"\n            },\n            \"attributes\": {\n                \"gdpr_optin\": true,\n                \"name\": \"Insider Academy\",\n                \"sms_optin\": true,\n                \"phone_number\": \"+6512345678\",\n                \"custom\": {\n                    \"loyalty\": \"Gold\",\n                    \"subscription_renewal\": \"2023-11-29T23:00:00Z\"\n                }\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/upsert"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 23 Feb 2023 14:28:31 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"59","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"79e0a6001823241f-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"successful\": {\n            \"count\": 1\n        },\n        \"fail\": {}\n    }\n}"},{"id":"0a537d7a-ec92-4cb7-8a05-6f716a540d05","name":"Upsert email and phone number attributes","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"users\": [\n        {\n            \"identifiers\": {\n                \"uuid\": \"16378438264380b02b2ed96\"\n            },\n            \"attributes\": {\n                \"gdpr_optin\": true,\n                \"email\": \"insideracademy@useinsider.com\",\n                \"phone_number\": \"+6512345678\"\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/upsert"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 23 Feb 2023 14:35:28 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"31","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"79e0b02cadcb0658-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"successful\": {\n            \"count\": 1\n        },\n        \"fail\": {}\n    }\n}"},{"id":"99b4eebe-5f06-421f-be6a-487ab3672e1e","name":"Upsert default attributes and custom event for uuid identifier","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"users\": [\n        {\n            \"identifiers\": {\n                \"uuid\": \"16378438264380b02b2ed96\"\n            },\n            \"attributes\": {\n                \"email\":\"insideracademy@useinsider.com\",\n                \"birthday\": \"1990-01-01T00:00:00Z\"\n            },\n            \"events\": [\n                {\n                    \"event_name\": \"form_submission\",\n                    \"timestamp\": \"2023-01-10T21:35:20Z\",\n                    \"event_params\": {\n                        \"url\": \"https://academy.useinsider.com/\",\n                        \"custom\": {\n                            \"form_subject\": \"Test Drive\"\n                        }\n                    }\n                }\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/upsert"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 10 Feb 2023 11:49:14 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"5","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"79749ecc98677207-IST","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"successful\": {\n            \"count\": 1\n        },\n        \"fail\": {}\n    }\n}"},{"id":"553cf01e-b1f9-4d3b-9d8a-0af0b07d6647","name":"Invalid event name","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"users\": [\n        {\n            \"identifiers\": {\n                \"uuid\": \"16378438264380b02b2ed96.03e6aa2e\"\n            },\n            \"events\": [\n                {\n                    \"event_name\": \"homepageView\",\n                    \"timestamp\": \"2023-02-10T21:35:20Z\"\n                }\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/upsert"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 10 Feb 2023 11:26:54 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"16","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"79747e175ced5147-IST","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"successful\": {},\n        \"fail\": {\n            \"count\": 1,\n            \"errors\": {\n                \"users.0.events.0.event_name.*.regexp(^[a-z0-9][a-zA-Z0-9._-]*$)\": [\n                    \"invalid event name: homepageView\"\n                ]\n            }\n        }\n    }\n}"},{"id":"419a15ff-28c6-42b3-b98c-e1a50356a2b5","name":"Upsert multiple users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"users\": [\n    {\n      \"identifiers\": {\n        \"email\": \"insideracademy@useinsider.com\"\n      },\n      \"attributes\": {\n        \"gdpr_optin\": true,\n        \"email_optin\": true,\n        \"phone_number\": \"+6512345678\",\n        \"sms_optin\": true,\n        \"age\": 30,\n        \"birthday\": \"1980-01-01T00:00:00Z\",\n        \"custom\": {\n          \"member_status\": \"VIP\"\n        }\n      },\n      \"events\": [\n        {\n          \"event_name\": \"purchase\",\n          \"timestamp\": \"2023-03-10T21:35:20Z\",\n          \"event_params\": {\n            \"product_id\": \"AGH210070\",\n            \"unit_price\": 990.9,\n            \"unit_sale_price\": 890.9,\n            \"event_group_id\": \"ORDER123\",\n            \"taxonomy\": [\n              \"Electronic\",\n              \"Phone\"\n            ],\n            \"currency\": \"USD\"\n          }\n        },\n        {\n          \"event_name\": \"form_submitted\",\n          \"timestamp\": \"2023-03-17T14:41:21+03:00\",\n          \"event_params\": {\n            \"custom\": {\n              \"customer_type\": \"trial\",\n              \"trial_start_date\": \"2023-03-17T14:39:21+03:00\",\n              \"trial_end_date\": \"2023-03-24T14:41:21+03:00\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"identifiers\": {\n        \"custom\": {\n          \"user_loyalty_id\": \"user12345abc\"\n        }\n      },\n      \"attributes\": {\n        \"gdpr_optin\": true,\n        \"email\": \"jsmith@mail.com\",\n        \"email_optin\": true\n      },\n      \"events\": [\n        {\n          \"event_name\": \"order_delivered\",\n          \"timestamp\": \"2023-03-10T21:35:20Z\",\n          \"event_params\": {\n            \"custom\": {\n              \"order_id\": \"POSH1234\"\n            }\n          }\n        }\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/upsert"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Feb 2023 12:13:38 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"7","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"79e81dcdab6e8227-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"successful\": {\n            \"count\": 2\n        },\n        \"fail\": {}\n    }\n}"}],"_postman_id":"31942c05-0d7a-4681-a050-271c8424f231"},{"name":"Export raw user data","id":"4f3fdcf2-4108-4398-bd84-ba75ce0aa88e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"segment\": {\n        \"segment_id\": 123456789\n    },\n    \"attributes\": [\n        \"*\"\n    ],\n    \"events\": {\n        \"start_date\": 1606311893,\n        \"end_date\": 1611582293,\n        \"wanted\": [\n            {\n                \"event_name\": \"email_click\",\n                \"params\": [\n                    \"campaign_id\",\n                    \"timestamp\"\n                ]\n            },\n            {\n                \"event_name\": \"item_added_to_cart\",\n                \"params\": [\n                    \"product_id\",\n                    \"name\",\n                    \"timestamp\"\n                ]\n            },\n            {\n                \"event_name\": \"journey_entered\",\n                \"params\": [\n                    \"journey_id\",\n                    \"timestamp\"\n                ]\n            }\n        ]\n    },\n    \"format\": \"parquet\",\n    \"hook\": \"xyz.test.com\"\n}"},"url":"https://unification.useinsider.com/api/raw/v1/export","description":"<p>This API prepares the raw user data, exports it into Insider's AWS S3 Bucket, and returns a link to your webhook endpoint as a response. This link enables you to access the raw user data and transfer it to your end.</p>\n<p>The API prepares the raw user data for all users for all requested attributes and for a list of events and their event parameters. You can filter to narrow down the user set (e.g., the raw user data can return the users who made a purchase on the last day).</p>\n<p>The API can prepare the raw data for attributes and events together. You can choose the events you will receive and the attributes that will be added to each event entry.</p>\n<p><strong>Suggested Reading</strong>: <a href=\"https://academy.useinsider.com/docs/understanding-events-attributes\">Understanding Events and Attributes</a></p>\n<p>You should provide a webhook endpoint in the request to be notified when the export link is ready. After sending a request, your webhook endpoint receives an export link as follows to have access to the raw user data.</p>\n<p><a href=\"https://insider-data-export.useinsider.com/%7Bpartner\">https://insider-data-export.useinsider.com/{partner</a> name}/p/{file name}</p>\n<p>You can export raw user data to analyze user information using a business intelligence tool and sync the data that you want via daily jobs.</p>\n<p>Using the Export API, Insider sends the file as a link via Webhook to your endpoint. Export files are sent from specific Insider IP addresses. To enhance security, whitelist Insider IP addresses on your system to restrict access to your endpoint. Remember that whitelisting our IP addresses is about restricting access to your endpoint, which ensures only approved sources can access your endpoint. To add our IP addresses to your approved list for whitelisting, reach out to the Insider team.</p>\n<p>It might take several hours to receive the file after you get the 200 response. If there is an issue with the file size while exporting, you will be notified. In this case, try exporting the data in a smaller range. If you still do not receive the export link, we highly suggest checking if your endpoint is publicly accessible and functioning properly.</p>\n<p>The Raw Export logs events based on their actual timestamp, regardless of when they are recorded in the User Content Database (UCD). In contrast, the S3 Export captures events within specific intervals, like the past hour, according to their UCD entry time. For example, the event counts displayed on the <a href=\"https://academy.useinsider.com/docs/attributes-events-page#attributes-and-events-data-analytics\">Metadata Analytics</a> page represent all transmissions sent to UCD. Sending the same event 100 times results in only one entry in the database but shows a transmission count of 100 on the page, while Raw Export will show only 1. If an event was timestamped three days ago but sent today, it will appear in S3 Export based on the current transmission timeframe, like the last hour.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Before starting the implementation, make sure to share the following information with your Insider Technical Account Manager:</p>\n<ul>\n<li><p>A <strong>webhook endpoint</strong> that will be notified when the export link is ready</p>\n</li>\n<li><p>A preferred <strong>format</strong>: CSV or Parquet</p>\n</li>\n<li><p>A list of <strong>attributes</strong>, <strong>events</strong>, and <strong>event parameters</strong> that you want to export</p>\n</li>\n<li><p>A <strong>dynamic</strong> <strong>segment</strong> that you want to export</p>\n</li>\n</ul>\n<p>You can consult the Insider team on which parameters to add to the request.</p>\n<p>The date range of the segments in requests to the Raw Export API must align with the date range of the requested events. For example, if you're requesting data for the last 5 days of a segment, the event date range should also cover that same period. If the event date range is set to only 2 days, data for users who entered the segment in the last 3 days will not appear in the export.</p>\n<p>Each request must have <strong>attributes</strong> or <strong>events</strong> object to return the respective user profiles. If you are using an events object, its keys are required, as stated in the table below.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>segment</td>\n<td>Segment ID of the user filter. Refer <a href=\"https://academy.useinsider.com/docs/saved-segments#dynamic-segments-page\">here</a> to find your Dynamic Segment ID.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>attributes</td>\n<td>Array of attributes</td>\n<td>Array (of string)</td>\n<td>Yes (if the body does <strong>not have the events</strong> object)</td>\n</tr>\n<tr>\n<td>events</td>\n<td>Array of events</td>\n<td>Object</td>\n<td>Yes (if the body does <strong>not have the attributes</strong> object)</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>Beginning of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>End of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>wanted</td>\n<td>Object of the wanted events</td>\n<td>Array</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>event_name</td>\n<td>Name of the event</td>\n<td>String</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>params</td>\n<td>Event parameters of the event</td>\n<td>Array (of string)</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>format</td>\n<td>The export format</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>hook</td>\n<td>Your webhook endpoint</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The sample below displays a request to get the raw user data with <strong>all attributes</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"segment\": {\n    \"segment_id\": 123456789\n  },\n  \"attributes\": [\n    \"*\"\n  ],\n  \"events\": {\n    \"start_date\": 1606311893,\n    \"end_date\": 1611582293,\n    \"wanted\": [\n      {\n        \"event_name\": \"email_click\",\n        \"params\": [\n          \"email_campaign_id\",\n          \"timestamp\"\n        ]\n      },\n      {\n        \"event_name\": \"item_added_to_cart\",\n        \"params\": [\n          \"product_id\",\n          \"name\",\n          \"timestamp\"\n        ]\n      },\n      {\n        \"event_name\": \"journey_entered\",\n        \"params\": [\n          \"journey_id\",\n          \"timestamp\"\n        ]\n      }\n    ]\n  },\n  \"format\": \"parquet\",\n  \"hook\": \"xyz.test.com\"\n}\n\n</code></pre>\n<p>The sample below displays a request to get the raw user data with <strong>selected attributes</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"segment\": {\n        \"segment_id\": 123456789\n    },\n   \"attributes\": [\n      \"last_visited_product\",\n      \"email\",\n      \"name\",\n      \"c_custom_attribute\"\n   ],\n   \"events\": {\n      \"start_date\": 1606311893,\n      \"end_date\": 1611582293,\n      \"wanted\": [\n         {\n            \"event_name\": \"custom_event\",\n            \"params\": [\n               \"c_custom_parameter\",\n               \"timestamp\"\n            ],\n            \"filters\": [\n               {\n                  \"key\": \"email_campaign_id\",\n                  \"operator\": \"eq\",\n                  \"values\": [369, 877]\n               }\n            ]\n         },\n         {\n            \"event_name\": \"item_added_to_cart\",\n            \"params\": [\n               \"product_id\",\n               \"name\",\n               \"timestamp\"\n            ]\n         },\n         {\n            \"event_name\": \"journey_entered\",\n            \"params\": [\n               \"journey_id\",\n               \"timestamp\"\n            ]\n         }\n      ]\n   },\n   \"format\": \"parquet\",\n   \"hook\": \"https://xyz.test.com\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"url\":\"https://insider-data-export.useinsider.com/{partner name}/p/{file name}\"}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<p>The following response returns if you exceed the rate limit.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"rejected: too many requests\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations:</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only a response that states whether the request is successful or failed can be received via this API. No data can be inserted.</p>\n</li>\n<li><p>The <strong>request token</strong> should be provided in the <strong>request header</strong>. If the token is incorrect, the operation will not be executed.</p>\n</li>\n<li><p>The exported data can be in CSV, Parquet (version 1.0), or JSON formats.</p>\n</li>\n<li><p>The export link expires <strong>in 24 hours</strong> after it is ready.</p>\n</li>\n<li><p>The rate limit for raw export is 1 request per day. Failed requests don't count. Based on the UTC zone, the API can be called only once in 24 hours. The limitation timeline resets at UTC 00:00.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase.</strong></p>\n</li>\n</ul>\n<p>Since <a href=\"https://webhook.site\"><i>https://webhook.site</i></a> blocks Insider, you cannot retrieve hooks containing download links with URLs belonging here. We will make efforts to address this issue; however, there are currently limitations to resolving it.</p>\n","urlObject":{"protocol":"https","path":["api","raw","v1","export"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"2dd92dd3-2f47-4fc1-9c91-156aa722cf6e","name":"Export users from a dynamic segment by an attribute and event","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"segment\": {\n        \"segment_id\": 116731\n    },\n    \"attributes\": [\n        \"city\"\n    ],\n    \"events\": {\n        \"start_date\": 1682951197,\n        \"end_date\": 1685111197,\n        \"wanted\": [\n            {\n                \"event_name\": \"listing_page_view\",\n                \"params\": [\n                    \"device_type\",\n                    \"timestamp\"\n                ]\n            }\n        ]\n    },\n    \"format\": \"csv\",\n    \"hook\": \"http://{IP_ADRESS}:{PORT_NUBER}/slack_hook/xxxxxxxxxxEXAMPLExxxxxxx\"\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/raw/v1/export"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Date","value":"Fri, 26 May 2023 14:28:37 GMT","enabled":true},{"key":"Content-Length","value":"0","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin","enabled":true},{"key":"x-envoy-upstream-service-time","value":"7","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=g24b8shcUMjPoZmWgVh9L.7aH9ogtCVJb4ddGcpeLPc-1685111317-0-AXnBF2j8EJQfDZBG0XfuPdlDuJqpjOoIEcncIzriCKq6No5mvTYX06YgAk9hhLReF9w6Htns7f92F2ZH2kTtaH4=; path=/; expires=Fri, 26-May-23 14:58:37 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd6b4a48d408f1d-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"4f3fdcf2-4108-4398-bd84-ba75ce0aa88e"},{"name":"Delete user attribute","id":"62b5e0dc-0959-4f47-b372-227e450ed9dc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"users\": [\n    {\n      \"identifiers\": {\n        \"email\": \"sample@mail.com\",\n        \"uuid\": \"1x2y3z\",\n        \"custom\": {\n          \"custom_identifier\": \"xyz123\"\n        }\n      },\n      \"whole\": [\n        \"name\",\n        \"surname\",\n        \"email_optin\"\n      ],\n      \"partial\": {\n        \"list_id\": [\n          1,\n          2\n        ]\n      },\n      \"custom\": {\n        \"whole\": [\n          \"custom_string_attribute\",\n          \"custom_array_attribute\"\n        ],\n        \"partial\": {\n          \"custom_array_attribute\": [\n            \"value1\",\n            \"value2\",\n            \"value3\"\n          ]\n        }\n      }\n    }\n  ]\n}"},"url":"https://unification.useinsider.com/api/user/v1/attribute/delete","description":"<p>This API enables you to delete your customer attributes when you need to. You can either delete the whole attribute from the user, or delete a specific value from an array typed attribute.</p>\n<p>For example, your customer might have selected GDPR’s “right-to-be-forgotten” option and you need to delete some attributes that capture such customer information.</p>\n<p>This deletion action <strong>cannot be undone</strong>. Please carefully consider before proceeding.</p>\n<p>An attribute defined as an identifier cannot be deleted with this request. To delete this type of attribute (since it functions as an identifier), you must use the <a href=\"https://academy.useinsider.com/docs/api-reference-delete-identifiers\">Delete Identifiers API</a>.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Each POST body must have a unifier field under <strong>identifiers</strong> object. You can use the default identifiers such as email, phone number, or uuid and also the custom identifier to define a unifier.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>users</td>\n<td>Array of user information such as identifiers, attributes and values to be deleted</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>identifiers</td>\n<td>User's identifier information.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>User's custom identifier information.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>whole</td>\n<td>Array of attributes that are going to be deleted fully from the corresponding user</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>partial</td>\n<td>Attributes that are going to be deleted partially. (Ex. removing one of the values from an array attribute)</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>Custom attributes that are going to be deleted either whole or partially</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>User's email address.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in E.164 format (e.g. +6598765432)</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>User's unique user identifier.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email_optin</td>\n<td>Attribute. User's permission for marketing emails:  <br />  <br />True = emails allowed;  <br />  <br />False = email not allowed</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gdpr_optin</td>\n<td>Attribute. User's permission for Insider campaigns, data collection and processing:  <br />  <br />False = user will not see any Insider campaign or receive any message from any channel;  <br />  <br />True or empty = Insider may interact with the user through personalization campaigns</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sms_optin</td>\n<td>Attribute. User's permission for SMS:  <br />  <br />True = SMS allowed;  <br />  <br />False = SMS not allowed</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Attribute. User's name.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>surname</td>\n<td>Attribute. User's surname.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>birthday</td>\n<td>Attribute. User's birthday in RFC 3339 format (e.g. 1993-03-12T00:00:00Z).  <br />  <br /><strong>Note</strong>: Send the birthdays without the time offset.</td>\n<td>Datetime</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>Attribute. Gender of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>age</td>\n<td>Attribute. Age of the user</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>language</td>\n<td>Language information of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>country</td>\n<td>Attribute. Country information of the user in ISO 3166-1 alpha-2 format.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>city</td>\n<td>Attribute. City information of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>list_id</td>\n<td>Attribute. Newsletter contact list IDs (users are added directly).</td>\n<td>Numbers (Number array)</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample JSON to delete user attributes.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request POST 'https://unification.useinsider.com/api/user/v1/attribute/delete' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"users\": [\n        {\n            \"identifiers\": {\n                \"email\": \"sample@useinsider.com\",\n                \"uuid\": \"1x2y3z\",\n                \"custom\": {\n                    \"custom_identifier\": \"xyz123\"\n                }\n            },\n            \"whole\": [\n                \"name\",\n                \"surname\",\n                \"email_optin\"\n            ],\n            \"partial\": {\n                \"list_id\": [\n                    1,\n                    2\n                ]\n            },\n            \"custom\": {\n                \"whole\": [\n                    \"custom_string_attribute\",\n                    \"custom_array_attribute\"\n                ],\n                \"partial\": {\n                    \"custom_array_attribute\": [\n                        \"value1\",\n                        \"value2\",\n                        \"value3\"\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<p>The sample below displays a request to get user data with <strong>insider_id.</strong></p>\n<p><strong>insider_id</strong> is an internal ID maintained by the Insider for each user. To find the <strong>insider_id</strong>, you can refer to the Profile ID on the <a href=\"https://academy.useinsider.com/docs/user-profiles-overview\">User Profile</a>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request POST 'https://unification.useinsider.com/api/user/v1/attribute/delete' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"users\": [\n    {\n      \"insider_id\": \"sampleinsiderid\",\n      \"whole\": [\n        \"name\",\n        \"surname\",\n        \"email_optin\"\n      ],\n      \"partial\": {\n        \"list_id\": [\n          1,\n          2\n        ]\n      },\n      \"custom\": {\n        \"whole\": [\n          \"custom_string_attribute\",\n          \"custom_array_attribute\"\n        ],\n        \"partial\": {\n          \"custom_array_attribute\": [\n            \"value1\",\n            \"value2\",\n            \"value3\"\n          ]\n        }\n      }\n    }\n  ]\n}'\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{}\n\n</code></pre>\n<h4 id=\"403-forbidden\">403 Forbidden</h4>\n<p>The following response returns in case of an authentication error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"Access Denied. You do not have sufficient access to perform this action.\"\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<p>The following response returns if you exceed the rate limit.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"rejected: too many requests\"\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"The request processing has failed because of an unknown error.\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only delete requests can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>request token</strong> should be provided in the <strong>request header</strong>. If the token is incorrect, the operation will not be executed.</p>\n</li>\n<li><p>A single HTTPS POST request can pass a maximum of <strong>1,000 records (users)</strong>.</p>\n</li>\n<li><p>Rate limit is shared with <strong>User Upsert API</strong> with a total of <strong>25,000 requests per minute.</strong></p>\n</li>\n<li><p>The entire request must not exceed <strong>5 MB</strong>.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","user","v1","attribute","delete"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"c3ff2e10-9cf9-49eb-bfa1-a3398c431a4c","name":"Delete default and custom whole and partial attributes","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"users\": [\n    {\n      \"identifiers\": {\n        \"email\": \"sample@useinsider.com\"\n      },\n      \"whole\": [\n        \"phone_number\",\n        \"app_version\"\n      ],\n      \"partial\": {\n        \"list_id\": [\n          1049,\n          1123\n        ]\n      },\n      \"custom\": {\n        \"whole\": [\n          \"last_visited_category_name\",\n          \"last_visited_product_name\"\n        ],\n        \"partial\": {\n          \"last_browsed_items\": [\n            \"browsed_item_name_1\",\n            \"browsed_item_url_1\"\n          ]\n        }\n      }\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/attribute/delete"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 14:37:19 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"54","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd6c1640c99700f-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"successful\": {\n            \"count\": 1\n        },\n        \"fail\": {}\n    }\n}"}],"_postman_id":"62b5e0dc-0959-4f47-b372-227e450ed9dc"},{"name":"Update identifiers","id":"a82e244e-6964-4619-b11e-31e6ab31847b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"old_identifier\": {\n        \"email\": \"sample@mail.com\"\n    },\n    \"new_identifier\": {\n        \"email\": \"sample2@mail.com\"\n    }\n}"},"url":"https://unification.useinsider.com/api/user/v1/identity","description":"<p>This API enables you to update the value of the identifiers that are already associated with users.</p>\n<p>For example, an existing user that is already a known user to Insider may have updated their email address in your system. Accordingly, you may need to change the identifier(s) of this user. With this API, you can change the value of an existing identifier to a new value.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Each PATCH request must have an <strong>identifier</strong> type, old value, and new value specified in it. You can use either one of the default identifiers which are uuid, email, and phone_number, or any one of the custom identifiers you are using.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>old_identifier</td>\n<td>User’s current identifier value</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>new_identifier</td>\n<td>User’s next identifier value</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>User’s custom identifiers information</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>User's email address</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>User's unique user identifier</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>Below is a sample body with <strong>default identifiers</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"old_identifier\": {\n        \"email\": \"sample@mail.com\"\n    },\n    \"new_identifier\": {\n        \"email\": \"sample2@mail.com\"\n    }\n}\n\n</code></pre>\n<p>Below is a sample body with <strong>custom identifiers</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"old_identifier\": {\n    \"custom\": {\n      \"user_loyalty_id\": \"xyz123\"\n    }\n  },\n  \"new_identifier\": {\n    \"custom\": {\n      \"user_loyalty_id\": \"xyz123\"\n    }\n  }\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>The following response returns if the identifier values are the same.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"identifier values are the same: bad request\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>The following response returns if you do not have 1 entry for both new and old identifiers.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"there must be exactly 1 entry for both new and old identifiers: bad request\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS PATCH</strong> request.</p>\n</li>\n<li><p>The <strong>request token</strong> should be provided in the <strong>request header</strong>. If the token is incorrect, no operation will be executed.</p>\n</li>\n<li><p>A single HTTPS PATCH request can pass <strong>only one record</strong> (user).</p>\n</li>\n<li><p>A maximum of <strong>2000 requests</strong> can be sent per minute.</p>\n</li>\n<li><p>Identifiers that are to be replaced should be of the same type.</p>\n</li>\n<li><p>The entire request must <strong>not exceed 5 MB</strong>.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","user","v1","identity"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"55debc0d-42ac-4059-a586-3ba40110d321","name":"Update custom identifier","originalRequest":{"method":"PATCH","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"old_identifier\": {\n    \"custom\": {\n      \"user_loyalty_id\": \"upsertloyalty123\"\n    }\n  },\n  \"new_identifier\": {\n    \"custom\": {\n      \"user_loyalty_id\": \"newidentifier123\"\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/identity"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Feb 2023 16:44:11 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Content-Length","value":"3","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin","enabled":true},{"key":"x-envoy-upstream-service-time","value":"52","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"79e9aa1ccdfa1fe3-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"a82e244e-6964-4619-b11e-31e6ab31847b"},{"name":"Delete identifiers","id":"cd3bf9db-a2f1-4d09-a84c-13a2b6de3e28","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"identifiers\": {\n        \"email\": \"sample@mail.com\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/identity","description":"<p>This API enables you to delete the value of the identifiers that are already associated with users.</p>\n<p>For example, an existing user that is already a known user to Insider may have deleted their phone number from your system. Accordingly, you may need to delete the phone number of this user. With this API, you can delete the value of an existing identifier.</p>\n<p>This deletion action cannot be undone. Please carefully consider before proceeding.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Each DELETE request must have an <strong>identifier</strong> type, and the value specified in it. You can use either one of the default identifiers, which are <strong>uuid</strong>, <strong>email</strong>, and <strong>phone_number</strong>, or <strong>any one of the custom identifiers</strong> you are using.</p>\n<p>If the user is associated with <strong>only one identifier</strong>, you <strong>cannot delete</strong> it.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>identifiers</td>\n<td>User’s current identifier in use</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>User’s custom identifiers information</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>User's email address</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>User's unique user identifier</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>Below is a sample body with a <strong>default identifier</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"identifiers\": {\n        \"email\": \"sample@mail.com\"\n    }\n}\n\n</code></pre>\n<p>Below is a sample body with a <strong>custom identifier</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"identifiers\": {\n    \"custom\": {\n      \"user_loyalty_id\": \"xyz123\"\n    }\n  }\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>The following response returns if the user has only one identifier.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"you cannot delete the sole identifier specified for a user: bad request\"\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<p>If you exceed the rate limits, you receive an error shown below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"rejected: too many requests\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS DELETE</strong> request.</p>\n</li>\n<li><p>The <strong>request token</strong> should be provided in the <strong>request header</strong>. If the token is incorrect, no operation will be executed.</p>\n</li>\n<li><p>A single HTTPS DELETE request can pass <strong>only 1 record</strong> (user).</p>\n</li>\n<li><p>A maximum of <strong>25,000 requests</strong> can be sent per minute.</p>\n</li>\n<li><p>Identifier that are to be deleted cannot be the only identifier associated with the corresponding user profile.</p>\n</li>\n<li><p>The entire request must <strong>not exceed 5 MB</strong>.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","user","v1","identity"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"59032e66-d2e6-4eda-9dcf-5305a06da609","name":"Delete identifiers","originalRequest":{"method":"DELETE","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"identifiers\": {\n        \"email\": \"sample@mail.com\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/identity"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"cd3bf9db-a2f1-4d09-a84c-13a2b6de3e28"},{"name":"Get user profiles","id":"fe906248-3328-4186-9840-63576243a6c3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"identifiers\": {\n    \"email\": \"johndoe@email.com\"\n  },\n  \"attributes\": [\n    \"email\",\n    \"name\",\n    \"surname\",\n    \"custom\"\n  ],\n  \"events\": {\n    \"start_date\": 1606311893,\n    \"end_date\": 1611582293,\n    \"wanted\": [\n      {\n        \"event_name\": \"email_click\",\n        \"params\": [\n          \"campaign_id\",\n          \"timestamp\"\n        ]\n      },\n      {\n        \"event_name\": \"item_added_to_cart\",\n        \"params\": [\n          \"product_id\",\n          \"name\",\n          \"timestamp\"\n        ]\n      },\n      {\n        \"event_name\": \"journey_entered\",\n        \"params\": [\n          \"journey_id\",\n          \"timestamp\"\n        ]\n      }\n    ]\n  },\n  \"quota\": true\n}"},"url":"https://unification.useinsider.com/api/user/v1/profile","description":"<p>This API returns the <strong>attributes</strong> and <strong>events</strong> you request for a single user that you specify by an <strong>identifier</strong>. It takes identifier, attribute list, and event list within the date range. In its response, it provides the data you choose.</p>\n<p>You can get user profiles for various use cases. For example, you can personalize the content for your other providers, or connect user profiles to your services like call centers.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Each POST body must have an <strong>identifiers</strong> object.</p>\n<p>Each request must have <strong>attributes</strong> or <strong>events</strong> object to return the respective user profiles. In the event of using <strong>events</strong> object, its keys are required as stated in the table below.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>identifiers</td>\n<td>Identifier key</td>\n<td>Object</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>attributes</td>\n<td>Array of wanted attributes</td>\n<td>Array (of string)</td>\n<td>Yes (if the body does <strong>not have the events</strong> object)</td>\n</tr>\n<tr>\n<td>events</td>\n<td>Object of events</td>\n<td>Object</td>\n<td>Yes (if the body does <strong>not have the attributes</strong> object)</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>Beginning of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>End of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>wanted</td>\n<td>Object of the wanted events</td>\n<td>Array</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>event_name</td>\n<td>Name of the event</td>\n<td>String</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>params</td>\n<td>Wanted event parameters of the event</td>\n<td>Array (of string)</td>\n<td>Yes (if the body <strong>has the events</strong> object)</td>\n</tr>\n<tr>\n<td>quota</td>\n<td>Flag to display quota usage</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>Specifically for this API, to select the journey event's name parameter, use <strong>journey_campaign_name</strong> as the event parameter key.</p>\n<h3 id=\"sample-body\">Sample Body</h3>\n<p>The sample below displays a request to get user data with <strong>an identifier</strong>.</p>\n<p>You can refer to <a href=\"https://academy.useinsider.com/docs/default-events-attributes\">Default Events &amp; Attributes</a> to see the list of events and attributes. If an event or attribute name consists of more than one word, you can use an underscore (_) between the words. <em>E.g. email_optin, homepage_view, etc.</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"identifiers\": {\n    \"email\": \"sample@useinsider.com\"\n  },\n  \"attributes\": [\n    \"email\",\n    \"name\",\n    \"surname\"\n  ],\n  \"events\": {\n    \"start_date\": 1606311893,\n    \"end_date\": 1611582293,\n    \"wanted\": [\n      {\n        \"event_name\": \"email_click\",\n        \"params\": [\n          \"campaign_id\",\n          \"timestamp\"\n        ]\n      },\n      {\n        \"event_name\": \"item_added_to_cart\",\n        \"params\": [\n          \"product_id\",\n          \"name\",\n          \"timestamp\"\n        ]\n      },\n      {\n        \"event_name\": \"journey_entered\",\n        \"params\": [\n          \"journey_id\",\n          \"timestamp\"\n        ]\n      }\n    ]\n  },\n  \"quota\": true\n}\n\n</code></pre>\n<p>The sample below displays a request to get user data with a <strong>custom attribute</strong>. For custom attributes, you need to add a “_c__” prefix.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request POST 'https://unification.useinsider.com/api/user/v1/profile' \\\n--header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'Content-Type: application/json' \\\n--header 'Cookie: __cfduid=d1a0bc0c8335c7fecbd3485839787329b1615112066' \\\n--data-raw '{\n    \"identifiers\": {\n        \"email\": \"example@useinsider.com\"\n    },\n    \"attributes\": [\n        \"email\",\n        \"name\",\n        \"surname\",\n        \"c_member_code\"\n    ],\n    \"events\": {\n        \"start_date\": 1606311893,\n        \"end_date\": 1611582293,\n        \"wanted\": [\n            {\n                \"event_name\": \"email_click\",\n                \"params\": [\n                    \"campaign_id\",\n                    \"timestamp\"\n                ]\n            },\n            {\n                \"event_name\": \"item_added_to_cart\",\n                \"params\": [\n                    \"product_id\",\n                    \"name\",\n                    \"timestamp\"\n                ]\n            },\n            {\n                \"event_name\": \"journey_entered\",\n                \"params\": [\n                    \"journey_id\",\n                    \"timestamp\"\n                ]\n            }\n        ]\n    },\n    \"quota\": true\n}'  \n\n</code></pre>\n<p>The sample below displays a request to get user data with <strong>insider_id.</strong></p>\n<p><strong>insider_id</strong> is an internal ID maintained by the Insider for each user. To find the <strong>insider_id</strong>, you can refer to the Profile ID on the <a href=\"https://academy.useinsider.com/docs/user-profiles-overview\">User Profile</a>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request POST 'https://unification.useinsider.com/api/user/v1/profile' \\\n--header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'Content-Type: application/json' \\\n--header 'Cookie: __cfduid=d1a0bc0c8335c7fecbd3485839787329b1615112066' \\\n--data-raw '{\n  \"insider_id\": \"sampleinsiderid\",\n  \"attributes\": [\n    \"email\",\n    \"name\",\n    \"surname\"\n  ],\n  \"events\": {\n    \"start_date\": 1606311893,\n    \"end_date\": 1611582293,\n    \"wanted\": [\n      {\n        \"event_name\": \"email_click\",\n        \"params\": [\n          \"campaign_id\",\n          \"timestamp\"\n        ]\n      },\n      {\n        \"event_name\": \"item_added_to_cart\",\n        \"params\": [\n          \"product_id\",\n          \"name\",\n          \"timestamp\"\n        ]\n      },\n      {\n        \"event_name\": \"journey_entered\",\n        \"params\": [\n          \"journey_id\",\n          \"timestamp\"\n        ]\n      }\n    ]\n  },\n  \"quota\": true\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"attributes\": {\n    \"email\": \"example@useinsider.com\",\n    \"name\": \"John\",\n    \"surname\": \"Doe\"\n    \"iid\": \"insider-id-user-1\"\n  },\n  \"events\": {\n    \"email_click\": [\n      {\n        \"campaign_id\": 1456,\n        \"created_date\": \"2021-01-06T23:34:09Z\"\n      },\n      {\n        \"campaign_id\": 1245,\n        \"created_date\": \"2021-01-01T12:56:21Z\"\n      }\n    ],\n    \"item_added_to_cart\": [\n      {\n        \"product_id\": \"3254634\",\n        \"name\": \"Blue Shirt\",\n        \"created_date\": \"2021-01-04T15:04:34Z\"\n      }\n    ],\n    \"journey_entered\": [\n      {\n        \"journey_id\": 12,\n        \"created_date\": \"2021-01-02T09:35:46Z\"\n      }\n    ]\n  },\n  \"quota\": {\n        \"cost\": 2.5,\n        \"used\": 2.5,\n        \"total\": 1000\n    }\n}\n\n</code></pre>\n<h4 id=\"404-not-found\">404 Not Found</h4>\n<p>The following response returns if no user is found for the respective identifier.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"error\":\"no such user for these identifiers: no data\"}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new data can be retrieved via this API. No data can be inserted.</p>\n</li>\n<li><p>The <strong>request token</strong> should be provided on the <strong>request header</strong>. If the token is incorrect, the operation will not be executed.</p>\n</li>\n<li><p>The API can prepare the data only for one user that is specified by the <strong>identifier</strong>.</p>\n</li>\n<li><p>If the <strong>limit_per_source</strong> value is set, then only that many events are assigned from every source. For example, if the limit_per_source value is set to 1 for the purchase event, then 1 purchase event is acquired from email, web, and other sources as well.</p>\n</li>\n<li><p>If you wish to see the quota usage for the payload then set <strong>Quota=true</strong>.</p>\n</li>\n<li><p>The quota is limited to <strong>1000 units</strong> per minute.</p>\n</li>\n<li><p>The user base size and the number of types of events define the quota usage. The attribute number or set of attributes doesn't matter.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","user","v1","profile"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"299b4f19-4171-427d-98da-5af8d683a9a8","name":"User profile with an event and attribute","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"identifiers\": {\n    \"email\": \"{emailAddress}\"\n  },\n  \"attributes\": [\n    \"email_optin\"\n  ],\n   \"events\":{\n      \"start_date\":1675265826,\n      \"end_date\":1677598626,\n      \"wanted\":[\n         {\n            \"event_name\":\"homepage_view\",\n            \"params\":[\n               \"referrer\"\n            ]\n         }\n      ]\n   }\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/profile"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 05 May 2023 09:22:17 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"32","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=tvP6peGr1mSGW1KonXplwGSHzHnmwldVEgEeV9ZaK6Q-1683278537-0-AexRcACjYP5WMjwFlKYtoJxPThcDXg/Zo43d/ET5xKrsL+qwd8Py+wV9SoQ+6/Qz8V00ZqUGpT6odWVY4eSd1mU=; path=/; expires=Fri, 05-May-23 09:52:17 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7c27eb0aedfd820f-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"attributes\": {\n        \"email_optin\": true\n    },\n    \"events\": {\n        \"homepage_view\": [\n            {\n                \"referrer\": \"https://posh.useinsider.com/customer/account/login/referer/aHR0cHM6Ly9wb3NoLnVzZWluc2lkZXIuY29tL2Ntcy9ub3JvdXRlL2luZGV4Lw%2C%2C/\",\n                \"source\": \"web\"\n            },\n            {\n                \"referrer\": \"https://posh.useinsider.com/bess-yoga-short.html\",\n                \"source\": \"web\"\n            },\n            {\n                \"referrer\": \"https://posh.useinsider.com/customer/account/login/referer/aHR0cHM6Ly9wb3NoLnVzZWluc2lkZXIuY29tL2Ntcy9ub3JvdXRlL2luZGV4Lw%2C%2C/\",\n                \"source\": \"web\"\n            },\n            {\n                \"referrer\": \"https://posh.useinsider.com/customer/account/login/referer/aHR0cHM6Ly9wb3NoLnVzZWluc2lkZXIuY29tL2Ntcy9ub3JvdXRlL2luZGV4Lw%2C%2C/\",\n                \"source\": \"web\"\n            },\n            {\n                \"referrer\": \"https://posh.useinsider.com/bess-yoga-short.html\",\n                \"source\": \"web\"\n            },\n            {\n                \"referrer\": \"https://posh.useinsider.com/bess-yoga-short.html\",\n                \"source\": \"web\"\n            },\n            {\n                \"referrer\": \"https://posh.useinsider.com/bess-yoga-short.html\",\n                \"source\": \"web\"\n            },\n            {\n                \"referrer\": \"https://posh.useinsider.com/apps/insider/insider-sw-sdk.js\",\n                \"source\": \"web\"\n            },\n            {\n                \"referrer\": \"https://posh.useinsider.com/?SID=gtqfg0af2g3fopr1qio4hsjdso\",\n                \"source\": \"web\"\n            }\n        ]\n    }\n}"}],"_postman_id":"fe906248-3328-4186-9840-63576243a6c3"},{"name":"Upload first-party segments","id":"fe7e4b47-84e6-4574-910b-e847d9816282","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to InOne &gt; InOne Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"segmentName\": \"My Segment Name\",\n  \"fileUrl\": \"https://s3.amazonaws.com/sample_csv_file.csv\",\n  \"callbackUrl\": \"https://localhost/12345\",\n  \"attributeName\": \"em\"\n}"},"url":"https://contact.useinsider.com/fps/v1/upload","description":"<p>The First-Party Segment API allows you to easily create a first-party segment through an API. When the uploading process is completed, the segment is automatically created on your First-Party Segment page under Saved Segments. In addition, you can see the results of the segment creation on the callback.</p>\n<p>The FPS segments don't generate new users; instead, they group existing users into segments based on their attribute values.</p>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><p>Assume that you want to pass your custom segment(s) via API to Insider but do not want to create a segment on Insider's InOne panel. Thanks to the FPS API, you can maintain the entire segment creation process through the API from beginning to end.</p>\n</li>\n<li><p>Let's say you want to target a set of specific user attributes that contain “Store ID” on UCD. You can basically create a .csv file and name its column as Store ID with the store ID values. To make these attribute values produce a segment, you can pass this file’s URL to the payload, and at the end of the request, you can get the number of users who have these values.</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Store ID</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id1</td>\n</tr>\n<tr>\n<td>id2</td>\n</tr>\n</tbody>\n</table>\n</div><p>Assume that you have 17k store owners as your customers. Instead of multi-selecting 17k values under the segmentation filter, you can list those <strong>store_id</strong> values on a sheet and upload them to the FPS segment upload field. This way, a snapshot of the people with those store ID values is generated.</p>\n<p>You do not need to include a header row in the CSV file. The attribute name (e.g., \"Store ID\") has already been specified in the API payload. The values in the CSV file should be listed without a header.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>segmentName</td>\n<td>It is the name of the segment.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>fileUrl</td>\n<td>It is the URL where CSV is hosted. This URL should be downloadable.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>callbackUrl</td>\n<td>Callback URL is to receive the result of segment creation. This URL should accept POST request.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>attributeName</td>\n<td>It is the name of the user attribute on which the segment is created. It refers to the attribute names on UCD. This field basically enables you to match your users who have the given attribute.  <br /><a href=\"https://academy.useinsider.com/docs/default-attributes#default-attributes-populated-by-insider\">Attribute names</a> should be in accordance with Attribute Name field on <a href=\"https://academy.useinsider.com/docs/events-attributes-overview\">Default Attributes page</a>.  <br />It can be either an identifier or any attribute.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"sample-example\">Sample Example</h2>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>Every request made to the request endpoint requires <strong>a request body</strong> formatted in JSON containing the required body parameters.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://contact.useinsider.com/fps/v1/upload' \\\n--header 'X-REQUEST-TOKEN: acb123' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"segmentName\": \"My Segment Name\",\n  \"fileUrl\": \"https://s3.amazonaws.com/sample_csv_file.csv\",\n  \"callbackUrl\": \"https://localhost/12345\",\n  \"attributeName\": \"em\"\n}'\n\n</code></pre>\n<p>The attribute <strong>em</strong> stands for email address in Insider's system.</p>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"segment name already in use\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h4 id=\"405-invalid-payload\">405 INVALID PAYLOAD</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Invalid Payload.\"\n}\n\n</code></pre>\n<h3 id=\"error-messages\">Error Messages</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Error</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>segment name already in use</td>\n<td>The segment name in the request already exists on your panel. You should name your segment with a different name.</td>\n</tr>\n<tr>\n<td>the file URL is invalid. The URL should include .csv extension</td>\n<td>The CSV URL is invalid. The URL should include .csv extension.</td>\n</tr>\n<tr>\n<td>file size is more than the limit</td>\n<td>File size cannot be more than 10MB.</td>\n</tr>\n<tr>\n<td>partner name is missing</td>\n<td>X-PARTNER-NAME needs to be available.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-callback-responses\">Sample Callback Responses</h3>\n<h4 id=\"200-ok-1\">200 OK</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": 200,\n    \"segment_name\": \"My unique segment\",\n    \"value_values_count\": 5,\n    \"invalid_values_count\": 7,\n    \"total_entered_values\": 12\n}\n\n</code></pre>\n<ul>\n<li><p><strong>valid_values_count</strong>: The number of valid row values for the given attribute in the body.</p>\n</li>\n<li><p><strong>invalid_values_count</strong>: The number of invalid row values for the given attribute in the body. For example, you tried to map the CSV file given below with the age attribute. Since age attribute is a number, the invalid_values_count will be 2 in this case.</p>\n</li>\n<li><p><strong>total_entered_values</strong>: the total number of rows in the .csv file.</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of the <strong>X-PARTNER-NAME</strong> header should be <strong>lowercase</strong>.</p>\n</li>\n<li><p><strong>callbackUrl</strong> needs to accept <strong>POST</strong> response</p>\n</li>\n<li><p>File size cannot be more than <strong>50MB</strong>.</p>\n</li>\n<li><p><strong>SegmentName</strong> can have a maximum of <strong>40 characters</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["fps","v1","upload"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"fe7e4b47-84e6-4574-910b-e847d9816282"}],"id":"8028ffbb-6bb3-4eb2-857a-e0288a105b6f","description":"<p>Insider's UCD APIs allow you to manage your user data on Insider's Unified Customer Database (UCD). You can upsert user data, export your raw data, delete user data, update identifiers, and upload first-party segments.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API</strong></th>\n<th><strong>Function</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#453ca8fb-cd71-4900-9973-cc452416f820\">Upsert user data</a></td>\n<td>You can send user attributes and events to Insider, insert and update user data.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#e9de126f-c86d-4888-8d28-1ddfa12a3c19\">Export raw user data</a></td>\n<td>You can have access to the raw user data, and export it to transfer it to your end.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#e908bb11-769c-4e79-a47c-417622cf41b6\">Delete user attribute</a></td>\n<td>You can delete your customer attributes.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#43eaeac1-1a9b-4a9c-aedf-5c8b56c90050\">Update identifiers</a></td>\n<td>You can update the identifier information of your users.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#40e9a8e0-8abb-4dd4-8f77-2b4bb244dbcc\">Delete identifiers</a></td>\n<td>You can delete the identifier information of your users.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#5acc24c0-76c2-40a7-bcb5-30782f602c3a\">Get user profiles</a></td>\n<td>You can get the attributes and events of your users.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#8746e943-194a-424d-9d5e-b4e78ce5b11e\">Upload first-party segments</a></td>\n<td>You can upload your first-party segments to Insider.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"8028ffbb-6bb3-4eb2-857a-e0288a105b6f"},{"name":"Data Governance APIs","item":[{"name":"Set data processing consent for app users","id":"dd7421c0-2e51-4ab0-847b-322a54ba9789","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"partner_name\": \"{partnerName}\",\n    \"gdpr_consent\": true,\n    \"target\": {\n        \"udid\": \"1A2B3C4D5E6F7X8Y9Z\"\n    }\n}"},"url":"https://mobile.useinsider.com/api/v1/privacy/gdpr/consent/set","description":"<p>EU’s General Data Protection Regulation came into force on May 25, 2018. This legislation requires Insider's customers to ask for specific consent to send their data to Insider as the Data Processor. Data Processing Consent API helps you send user consent programmatically in real-time over the web using predefined web services.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partner_name</td>\n<td>Your Insider partner name. The partner name should be lowercase.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>gdpr_consent</td>\n<td>If consent given, <em>true</em>  <br />Otherwise <em>false</em></td>\n<td>Boolean</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>target</td>\n<td>The object that contains the unique device ID of the user, and its value. <em>E.g. \"udid\": \"1234\"</em></td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to pass user consent to Insider.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"partner_name\": \"{partner_name}\",\n    \"gdpr_consent\": true,\n    \"target\": {\n        \"udid\": \"1A2B3C4D5E6F7X8Y9Z\"\n    }\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"ok\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>The following response returns if the partner_name or target is empty in the request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-plaintext\">Bad Payload.\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>The partner name should be provided in the request body. If the value is incorrect, no operation will be executed.</li>\n<li>Each request can set data processing consent for <strong>only one</strong> UDID.</li>\n<li>The value of partner_name should be <strong>lowercase</strong>.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","v1","privacy","gdpr","consent","set"],"host":["mobile","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"c15615b6-15d7-4607-8e27-b1bd96bee099","name":"Set GDPR opt-in for users","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"partner_name\": \"partnerName\",\n    \"gdpr_consent\": true,\n    \"target\": {\n        \"udid\": \"B22DFA4D6F0A6F5\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://mobile.useinsider.com/api/v1/privacy/gdpr/consent/set"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:07:30 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Content-Length","value":"16","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin","enabled":true},{"key":"x-envoy-upstream-service-time","value":"46","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd63dcfbcc620d2-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"ok\"\n}"}],"_postman_id":"dd7421c0-2e51-4ab0-847b-322a54ba9789"},{"name":"Delete user profile","id":"a482d06a-c92d-498a-8e3c-819367457879","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"identifiers\": {\n        \"email\": \"sample@useinsider.com\"\n    }\n}"},"url":"https://unification.useinsider.com/api/user/v1/delete","description":"<p>This API enables you to delete your customer and their data when you need to.</p>\n<p>For example, one of your users might have selected GDPR’s “right-to-be-forgotten” option and you need to delete that user's data. You can call this API with the related identifier for Insider to find that user's data, and delete it.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Each POST body must have a unifier field under <strong>identifiers</strong> object. You can use the default identifiers such as email, phone number, or uuid and also the new custom identifier to define a unifier. For example, you use the email field as a unifier, any data without email field will not be accepted.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>identifiers</td>\n<td>User's identifier information.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>User's custom identifier information.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>User's email address.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in E.164 format (e.g. +6598765432)</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>User's unique user identifier.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample JSON without a custom object.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"identifiers\":{\n      \"email\":\"example@useinsider.com\"\n   }\n}\n\n</code></pre>\n<p>You can also send a request <strong>with a custom object</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"identifiers\":{\n      \"custom\":{\"custom_identifier\":\"xyz123\"}\n   }\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{}\n\n</code></pre>\n<h4 id=\"403-forbidden\">403 Forbidden</h4>\n<p>The following response returns in case of an authentication error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"Access Denied. You do not have sufficient access to perform this action.\"\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"The request processing has failed because of an unknown error.\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only delete request can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>request token</strong> should be provided on the <strong>request header</strong>. If the token is incorrect, the operation will not be executed.</p>\n</li>\n<li><p>A single HTTPS POST request can pass <strong>only 1 record</strong> (user).</p>\n</li>\n<li><p>Maximum <strong>10,000</strong> requests can be sent per minute.</p>\n</li>\n<li><p>The entire request must <strong>not exceed 5 MB</strong>.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","user","v1","delete"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"c91d7f8e-abb7-426a-8a69-35422a539b6a","name":"Delete user","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"identifiers\": {\n        \"email\": \"sample@useinsider.com\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://unification.useinsider.com/api/user/v1/delete"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:13:46 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Content-Length","value":"3","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin","enabled":true},{"key":"x-envoy-upstream-service-time","value":"39","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd6470068b5058a-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"a482d06a-c92d-498a-8e3c-819367457879"},{"name":"Delete user's PII data using profile ID","id":"c1b0fcd6-0f40-4655-8582-d5ff5fb56c90","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n\"partner\": \"mybrand\",\n\"insider_id\": \"1122334455\",\n\"api_key\": \"1a2b3c4d5e6f\"\n}"},"url":"https://unification.useinsider.com/api/contact/v1/anonymize","description":"<p>This API is used to delete users' PII data. Insider does not allow the deletion of the user's last remaining identifier. In addition, if this value is a PII (Personally Identifiable Information) data such as email, phone number, it would not be deleted. Thanks to this endpoint, you can delete these values associated with users; if they are a known user and their only identifier is email or phone number, then, the user becomes anonymous. For example, you can delete all PII data of registered users when they revoke their data-sharing permissions.</p>\n<p>The user attributes marked as PII are unconditionally deleted with this API.</p>\n<p>Note: This action cannot be undone. Please carefully consider before proceeding.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>User's email address.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in E.164 format (e.g. +6598765432)</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>User's unique user identifier.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Attribute. User's name.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>surname</td>\n<td>Attribute. User's surname.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>birthday</td>\n<td>Attribute. User's birthday in RFC 3339 format (e.g. 1993-03-12T00:00:00Z). Note: Send the birthdays without the time offset</td>\n<td>Datetime</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>Attribute. Gender of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>age</td>\n<td>Attribute. Age of the user</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>country</td>\n<td>Attribute. Country information of the user in ISO 3166-1 alpha-2 format.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>city</td>\n<td>Attribute. City information of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n          “insider_id”: “111ab184-f66d-4cba-123e-9abca4332211\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>This response returns if the request is successful.</p>\n<h3 id=\"sample-responses-1\">Sample Responses</h3>\n<h4 id=\"200-ok-1\">200 OK</h4>\n<p>This response returns when the request is successful.</p>\n<h4 id=\"404-not-found\">404 NOT FOUND</h4>\n<p>The below response returns when you send the wrong identifiers.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"error\":\"no such user for these identifiers: no data\"}\n\n</code></pre>\n<h2 id=\"limitations\">Limitations</h2>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only <strong>PII data delete requests</strong> can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The request token should be provided on the request header. If the token is incorrect, the operation will not be executed</p>\n</li>\n<li><p>The rate limit is <strong>500 requests</strong> per minute.</p>\n</li>\n<li><p>A single HTTPS POST request can pass only <strong>1 record</strong> (users).</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase.</strong></p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","contact","v1","anonymize"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"c1b0fcd6-0f40-4655-8582-d5ff5fb56c90"},{"name":"Delete user's PII data using identifier","id":"379641ce-7653-4307-9885-9afa46ce3a6c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"identifiers\": {\n    \"email\": \"sample@useinsider.com\"\n  }\n}"},"url":"https://unification.useinsider.com/api/user/v1/anonymize","description":"<p>This API is used to delete users' PII data. Insider does not allow the deletion of the user's last remaining identifier. In addition, if this value is a PII (Personally Identifiable Information) data such as email, phone number, it would not be deleted. Thanks to this endpoint, you can delete these values associated with users; if they are a known user and their only identifier is email or phone number, then, the user becomes anonymous. For example, you can delete all PII data of registered users when they revoke their data-sharing permissions.</p>\n<p>The user attributes marked as PII are unconditionally deleted with this API.</p>\n<p>Note: This action cannot be undone. Please carefully consider before proceeding.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>User's email address.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in E.164 format (e.g. +6598765432)</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>User's unique user identifier.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Attribute. User's name.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>surname</td>\n<td>Attribute. User's surname.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>birthday</td>\n<td>Attribute. User's birthday in RFC 3339 format (e.g. 1993-03-12T00:00:00Z).  <br />  <br /><strong>Note</strong>: Send the birthdays without the time offset.</td>\n<td>Datetime</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>Attribute. Gender of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>age</td>\n<td>Attribute. Age of the user</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>country</td>\n<td>Attribute. Country information of the user in ISO 3166-1 alpha-2 format.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>city</td>\n<td>Attribute. City information of the user.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"identifiers\": {\n    \"email\": \"sample@useinsider.com\"\n  }\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>This response returns if the request is successful.</p>\n<h4 id=\"404-not-found\">404 NOT FOUND</h4>\n<p>The response below returns when you send the wrong identifiers.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"error\":\"no such user for these identifiers: no data\"}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only <strong>PII data delete requests</strong> can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The request token should be provided on the request header. If the token is incorrect, the operation will not be executed</p>\n</li>\n<li><p>The rate limit is <strong>500 requests</strong> per minute.</p>\n</li>\n<li><p>A single HTTPS POST request can pass only <strong>1 record</strong> (users).</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","user","v1","anonymize"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"379641ce-7653-4307-9885-9afa46ce3a6c"}],"id":"46cfc19d-da1d-4eeb-ae4e-a010db48334d","description":"<p>Data Governance APIs allow you to manage the data consent of your users. You can set data processing consent for your app users, or delete existing user data.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API</strong></th>\n<th><strong>Function</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#6da933e2-da18-47e9-80b0-3c216261e536\">Set data processing consent for app users</a></td>\n<td>You can update your app users' data processing consent to comply with GDPR.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#7b65ef0f-f849-4b0f-869d-7a0ccf61f714\">Delete user data</a></td>\n<td>You can delete your customers' data.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"46cfc19d-da1d-4eeb-ae4e-a010db48334d"},{"name":"User Subscription APIs","item":[{"name":"Email","item":[{"name":"Unsubscribe email users from database","id":"c7654f52-469f-4ad9-b047-19fe91197174","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"sample@useinsider.com\"\n}"},"url":"https://contact.useinsider.com/email/v1/unsubscribe","description":"<p>This API enables you to unsubscribe users from Insider's email platform.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your email's content and metadata. This includes the subscriber's email address.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>User's email address</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to unsubscribe a user from Email platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"email\": \"sample@mail.com\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h5 id=\"401-unauthorized\">401 Unauthorized</h5>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only global unsubscribers can be sent via this API. No data can be retrieved.</li>\n<li>The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v1","unsubscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"3ad0672a-e343-4086-a418-f70ddad4bd3e","name":"Unsubscribe email users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"sample@useinsider.com\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/email/v1/unsubscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 12:58:11 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"819","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd630289939393d-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"c7654f52-469f-4ad9-b047-19fe91197174"},{"name":"Unsubscribe email users for email global unsubscription","id":"0822c672-1298-4ff6-8318-17b49d33e5d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\",\n        \"sample3@useinsider.com\"\n    ]\n}"},"url":"https://contact.useinsider.com/email/v2/unsubscribe","description":"<p>The Email Unsubscribe API allows you to ingest email addresses into either the global unsubscribe list or a specific unsubscribe group you created in InOne.</p>\n<p>The Email Unsubscribe API v2 is the latest version of the <a href=\"https://academy.useinsider.com/docs/unsubscribe-email-users-from-database\">Email Unsubscribe API</a>, which supports bulk data ingestion. If you're still using the previous version (v1), we strongly recommend migrating to this updated version to benefit from bulk updates and enhanced functionality. Please note that new integrations with v1 are no longer supported.</p>\n<p>API usage changes depending on the identifier format you're using. Please refer to the relevant section based on your identifier configuration.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>emails</td>\n<td>User's email addresses</td>\n<td>String Array</td>\n<td>Yes (normal and email based)</td>\n</tr>\n<tr>\n<td>uuids</td>\n<td>User's unique user identifier</td>\n<td>String Array</td>\n<td>Yes (only if you are not using email as an identifier and using profile based)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-requests\">Sample Requests</h3>\n<h4 id=\"when-email-is-the-identifier-or-email-based-flow-is-enabled\">When Email is the Identifier or Email-Based Flow is Enabled</h4>\n<p>Every request made to the request endpoint requires a <strong>request body</strong> formatted in JSON and containing your email's content and metadata.</p>\n<p>In cases where the email is used as the identifier, if the user exists, their status will be updated; if the user does not exist, a new user will be created.<br />For the email-based flow, the same request is used; however, it will only update the status of existing users and will not create new users.</p>\n<p>The <strong>emails</strong> field is required for global unsubscribe requests.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'contact.useinsider.com/email/v2/unsubscribe' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: a1b2c3d4e5f6' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\",\n        \"sample3@useinsider.com\"\n    ]\n}'\n\n</code></pre>\n<h4 id=\"when-uuid-is-the-identifier-and-profile-based-flow-is-enabled\">When UUID is the Identifier and Profile-Based Flow is Enabled</h4>\n<p>Every request made to the request endpoint requires a <strong>request body</strong> formatted in JSON and containing your email's content and metadata.</p>\n<p>If the profile-based flow is enabled for your account,<br />- If the user in the request exists, their status will be updated.<br />- If the user does not exist, a new user will be created.</p>\n<p>The <strong>uuid</strong> and <strong>email</strong> fields are required for global unsubscribe requests.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'http://contact.useinsider.com/email/v2/unsubscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'x-request-token: a1b2c3d4e5f6' \\\n--header 'x-partner-name: mybrand' \\\n--data-raw '{\n    \"users\": [\n        {\n            \"uuid\": \"test-uuid-1\",\n            \"email\": \"sample1@useinsider.com\"\n        },\n        {\n            \"uuid\": \"test-uuid-2\",\n            \"email\": \"sample2@useinsider.com\"\n        },\n        {\n            \"uuid\": \"test-uuid-3\",\n            \"email\": \"sample3@useinsider.com\"\n        },\n        {\n            \"uuid\": \"test-uuid-4\",\n            \"email\": \"sample4@useinsider.com\"\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h5 id=\"401-unauthorized\">401 Unauthorized</h5>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>A <strong>maximum of 500 emails</strong> or <strong>UUIDs</strong> can be consumed in one request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v2","unsubscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"f31bd4fe-b426-465b-a758-1136772d99a8","name":"Unsubscribe email users for email global unsubscription","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n     \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/email/v2/unsubscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 12:58:11 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"819","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd630289939393d-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"0822c672-1298-4ff6-8318-17b49d33e5d3"},{"name":"Unsubscribe email users for email group","id":"68f28aeb-cbfa-4e5d-83f4-ffc30fcd1fc2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\",\n        \"sample3@useinsider.com\"\n    ]\n}"},"url":"https://contact.useinsider.com/email/v2/unsubscribe","description":"<p>The Email Unsubscribe API allows you to ingest email addresses into either the global unsubscribe list or a specific unsubscribe group you created in InOne.</p>\n<p>The Email Unsubscribe API v2 is the latest version of the <a href=\"https://academy.useinsider.com/docs/unsubscribe-email-users-from-database\">Email Unsubscribe API</a>, which supports bulk data ingestion. If you're still using the previous version (v1), we strongly recommend migrating to this updated version to benefit from bulk updates and enhanced functionality. Please note that new integrations with v1 are no longer supported.</p>\n<p>API usage changes depending on the identifier format you're using. Please refer to the relevant section based on your identifier configuration.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>emails</td>\n<td>Users' email addresses</td>\n<td>String Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>users</td>\n<td>Users' unique user identifier</td>\n<td>String Array</td>\n<td>Yes (only if you are not using email as an identifier)</td>\n</tr>\n<tr>\n<td>group_name</td>\n<td>The Unsubscribe Group’s name. If the group name does not exist, it creates a new group and unsubscribes the user from it. More than two, fewer than 30 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<h4 id=\"when-email-is-the-identifier-or-email-based-flow-is-enabled\">When Email is the Identifier or Email-Based Flow is Enabled</h4>\n<p>In cases where the email is used as the identifier, if the user exists, their status will be updated; if the user does not exist, a new user will be created.  </p>\n<p>For the email-based flow, the same request is used; however, it will only update the status of existing users and will not create new users.</p>\n<p>The <strong>emails</strong> and <strong>group_name</strong> fields are required for the group unsubscribe requests. If the <strong>group nam</strong>e you provided does not already exist, a new group will be created with that name when the request is sent.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'contact.useinsider.com/email/v2/unsubscribe' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: a1b2c3d4e5f6' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\",\n        \"sample3@useinsider.com\",\n        \"sample4@useinsider.com\",\n        \"sample5@useinsider.com\"\n    ],\n    \"group_name\": \"unsubscribe_group_name\"\n}'\n\n</code></pre>\n<h4 id=\"when-uuid-is-the-identifier-and-profile-based-flow-is-enabled\">When UUID is the Identifier and Profile-Based Flow is Enabled</h4>\n<p>The <strong>email</strong>, <strong>uuid,</strong> and <strong>group_name</strong> fields are required for the group unsubscribe requests.</p>\n<p>If the <strong>group name</strong> you provided does not already exist, a new group will be created with that name when the request is sent.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'http://contact.useinsider.com/email/v2/unsubscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'x-request-token: a1b2c3d4e5f6' \\\n--header 'x-partner-name: mybrand' \\\n--data-raw '{\n    \"users\": [\n        {\n            \"uuid\": \"test-uuid-1\",\n            \"email\": \"sample1@useinsider.com\"\n        },\n        {\n            \"uuid\": \"test-uuid-2\",\n            \"email\": \"sample2@useinsider.com\"\n        },\n        {\n            \"uuid\": \"test-uuid-3\",\n            \"email\": \"sample3@useinsider.com\"\n        },\n        {\n            \"uuid\": \"test-uuid-4\",\n            \"email\": \"sample4@useinsider.com\"\n        }\n    ]\n    \"group_name\": \"group_name\"\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h5 id=\"401-unauthorized\">401 Unauthorized</h5>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>A <strong>maximum of 500 emails</strong> or <strong>UUIDs</strong> can be consumed in one request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v2","unsubscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"a9f8876a-96be-4007-aaeb-7ea824e53e7e","name":"Unsubscribe email users for email group","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n     \"emails\": [\n        \"example1@useinsider.com\",\n        \"example2@useinsider.com\"\n    ],\n    \"is_unsubscribe_group\": true,\n    \"group_name\": \"unsubscribe_group_name\",\n    \"uploader_email\": \"example@useinsider.com\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/email/v1/unsubscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 12:58:11 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"819","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd630289939393d-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"68f28aeb-cbfa-4e5d-83f4-ffc30fcd1fc2"},{"name":"Resubscribe email users","id":"3d4f829e-1962-4bca-933c-e9b35e6691dc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"sample@useinsider.com\"\n}"},"url":"https://contact.useinsider.com/email/v1/subscribe","description":"<p>This API allows you to set an unreachable email status as reachable on Insider's email platform.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your email's content and metadata. This includes the subscriber's email address.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>User's email address</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to resubscribe a user to the Email platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"email\": \"sample@mail.com\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only emails can be sent via this API. No data can be retrieved.</li>\n<li>The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v1","subscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"584aa07f-2c37-4e8b-bc29-f1f43c429b29","name":"Resubscribe email users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"sample@useinsider.com\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/email/v1/subscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 12:59:40 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"706","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd632574a0b9c28-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"3d4f829e-1962-4bca-933c-e9b35e6691dc"},{"name":"Resubscribe Email Users for Email Global Subscribe","id":"a2ba4d4b-facd-4435-a718-1a383b7abda9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to InOne &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your Resubscribe token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n     \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/email/v2/subscribe","description":"<p>The Email Resubscribe API allows you to set an unreachable email status as reachable on the Insider's Email platform.</p>\n<p>The Resubscribe API v2 is the latest version of the <a href=\"https://academy.useinsider.com/docs/resubscribe-email-users\">Email Resubscribe API</a>, which supports bulk data ingestion. If you're still using the previous version (v1), we strongly recommend migrating to this updated version to benefit from bulk updates and enhanced functionality. Please note that new integrations with v1 are no longer supported.</p>\n<p>API usage changes depending on the identifier format you're using. Please refer to the relevant section based on your identifier configuration.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>emails</td>\n<td>User's email address(es)</td>\n<td>String Array</td>\n<td>es (normal and email-based)</td>\n</tr>\n<tr>\n<td>uuids</td>\n<td>Users unique user identifier</td>\n<td>String Array</td>\n<td>Yes (only if you are not using email as an identifier and using profile-based)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-requests\">Sample Requests</h3>\n<h4 id=\"when-email-is-the-identifier-or-email-based-flow-is-enabled\">When Email is the Identifier or Email-Based Flow is Enabled</h4>\n<p>Every request made to the request endpoint requires a <strong>request body</strong> formatted in JSON and containing your email's content and metadata.</p>\n<p>For the email-based flow, the same request is used; however, it will only update the status of existing users and will not create new users.</p>\n<p>The <strong>emails</strong> field is required for resubscribe requests.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'http://contact.useinsider.com/email/v2/subscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: a1b2c3d4e5f6' \\\n--data-raw '{\n     \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\"\n    ]\n}'\n\n</code></pre>\n<h4 id=\"when-uuid-is-the-identifier-and-profile-based-flow-is-enabled\">When UUID is the Identifier and Profile-Based Flow is Enabled</h4>\n<p>Every request made to the request endpoint requires a <strong>request body</strong> formatted in JSON and containing your email's content and metadata.</p>\n<p>If the profile-based flow is enabled for your account:<br />- If the user in the request exists, their status will be updated.<br />- If the user does not exist, a new user will be created.</p>\n<p>The <strong>uuid</strong>, and <strong>uploader_email</strong> fields are required for resubscribe requests.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://contact.useinsider.com/email/v2/subscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'x-request-token: mybrand' \\\n--header 'x-partner-name: a1b2c3d4e5f6' \\\n--data-raw '{\n    \"uuids\": [\n        \"test-uuid-1\",\n        \"test-uuid-2\",\n        \"test-uuid-3\",\n        \"test-uuid-7\"\n    ],\n    \"emails\": [\n        \"samlpe1@useinsider.com\",\n        \"sample2@useinsider.com\",\n        \"sample3@useinsider.com\",\n        \"sample4@useinsider.com\"\n    ]\n}'\n\n</code></pre>\n<h2 id=\"sample-responses\">Sample Responses</h2>\n<h4 id=\"200-ok\">200 OK</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>A maximum of <strong>500 emails</strong> or <strong>UUIDs</strong> can be consumed in one request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n<blockquote>\n<p>&lt;p &gt;The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider team — we can adjust it to fit your needs.&lt;/p&gt;</p>\n</blockquote>\n","urlObject":{"protocol":"https","path":["email","v2","subscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"a2ba4d4b-facd-4435-a718-1a383b7abda9"},{"name":"Resubscribe Email Users for Email Group Subscribe","id":"cff18d71-7f92-42e0-b57f-6b8c2ba41aba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to InOne &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your Resubscribe token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\"\n    ],\n    \"group_id\": 12345\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/email/v2/subscribe","description":"<p>The Email Resubscribe API allows you to set an unreachable email status as reachable on the Insider's Email platform.</p>\n<p>The Resubscribe API v2 is the latest version of the <a href=\"https://academy.useinsider.com/docs/resubscribe-email-users\">Email Resubscribe API</a>, which supports bulk data ingestion. If you're still using the previous version (v1), we strongly recommend migrating to this updated version to benefit from bulk updates and enhanced functionality. Please note that new integrations with v1 are no longer supported.</p>\n<p>API usage changes depending on the identifier format you're using. Please refer to the relevant section based on your identifier configuration.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>emails</td>\n<td>User's email address</td>\n<td>String Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>uuids</td>\n<td>Users unique user identifier</td>\n<td>String Array</td>\n<td>Yes (only if you are using profile based flow)</td>\n</tr>\n<tr>\n<td>group_id</td>\n<td>The Unsubscribe Group’s ID.</td>\n<td>Number</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-requests\">Sample Requests</h3>\n<h4 id=\"when-email-is-the-identifier-or-email-based-flow-is-enabled\">When Email is the Identifier or Email-Based Flow is Enabled</h4>\n<p>Every request made to the request endpoint requires a <strong>request body</strong> formatted in JSON and containing your email's content and metadata.</p>\n<p>The <strong>emails</strong> and <strong>group_id</strong> are required for the group resubscribe requests.</p>\n<p>With this request, you can only subscribe users from an existing group; a new group cannot be created.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'http://contact.useinsider.com/email/v2/subscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: a1b2c3d4e5f6' \\\n--data-raw '{\n    \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\"\n    ],\n    \"group_id\": 12345\n}'\n\n</code></pre>\n<h4 id=\"when-uuid-is-the-identifier-and-profile-based-flow-is-enabled\">When UUID is the Identifier and Profile-Based Flow is Enabled</h4>\n<p>Every request made to the request endpoint requires a <strong>request body</strong> formatted in JSON and containing your email's content and metadata.</p>\n<p>The <strong>emails</strong>, <strong>uuids</strong> and <strong>group_id</strong> fields are required for the group resubscribe requests.</p>\n<p>With this request, you can only subscribe users from an existing group; a new group cannot be created.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://contact.useinsider.com/email/v2/subscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'x-request-token: mybrand' \\\n--header 'x-partner-name: a1b2c3d4e5f6' \\\n--data-raw '{\n    \"uuids\": [\n        \"test-uuid-1\",\n        \"test-uuid-2\",\n        \"test-uuid-3\",\n        \"test-uuid-7\"\n    ],\n    \"emails\": [\n        \"sample1@useinsider.com\",\n        \"sample2@useinsider.com\",\n        \"sample3@useinsider.com\",\n        \"sample4@useinsider.com\"\n    ],\n    \"group_id\": 12345\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>A maximum of <strong>500 emails</strong> or <strong>UUIDs</strong> can be consumed in one request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n<blockquote>\n<p>The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider team — we can adjust it to fit your needs.</p>\n</blockquote>\n","urlObject":{"protocol":"https","path":["email","v2","subscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"cff18d71-7f92-42e0-b57f-6b8c2ba41aba"}],"id":"7bbc4a85-03cf-4edb-93d4-c456383d9b20","description":"<p>With these APIs, you can manage the email subscription preferences of your users. You can unsubscribe them from Insider's database, or resubscribe them for your email campaigns.</p>\n","_postman_id":"7bbc4a85-03cf-4edb-93d4-c456383d9b20"},{"name":"WhatsApp","item":[{"name":"Unsubscribe WhatsApp users from database","id":"65d12e01-18fc-40d6-85aa-638b95eaaa9e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+6512345678\"\n}"},"url":"https://contact.useinsider.com/whatsapp/v1/unsubscribe","description":"<p>This API enables you to unsubscribe users from Insider's WhatsApp platform.</p>\n<p>A <a href=\"https://academy.useinsider.com/docs/unsubscribe-whatsapp-users-from-database-v2\">newer version of the Unsubscribe API</a> is available with support for bulk data ingestion. While the older version is still supported, we recommend using the latest version for improved functionality and future compatibility.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your phone number’s content and metadata. This includes the subscriber’s phone number.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to unsubscribe users from WhatsApp platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"phone_number\": \"+905012345678\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only global unsubscribers can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["whatsapp","v1","unsubscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"9f510416-17e3-41c3-ae56-3e9f8c43392c","name":"Unsubscribe WhatsApp users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+16102347589\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/whatsapp/v1/unsubscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:01:34 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"121","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=aUwYKAPcIwZw286m8tiW.4k1pjTJSuuLMgK59gQ50h4-1685106094-0-AVDM49tTahTIQk2XXCuqqxua00pqcdCop4LZuQfQNvPKKkV8SZrk/JJOKrX1nyWtWUlj4x+JLev5nhONiwbTXvo=; path=/; expires=Fri, 26-May-23 13:31:34 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd635217aef3b4d-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"65d12e01-18fc-40d6-85aa-638b95eaaa9e"},{"name":"Unsubscribe WhatsApp users from database / v2","id":"3b339f0f-cb5f-48b9-aa11-f8bfa92c7269","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n     \"phone_numbers\": [\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\"\n    ]\n}"},"url":"https://contact.useinsider.com/whatsapp/v2/unsubscribe","description":"<p>The WhatsApp Unsubscribe API enables you to unsubscribe users from Insider's <a href=\"https://academy.useinsider.com/docs/whatsapp-overview\">WhatsApp</a> platform.</p>\n<p>If a user exists with the provided phone number, the user's subscription status will be updated. If no user exists and the phone number is used as an identifier, a new user will be created.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone_numbers</td>\n<td>Users' phone number in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String Array</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON containing your phone number’s content and metadata, including the subscriber’s phone number.</p>\n<p>The <strong>phone_numbers</strong> field is required for resubscribe requests.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'http://contact.useinsider.com/whatsapp/v2/unsubscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: a1b2c3d4e5f6' \\\n--data-raw '{\n     \"phone_numbers\": [\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\"\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only <strong>phone numbers</strong> can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>A maximum of <strong>500 phone numbers</strong> can be consumed in <strong>one request</strong>.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of the X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n<p>The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider team — we can adjust it to fit your needs.</p>\n","urlObject":{"protocol":"https","path":["whatsapp","v2","unsubscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"7e599235-fd0e-457c-9448-1094193ff449","name":"Unsubscribe WhatsApp users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+16102347589\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/whatsapp/v1/unsubscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:01:34 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"121","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=aUwYKAPcIwZw286m8tiW.4k1pjTJSuuLMgK59gQ50h4-1685106094-0-AVDM49tTahTIQk2XXCuqqxua00pqcdCop4LZuQfQNvPKKkV8SZrk/JJOKrX1nyWtWUlj4x+JLev5nhONiwbTXvo=; path=/; expires=Fri, 26-May-23 13:31:34 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd635217aef3b4d-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"3b339f0f-cb5f-48b9-aa11-f8bfa92c7269"},{"name":"Resubscribe WhatsApp users","id":"b76eb310-0d86-4535-b24f-a29bd384102c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. </p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+655012345678\"\n}"},"url":"https://contact.useinsider.com/whatsapp/v1/subscribe","description":"<p>This API allows you to set an unreachable phone number status as reachable on Insider's WhatsApp platform.</p>\n<p>A <a href=\"https://academy.useinsider.com/docs/resubscribe-whatsapp-users-v2\">newer version of the Resubscribe API</a> is available with support for bulk data ingestion. While the older version is still supported, we recommend using the latest version for improved functionality and future compatibility.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your phone number’s content and metadata. This includes the subscriber’s phone number.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to resubsribe users to Insider's WhatsApp platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n     \"phone_number\": \"+905012345678\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only phone numbers can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["whatsapp","v1","subscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"9dea9068-119d-4adf-a2aa-925a7039cf36","name":"Resubscribe WhatsApp users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. ","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+16102347589\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/whatsapp/v1/subscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:03:24 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"102","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd637d33841825a-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"b76eb310-0d86-4535-b24f-a29bd384102c"},{"name":"Resubscribe WhatsApp users / v2","id":"5e9ff6e7-8dbd-40c1-b167-4a23d013eef0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. </p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n     \"phone_numbers\": [\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\"\n    ]\n}"},"url":"https://contact.useinsider.com/whatsapp/v2/subscribe","description":"<p>The WhatsApp Resubscribe API enables you to update an unreachable phone number status to reachable on Insider's <a href=\"https://academy.useinsider.com/docs/whatsapp-overview\">WhatsApp</a> platform.</p>\n<p>If a user exists with the provided phone number, the user's subscription status will be updated. If no user exists and the phone number is used as an identifier, a new user will be created.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your phone number’s content and metadata. This includes the subscriber’s phone number.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone_numbers</td>\n<td>Users' phone numbers in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String Array</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON containing your phone number’s content and metadata, including the subscriber’s phone number.</p>\n<p>The <strong>phone_numbers</strong> field is required for resubscribe requests.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'http://contact.useinsider.com/whatsapp/v2/subscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: a1b2c3d4e5f6' \\\n--data-raw '{\n     \"phone_numbers\": [\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\"\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only phone numbers can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>A maximum of <strong>500 phone numbers</strong> can be consumed in <strong>one request</strong>.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of the X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n<p>The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider team — we can adjust it to fit your needs.</p>\n","urlObject":{"protocol":"https","path":["whatsapp","v2","subscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"5e9ff6e7-8dbd-40c1-b167-4a23d013eef0"}],"id":"f269615b-4eaf-45d7-8802-6b3656276e6c","description":"<p>With these APIs, you can manage the WhatsApp subscription preferences of your users. You can unsubscribe them from Insider's database, or resubscribe them for your WhatsApp campaigns.</p>\n","_postman_id":"f269615b-4eaf-45d7-8802-6b3656276e6c"},{"name":"SMS","item":[{"name":"Unsubscribe SMS users from database","id":"a9ebbbf0-2049-4f44-b5d0-b94e849c996c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+65012345678\"\n}"},"url":"https://contact.useinsider.com/sms/v1/unsubscribe","description":"<p>This API enables you to unsubscribe users from Insider's SMS platform.</p>\n<p>A <a href=\"https://academy.useinsider.com/docs/unsubscribe-sms-users-from-database-v2\">newer version of the Unsubscribe API</a> is available with support for bulk data ingestion. While the older version is still supported, we recommend using the latest version for improved functionality and future compatibility.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your phone number’s content and metadata. This includes the subscriber’s phone number.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to unsubscribe users from the SMS platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"phone_number\": \"+905012345678\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only global unsubscribers can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["sms","v1","unsubscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"f4c607cf-d547-42d7-a90b-704c2143833f","name":"Unsubscribe SMS users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+16102347589\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/sms/v1/unsubscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:04:26 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"116","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd639519fff57e5-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"a9ebbbf0-2049-4f44-b5d0-b94e849c996c"},{"name":"Unsubscribe SMS users from database / v2","id":"c0b1c5b2-0d55-429a-be6d-ca4f969e17df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n     \"phone_numbers\": [\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\"\n    ]\n}"},"url":"https://contact.useinsider.com/sms/v2/unsubscribe","description":"<p>The SMS Unsubscribe API enables you to unsubscribe users from Insider's <a href=\"https://academy.useinsider.com/docs/sms-overview\">SMS</a> platform.</p>\n<p>If a user exists with the provided phone number, the user's subscription status will be updated. If no user exists and the phone number is used as an identifier, a new user will be created.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone_numbers</td>\n<td>Users' phone numbers in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String Array</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON containing your phone number’s content and metadata, including the subscriber’s phone number.</p>\n<p>The <strong>phone_numbers</strong> field is required for resubscribe requests.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'http://contact.useinsider.com/sms/v2/unsubscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: a1b2c3d4e5f6' \\\n--data-raw '{\n     \"phone_numbers\": [\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\"\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only <strong>phone numbers</strong> can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>A maximum of <strong>500 phone numbers</strong> can be consumed in <strong>one request</strong>.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of the X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n<p>The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider team — we can adjust it to fit your needs.</p>\n","urlObject":{"protocol":"https","path":["sms","v2","unsubscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"a5684ba1-9d97-4e48-a454-f79444452fce","name":"Unsubscribe SMS users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+16102347589\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/sms/v1/unsubscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:04:26 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"116","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd639519fff57e5-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"c0b1c5b2-0d55-429a-be6d-ca4f969e17df"},{"name":"Resubscribe SMS users","id":"f7886410-7880-43e5-bdf4-3ba6e95b5931","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. </p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+655012345678\"\n}"},"url":"https://contact.useinsider.com/sms/v1/subscribe","description":"<p>This API allows you to set an unreachable phone number status as reachable on Insider's SMS platform.</p>\n<p>A <a href=\"https://academy.useinsider.com/docs/resubscribe-sms-users-v2\">newer version of the Resubscribe API</a> is available with support for bulk data ingestion. While the older version is still supported, we recommend using the latest version for improved functionality and future compatibility.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your phone number’s content and metadata. This includes the subscriber’s phone number.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone_number</td>\n<td>User's phone number in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to resubscribe users to the SMS platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n     \"phone_number\": \"+905012345678\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only phone numbers can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["sms","v1","subscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"c3875b66-8507-4dd4-9106-e40f8dd30d51","name":"Resubscribe SMS users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. ","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+16102347589\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/sms/v1/subscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:05:39 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"191","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd63b194dd67fbe-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"f7886410-7880-43e5-bdf4-3ba6e95b5931"},{"name":"Resubscribe SMS users / v2","id":"8ddba16f-e453-4b41-94b0-05c20234d170","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. </p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n     \"phone_numbers\": [\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\"\n    ]\n}"},"url":"https://contact.useinsider.com/sms/v2/subscribe","description":"<p>The SMS Resubscribe API enables you to update an unreachable phone number status to reachable on Insider's <a href=\"https://academy.useinsider.com/docs/sms-overview\">SMS</a> platform.</p>\n<p>If a user exists with the provided phone number, the user's subscription status will be updated. If no user exists and the phone number is used as an identifier, a new user will be created.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone_numbers</td>\n<td>Users' phone numbers in <strong>E.164 format</strong> (e.g. +6598765432)</td>\n<td>String Array</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON containing your phone number’s content and metadata, including the subscriber’s phone number.</p>\n<p>The <strong>phone_numbers</strong> field is required for resubscribe requests.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'http://contact.useinsider.com/sms/v2/subscribe' \\\n--header 'Content-Type: application/json' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: a1b2c3d4e5f6' \\\n--data-raw '{\n     \"phone_numbers\": [\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\",\n        \"+900000000000\"\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"OK\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Bad request\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusMessage\": \"Unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only phone numbers can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>A maximum of <strong>500 phone numbers</strong> can be consumed in <strong>one request</strong>.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will return in the response.</p>\n</li>\n<li><p>The value of the X-PARTNER-NAME header should be <strong>lowercase</strong>.</p>\n</li>\n</ul>\n<p>The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider team — we can adjust it to fit your needs.</p>\n","urlObject":{"protocol":"https","path":["sms","v2","subscribe"],"host":["contact","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"80057ee6-65a4-4f9b-95e7-6757bce84c7d","name":"Resubscribe SMS users","originalRequest":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"This key is required to authorize your request. ","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone_number\": \"+16102347589\"\n}","options":{"raw":{"language":"json"}}},"url":"https://contact.useinsider.com/sms/v1/subscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 13:05:39 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"22","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"191","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd63b194dd67fbe-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusMessage\": \"OK\"\n}"}],"_postman_id":"8ddba16f-e453-4b41-94b0-05c20234d170"}],"id":"1097adcb-edb6-4955-977b-ad8fca657550","description":"<p>With these APIs, you can manage the SMS subscription preferences of your users. You can unsubscribe them from Insider's database, or resubscribe them for your SMS campaigns.</p>\n","_postman_id":"1097adcb-edb6-4955-977b-ad8fca657550"}],"id":"7767f0c6-f266-4937-86ff-1893c463956d","description":"<p>User Subscription APIs allow you to manage the subscription preferences of your users for Email, WhatsApp, and SMS platforms. You can unsubscribe and resubscribe your users via these APIs.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API</strong></th>\n<th><strong>Function</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#3fd48459-c08f-4114-9e37-4638e8065cb7\">Unsubscribe email users from database</a></td>\n<td>You can unsubscribe users from Insider's Email platform.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#32399952-8d3d-43f4-b547-c8262002cbfd\">Resubscribe email users</a></td>\n<td>You can change the unreachable status of user's email to reachable for the Email platform.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#9d561ba4-146b-4be5-9ee2-a0a5131c4025\">Unsubscribe WhatsApp users from database</a></td>\n<td>You can unsubscribe users from Insider's WhatsApp platform.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#8321fb37-0ced-4f17-912a-723e2695be43\">Resubscribe WhatsApp users</a></td>\n<td>You can change the unreachable status of user's phone number to reachable for the WhatsApp platform.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#54f3dfed-2f68-48cd-9245-4e14e0fac3e2\">Unsubscribe SMS users from database</a></td>\n<td>You can unsubscribe users from Insider's SMS platform.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#ecf720c8-e84e-4394-9a48-1c5b54466244\">Resubscribe SMS users</a></td>\n<td>You can change the unreachable status of user's phone number to reachable for the SMS platform.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"7767f0c6-f266-4937-86ff-1893c463956d"},{"name":"Messaging APIs","item":[{"name":"Email APIs","item":[{"name":"Send transactional emails","id":"f6c3aac0-5b17-48c1-b510-546d552f6ea0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"},{"key":"Cache-Control","value":"no-cache","description":"<p>This header specifies browser caching in requests and responses.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"subject\": \"Hello\",\n  \"tos\": [\n    {\n      \"name\": \"John Doe\",\n      \"email\": \"sample@useinsider.com\"\n    }\n  ],\n  \"from\": {\n    \"name\": \"Posh Street\",\n    \"email\": \"posh@useinsider.com\"\n  },\n  \"content\": [\n    {\n      \"type\": \"text/html\",\n      \"value\": \"<p>I am {{first_name}}.</p>\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"name\": \"User in CC\",\n      \"email\": \"user.cc@useinsider.com\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"name\": \"User in BCC\",\n      \"email\": \"user.bcc@useinsider.com\"\n    }\n  ],\n  \"reply_to\": {\n    \"name\": \"Reply to\",\n    \"email\": \"reply@useinsider.com\"\n  },\n  \"dynamic_fields\": {\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"product_name1\": \"Laptop\",\n    \"price1\": \"$1000\",\n    \"product_name2\": \"Iphone\",\n    \"price2\": \"$850\"\n  },\n  \"unique_args\": {\n    \"category\": \"Confirmation Email\",\n    \"purchase_channel\": \"App\"\n  },\n  \"attachments\": [\n    {\n      \"content\": \"aW5zaWRlciB0ZXN0\",\n      \"file_name\": \"file.txt\"\n    }\n  ],\n  \"callback\": {\n    \"url\": \"yourcallbackurl\",\n    \"secret\": \"yoursecret\"\n  }\n}"},"url":"https://mail.useinsider.com/mail/v1/send","description":"<p>This API enables you to send targeted ecommerce and personalized one to one emails to your users. You can trigger these emails once a user takes a specific action on your platform.</p>\n<p>You can use transactional emails to:</p>\n<ul>\n<li><p>Send a post-purchase email to share details about a purchase/booking,</p>\n</li>\n<li><p>Help your users reset their password if they forget it,</p>\n</li>\n<li><p>Confirm an order a user places,</p>\n</li>\n<li><p>Share delivery tracking details of a purchase (when it is shipped, on the way, and delivered) and to take many other actions.</p>\n</li>\n</ul>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your email's content and metadata (e.g. to, reply-to, and email subject).</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>subject</td>\n<td>Subject line that is sent to the recipient</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>tos</td>\n<td>Email address(es) to send the email to</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>User name</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>Email address of the recipient</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>from</td>\n<td>Email address that the email is sent from</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Name that is used as the sender name</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>Email address that is used as the sender email</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>content</td>\n<td>Content of the email</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Type of your email content</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>value</td>\n<td>Email content</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>cc</td>\n<td>Email address(es) to send a carbon copy of the email to</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>name</td>\n<td>User name</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>Email address of the recipient in the cc</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>bcc</td>\n<td>Email address(es) to send a blank carbon copy of the email to</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>name</td>\n<td>User name</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>Email address of the recipient that is in bcc</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>reply_to</td>\n<td>Reply-to address and name that are used to send the email to</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Reply-to name that the email is replied to</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>email</td>\n<td>Reply-to email that the email is replied to</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>attachments</td>\n<td>Any attachments in the email</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>content</td>\n<td>Base64 encoded content of the attachment</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>file_name</td>\n<td>Attached file name</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>dynamic_fields</td>\n<td>Dynamic fields that you can use to personalize the content (e.g. <em>first_name, last_name, product_name1, etc.</em>)</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>unique_args</td>\n<td>Unique arguments of transactional emails used for tracking purposes</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>callback</td>\n<td>The endpoint that you define to receive the webhook events</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Callback endpoint</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>secret</td>\n<td>The secret key to encrypt the body of your webhook events in SHA1 algorithm</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to send transactional emails.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"subject\": \"Hello\",\n  \"tos\": [\n    {\n      \"name\": \"John Doe\",\n      \"email\": \"sample@mail.com\"\n    }\n  ],\n  \"from\": {\n    \"name\": \"Posh Street\",\n    \"email\": \"posh@street.com\"\n  },\n  \"content\": [\n    {\n      \"type\": \"text/html\",\n      \"value\": \"&lt;p class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;I am {{first_name}}.&lt;/p&gt;\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"name\": \"User in CC\",\n      \"email\": \"user.cc@mail.com\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"name\": \"User in BCC\",\n      \"email\": \"user.bcc@mail.com\"\n    }\n  ],\n  \"reply_to\": {\n    \"name\": \"Reply to\",\n    \"email\": \"reply@mail.com\"\n  },\n  \"dynamic_fields\": {\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"product_name1\": \"Laptop\",\n    \"price1\": \"$1000\",\n    \"product_name2\": \"Iphone\",\n    \"price2\": \"$850\"\n  },\n  \"unique_args\": {\n    \"category\": \"Confirmation Email\",\n    \"purchase_channel\": \"App\"\n  },\n  \"attachments\": [\n    {\n      \"content\": \"aW5zaWRlciB0ZXN0\",\n      \"file_name\": \"file.txt\"\n    }\n  ],\n  \"callback\": {\n    \"url\": \"yourcallbackurl\",\n    \"secret\": \"yoursecret\"\n  }\n}\n\n</code></pre>\n<p>If you create your transactional email template via the <a href=\"https://academy.useinsider.com/docs/email-template-library#transactional-email-templates\">Email Template Library</a>, use the following sample payload instead. In this example, the ID of the template is used by the <code>template_id</code> key.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"subject\": \"Hello\",\n  \"tos\": [\n    {\n      \"name\": \"John Doe\",\n      \"email\": \"sample@useinsider.com\"\n    }\n  ],\n  \"from\": {\n    \"name\": \"Posh Street\",\n    \"email\": \"posh@street.com\"\n  },\n  \"reply_to\": {\n    \"name\": \"Reply to\",\n    \"email\": \"reply@useinsider.com\"\n  },\n  \"template_id\": \"275\",\n  \"content\": [\n    {\n      \"type\": \"text/html\",\n      \"value\": \"html code\"\n    }\n  ],\n  \"attachments\": [],\n  \"dynamic_fields\": {}\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"202-accepted\">202 Accepted</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message_id\": \"8e664ecd-352d-4dbd-9786-ceb78b5b173b\",\n    \"status_message\": \"accepted\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>This response indicates that your request is missing the email address in the 'to' parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"errors\": [\n    \"Missing 'email' on 'tos' parameter\"\n  ],\n  \"status_message\": \"failed to validate request\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>This response indicates that the request has an invalid callback URL.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"errors\": [\n    \"Invalid callback URL in 'url' on 'callback'\"\n  ],\n  \"status_message\": \"failed to validate request\"\n}\n\n</code></pre>\n<h4 id=\"400-missing-content-type\">400 Missing Content Type</h4>\n<p>This response indicates that the content type header of the request is incorrect.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"content type must be application/json\",\n  \"status\": 400\n}\n\n</code></pre>\n<h4 id=\"400-missing-subject-line\">400 Missing Subject Line</h4>\n<p>This response indicates that the request is missing the 'subject' parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"errors\": [\n    \"Missing 'subject' parameter\"\n  ],\n  \"message\": \"bad-request\",\n  \"status\": 400\n}\n\n</code></pre>\n<h4 id=\"400-missing-content\">400 Missing Content</h4>\n<p>This response indicates that the request is missing the 'content' parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"errors\": [\n    \"Missing 'content' parameter\"\n  ],\n  \"message\": \"bad-request\",\n  \"status\": 400\n}\n\n</code></pre>\n<h4 id=\"400-missing-from-parameter\">400 Missing 'From' Parameter</h4>\n<p>This response indicates that the request is missing the 'from' parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"errors\": [\n    \"Missing 'from' parameter\"\n  ],\n  \"message\": \"bad-request\",\n  \"status\": 400\n}\n\n</code></pre>\n<h4 id=\"400-missing-to-parameter\">400 Missing 'To' Parameter</h4>\n<p>This response indicates that the request is missing the 'to' parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"errors\": [\n    \"Missing 'to' parameter\"\n  ],\n  \"message\": \"bad-request\",\n  \"status\": 400\n}\n\n</code></pre>\n<h4 id=\"401-invalid-api-key\">401 Invalid API Key</h4>\n<p>This response indicates that the API key provided in the request is invalid, expired, or revoked.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The provided API key is invalid, expired or revoked\",\n  \"status\": 401\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>This response indicates that an internal error occurred on the server side and the request could not be processed.</p>\n<h4 id=\"503-service-unavailable\">503 Service Unavailable</h4>\n<p>This response indicates that the service is temporarily unavailable due to server overload or maintenance.</p>\n<h4 id=\"504-server-timeout\">504 Server Timeout</h4>\n<p>This response indicates that the server did not receive a timely response from an upstream server.</p>\n<h4 id=\"520-cloudflare-network-error\">520 Cloudflare Network Error</h4>\n<p>This response indicates an unexpected error on the Cloudflare network side, preventing the request from being processed.</p>\n<p><strong>Suggested Retry Mechanism</strong>: If any of the above errors are encountered, the request was not processed successfully on the server side. A retry mechanism is recommended to distribute retries randomly within a 5-minute interval, allowing server resources to recover and traffic to stabilize.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new emails can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>Transactional API <strong>cannot be used for sending bulk emails</strong>. It is designed only to set transactional emails.</p>\n</li>\n<li><p>The rate limit is <strong>2000 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["mail","v1","send"],"host":["mail","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"9cbd161b-83d7-4dfc-856e-d33eaa75a136","name":"Send transactional emails","originalRequest":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"},{"key":"Cache-Control","value":"no-cache","description":"This header specifies browser caching in requests and responses.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"subject\": \"Thank you for your purchase!\",\n  \"tos\": [\n    {\n      \"name\": \"John Doe\",\n      \"email\": \"sample@useinsider.com\"\n    }\n  ],\n  \"from\": {\n    \"name\": \"Posh Street\",\n    \"email\": \"mail@useinsider.com\"\n  },\n  \"content\": [\n    {\n      \"type\": \"text/html\",\n      \"value\": \"<p>Hello {{first_name}}! Thank you for purchasing {{product_name1}} and {{product_name2}}.</p>\"\n    }\n  ],\n  \"dynamic_fields\": {\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"product_name1\": \"Yoga Leggings\",\n    \"price1\": \"$35\",\n    \"product_name2\": \"Sports Bra\",\n    \"price2\": \"$12\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://mail.useinsider.com/mail/v1/send"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 26 May 2023 12:46:33 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"110","enabled":true},{"key":"vary","value":"Accept-Encoding","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=P8Y4dNl56X4Ui2qNuETXTwz1f3WEnuAmFecF.9uJQbo-1685105193-0-AShO6RMFSS8Mo5KyNk9tERCAnIyLu/CWPCpcRV1xEBniWDqEOmkeaikABVaWyKXmvfP59PZQWjoYpIWGmg+jZ9E=; path=/; expires=Fri, 26-May-23 13:16:33 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cd61f1f29657fca-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message_id\": \"f0935bbf-fe1d-4b89-aa04-149c9a860081\",\n    \"status_message\": \"accepted\"\n}"}],"_postman_id":"f6c3aac0-5b17-48c1-b510-546d552f6ea0"},{"name":"Create email campaigns","id":"bb5da9a3-0d88-4ffd-94d3-97a3f25fc84c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"my single campaign\",\n    \"tags\": [\n        \"v\",\n        \"tag1 789dfs44\"\n    ],\n    \"type\": \"single\",\n    \"variations\": [\n        {\n            \"subject\": \"Hello {{name}} {{email}} {{custom3|fallback}}\",\n            \"pre_header\": \"apre {{surname|there}}\",\n            \"html\": \"PHRkIGNsYXNzPSJlc2Qtc3RydWN0dXJlIGVzLXAyMCIgYWxpZ249ImxlZnQiIGJnY29sb3I9IiM5MTk0OUYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5NDlGOyI+DQogICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtY29udGFpbmVyLWZyYW1lIiB3aWR0aD0iNTYwIiB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiBjbGFzcz0iZXNkLWJsb2NrLWltYWdlIGVzLXAxNSIgc3R5bGU9ImZvbnQtc2l6ZTogMHB4OyI+PGEgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgY2xhc3M9ImFkYXB0LWltZyIgc3JjPSJodHRwczovL2ltYWdlLnVzZWluc2lkZXIuY29tL2VtYWlsLXRlbXBsYXRlL2xvZ28ucG5nIiBhbHQgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgaGVpZ2h0PSIzMCI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIHN0eWxlPSJjb2xvcjogI0ZGRkZGRjsgZm9udC1zaXplOiAzMHB4OyI+PHN0cm9uZz5UaW1lIGZvciBncmVhdCBlbWFpbCBkZXNpZ248L3N0cm9uZz48L2gyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay10ZXh0IGVzLW0tdHh0LWMgZXMtcDEwdCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6ICNGRkZGRkY7Ij5UaGlzIGlzIGEgbmV3IHRleHQgYmxvY2sgcmVhZHkgZm9yIHlvdXIgbWVzc2FnZSBjb250ZW50LjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICA8L3RhYmxlPg0KPC90ZD4=\",\n            \"utm\": {\n                \"source\": \"thisis_source\",\n                \"campaign\": \"thisis_campaign\",\n                \"medium\": \"thisis_medium\",\n                \"extra\": \"thisis_extra\"\n            }\n        }\n    ]\n}"},"url":"https://mail.useinsider.com/content/v1/campaign/create","description":"<p>This API enables you to send email body and subject from your back-end to create email campaigns on Insider platform. With this API request, you can specify the account name, campaign name and campaign type.</p>\n<p>You can use this API to:</p>\n<ul>\n<li>Send your already created email HTML body and other input parameters to Inone panel to not lose time by adding it again.</li>\n<li>Send the values of the input parameters to the panel directly if you have multiple accounts in Inone and have the same/similar value for these parameters.</li>\n</ul>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Before sending your request, make sure you create it within the following criteria:</p>\n<ul>\n<li>All body parameters should be <strong>lowercase</strong>. Otherwise, they will not be validated and you will receive a validation error.</li>\n<li>If the campaign type is <strong>Experiment</strong>, you should have <strong>2 variations</strong>. Otherwise, your request will not be validated and you will receive a validation error.</li>\n<li>If the campaign type is <strong>Single</strong>, you should have <strong>1 variation</strong>. Otherwise, your request will not be validated and you will receive a validation error.</li>\n<li>The <strong>subject</strong> is required with a maximum of 200 characters.</li>\n<li>The <strong>pre-header</strong> is optional with a maximum of 150 characters.</li>\n<li>Source, medium, and campaign parameters are required for UTM parameters.</li>\n<li>UTM keys can only be alphanumeric with _.</li>\n<li>UTM values can have a maximum of 40 characters.</li>\n<li>UTM values can only be alphanumeric with _-.</li>\n<li>The campaign you create will automatically be tagged with the <strong>email-content-api</strong> tag.</li>\n<li>The campaign creation on Insider platform is real-time after you send the request.</li>\n<li>The default status of the campaign you create is set to <strong>Draft</strong>. You can schedule your campaigns on the panel.</li>\n<li>Email content is not saved as a template.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>Name of the campaign that you want to create on Insider platform. It should be alphanumeric with -_{space}, max. 40 and min. 5 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>tags</td>\n<td>Tag of the campaign that you want to create on Insider platform. It should be alphanumeric with -_{space}, max. 5 tags, max. 15 character-long each.</td>\n<td>Array of strings</td>\n<td>No</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Type of the campaign that you want to create on Insider platform (single, experiment, recurring)</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>variations</td>\n<td>Array that contains email subject, preheader, email HTML, and UTM parameters.</td>\n<td>Array of object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>subject</td>\n<td>The subject of your email campaign up to 200 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>pre_header</td>\n<td>The summary of your email message up to 150 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>html</td>\n<td>The HTML of your email campaign in base64 format.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>utm</td>\n<td>The source, campaign, medium, and extra UTM parameters of your email campaign. The value for each can have 40 characters max.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>Every request made to the request endpoint requires a request body formatted in JSON and containing your email's content as variations.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<h3 id=\"sample-body\">Sample Body</h3>\n<p>Below is a sample body for a <strong>Single</strong> email campaign.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"my single campaign\",\n  \"tags\": [\n    \"v\",\n    \"tag1 789dfs44\"\n  ],\n  \"type\": \"single\",\n  \"variations\": [\n    {\n      \"subject\": \"Hello {{name}} {{email}} {{custom3|fallback}}\",\n      \"pre_header\": \"apre {{surname|there}}\",\n      \"html\": \"PHRkIGNsYXNzPSJlc2Qtc3RydWN0dXJlIGVzLXAyMCIgYWxpZ249ImxlZnQiIGJnY29sb3I9IiM5MTk0OUYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5NDlGOyI+DQogICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtY29udGFpbmVyLWZyYW1lIiB3aWR0aD0iNTYwIiB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiBjbGFzcz0iZXNkLWJsb2NrLWltYWdlIGVzLXAxNSIgc3R5bGU9ImZvbnQtc2l6ZTogMHB4OyI+PGEgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgY2xhc3M9ImFkYXB0LWltZyIgc3JjPSJodHRwczovL2ltYWdlLnVzZWluc2lkZXIuY29tL2VtYWlsLXRlbXBsYXRlL2xvZ28ucG5nIiBhbHQgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgaGVpZ2h0PSIzMCI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIHN0eWxlPSJjb2xvcjogI0ZGRkZGRjsgZm9udC1zaXplOiAzMHB4OyI+PHN0cm9uZz5UaW1lIGZvciBncmVhdCBlbWFpbCBkZXNpZ248L3N0cm9uZz48L2gyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay10ZXh0IGVzLW0tdHh0LWMgZXMtcDEwdCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6ICNGRkZGRkY7Ij5UaGlzIGlzIGEgbmV3IHRleHQgYmxvY2sgcmVhZHkgZm9yIHlvdXIgbWVzc2FnZSBjb250ZW50LjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICA8L3RhYmxlPg0KPC90ZD4=\",\n      \"utm\": {\n        \"source\": \"thisis_source\",\n        \"campaign\": \"thisis_campaign\",\n        \"medium\": \"thisis_medium\",\n        \"extra\": \"thisis_extra\"\n      }\n    }\n  ]\n}\n\n</code></pre>\n<p>Below is a sample body for an <strong>Experiment (A/B)</strong> campaign.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Campaign Name\",\n  \"tags\": [\n    \"campaign-tag\"\n  ],\n  \"type\": \"experiment\",\n  \"variations\": [\n    {\n      \"subject\": \"Variation A subject {{custom}}\",\n      \"html\": \"PHA+TXkgZW1haWwgYm9keSBBPC9wPg==\",\n      \"pre_header\": \"Variation A preheader\"\n    },\n    {\n      \"subject\": \"Variation B subject {{custom}}\",\n      \"html\": \"PHA+TXkgZW1haWwgYm9keSBBPC9wPg==\",\n      \"pre_header\": \"Variation B preheader\",\n      \"utm\": {\n        \"source\": \"my_source\",\n        \"campaign\": \"my_campaign\",\n        \"medium\": \"email\",\n        \"extra\": \"value\"\n      }\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"201-created-success-message\">201 Created Success Message</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"message\":\"created\",\n   \"id\":\"builderID\"\n}\n\n</code></pre>\n<h4 id=\"400-validation-error-message\">400 Validation Error Message</h4>\n<p>The following response returns if the request is not validated.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"error\":\"$message\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized-error-message\">401 Unauthorized Error Message</h4>\n<p>The following response returns if the request is not authorized.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"error\":\"unathorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only new email campaigns can be created via this API. No data can be retrieved.</li>\n<li>The <strong>API Key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>The rate limit is <strong>1 request per second</strong>. Each request might take approximately 1 second.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["content","v1","campaign","create"],"host":["mail","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"b793cc5e-8aca-4cdb-bf08-a60245a80b22","name":"Create single email campaign","originalRequest":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"My single API campaign\",\n    \"tags\": [\n        \"mytag\"\n    ],\n    \"type\": \"single\",\n    \"variations\": [\n        {\n            \"subject\": \"Hello {{name|dear customer}}\",\n            \"pre_header\": \"This is my preheader.\",\n            \"html\": \"PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWw+DQoNCjxoZWFkPg0KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4NCiAgICA8bWV0YSBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSIgbmFtZT0idmlld3BvcnQiPg0KICAgIDxtZXRhIG5hbWU9IngtYXBwbGUtZGlzYWJsZS1tZXNzYWdlLXJlZm9ybWF0dGluZyI+DQogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4NCiAgICA8bWV0YSBjb250ZW50PSJ0ZWxlcGhvbmU9bm8iIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iPg0KICAgIDx0aXRsZT48L3RpdGxlPg0KICAgIDwhLS1baWYgKG1zbyAxNildPiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiBhe3RleHQtZGVjb3JhdGlvbjogbm9uZTt9PC9zdHlsZT48IVtlbmRpZl0tLT4NCiAgICA8IS0tW2lmIGd0ZSBtc28gOV0+PHN0eWxlPnN1cCB7IGZvbnQtc2l6ZTogMTAwJSAhaW1wb3J0YW50OyB9PC9zdHlsZT48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCg0KPGJvZHk+DQogICAgPGRpdiBjbGFzcz0iZXMtd3JhcHBlci1jb2xvciI+DQogICAgICAgIDwhLS1baWYgZ3RlIG1zbyA5XT4NCgkJCTx2OmJhY2tncm91bmQgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIGZpbGw9InQiPg0KCQkJCTx2OmZpbGwgdHlwZT0idGlsZSIgY29sb3I9IiNmN2Y3ZjciPjwvdjpmaWxsPg0KCQkJPC92OmJhY2tncm91bmQ+DQoJCTwhW2VuZGlmXS0tPg0KICAgICAgICA8dGFibGUgY2xhc3M9ImVzLXdyYXBwZXIiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtZW1haWwtcGFkZGluZ3MiIHZhbGlnbj0idG9wIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJlcy1oZWFkZXIgZXNkLWhlYWRlci1wb3BvdmVyIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXMtYWRhcHRpdmUgZXNkLXN0cmlwZSIgYWxpZ249ImNlbnRlciIgZXNkLWN1c3RvbS1ibG9jay1pZD0iODg1OTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZXMtaGVhZGVyLWJvZHkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q1Y2EzOyIgd2lkdGg9IjYwMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBiZ2NvbG9yPSIjM2Q1Y2EzIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLXN0cnVjdHVyZSBlcy1wMjB0IGVzLXAyMGIgZXMtcDIwciBlcy1wMjBsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogIzNkNWNhMzsiIGJnY29sb3I9IiMzZDVjYTMiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLVtpZiBtc29dPjx0YWJsZSB3aWR0aD0iNTYwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPjx0cj48dGQgd2lkdGg9IjI3MCIgdmFsaWduPSJ0b3AiPjwhW2VuZGlmXS0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImVzLWxlZnQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlcy1tLXAyMGIgZXNkLWNvbnRhaW5lci1mcmFtZSIgd2lkdGg9IjI3MCIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtYmxvY2staW1hZ2UgZXMtbS1wMGwgZXMtbS10eHQtYyIgYWxpZ249ImxlZnQiIHN0eWxlPSJmb250LXNpemU6MCI+PGEgaHJlZj0iIyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL3Rsci5zdHJpcG9jZG4uZW1haWwvY29udGVudC9ndWlkcy9DQUJJTkVUXzY2NDk4ZWEwNzZiNWQwMGM2Zjk1NTMwNTVhY2RiMzdhL2ltYWdlcy8xMjA1MTUyNzU5MDY5MTg0MS5wbmciIGFsdCBzdHlsZT0iZGlzcGxheTogYmxvY2s7IiB3aWR0aD0iMTgzIj48L2E+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJlcy1yaWdodCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBhbGlnbj0icmlnaHQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtY29udGFpbmVyLWZyYW1lIiB3aWR0aD0iMjcwIiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay1idXR0b24gZXMtcDEwdCBlcy1tLXR4dC1jIiBhbGlnbj0icmlnaHQiPjxzcGFuIGNsYXNzPSJlcy1idXR0b24tYm9yZGVyIj48YSBocmVmPSIjLyIgY2xhc3M9ImVzLWJ1dHRvbiIgdGFyZ2V0PSJfYmxhbmsiPlRyeSBmcmVlIGNsYXNzPC9hPjwvc3Bhbj48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJlcy1jb250ZW50IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2Qtc3RyaXBlIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImVzLWNvbnRlbnQtYm9keSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IiB3aWR0aD0iNjAwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJnY29sb3I9IiNmYWZhZmEiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2Qtc3RydWN0dXJlIGVzLXAyMHQgZXMtcDQwYiBlcy1wMjByIGVzLXAyMGwiIHN0eWxlPSJiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1jb250YWluZXItZnJhbWUiIHdpZHRoPSI1NjAiIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDIwdCBlcy1wMTBiIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDEgc3R5bGU9ImNvbG9yOiAjMzMzMzMzOyBmb250LWZhbWlseTogbG9yYSwgZ2VvcmdpYSwgJ3RpbWVzIG5ldyByb21hbicsIHNlcmlmOyBmb250LXNpemU6IDUwcHg7Ij48ZW0+V2VsY29tZTwvZW0+PC9oMT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDEwdCBlcy1wMTBiIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgc3R5bGU9ImNvbG9yOiAjMzMzMzMzOyI+V2UncmUgaGFwcHkgdG8gaGF2ZSB5b3Ugd2l0aCB1cy48L2g0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtYmxvY2stdGV4dCBlcy1wMjBiIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5XZSB0ZWFjaCBjbGFzc2VzIGluIGV2ZXJ5dGhpbmcgZnJvbSBidXNpbmVzcyB0byBtZWRpY2luZS48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYS48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJlcy1jb250ZW50IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2Qtc3RyaXBlIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImVzLWNvbnRlbnQtYm9keSIgd2lkdGg9IjYwMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBiZ2NvbG9yPSIjZmZmZmZmIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLXN0cnVjdHVyZSBlcy1wMzB0IGVzLXA1YiBlcy1wMjByIGVzLXAyMGwiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyIgYmdjb2xvcj0iI2ZmZmZmZiIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1jb250YWluZXItZnJhbWUiIHdpZHRoPSI1NjAiIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0iY29sb3I6ICMzZDVjYTM7Ij5IZXJlJ3MgaG93IHRvIGdldCBzdGFydGVkOjwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLXN0cnVjdHVyZSBlcy1wMjB0IGVzLXAyMHIgZXMtcDIwbCIgZXNkLWN1c3RvbS1ibG9jay1pZD0iMTA2MTUiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJlcy1sZWZ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWNvbnRhaW5lci1mcmFtZSBlcy1tLXAyMGIiIGVzZC1jdXN0b20tYmxvY2staWQ9IjEwNjE2IiB3aWR0aD0iMjU1IiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay1pbWFnZSBlcy1wMTV0IGVzLXA1YiIgYWxpZ249ImNlbnRlciIgc3R5bGU9ImZvbnQtc2l6ZTowIj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iIyI+PGltZyBzcmM9Imh0dHBzOi8vdGxyLnN0cmlwb2Nkbi5lbWFpbC9jb250ZW50L2d1aWRzL0NBQklORVRfMTcyMjM2MTMwMTgwYjdhNGQ1ZTFkOTk4NzM2OWNhNjEvaW1hZ2VzLzQwMjgxNTI3Njc1NzUzNjYzLnBuZyIgYWx0PSJGaWxsIG91dCBhIHByb2ZpbGUiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiIHRpdGxlPSJGaWxsIG91dCBhIHByb2ZpbGUiIHdpZHRoPSIzOSI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDV0IGVzLXA1YiIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IHN0eWxlPSJjb2xvcjogIzMzMzMzMzsiPkZpbGwgb3V0IGEgcHJvZmlsZTwvaDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay10ZXh0IiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0icHJvZHVjdC1kZXNjcmlwdGlvbiI+UXVpcyBhdXRlbSB2ZWwgZXVtIGl1cmUgcmVwcmVoZW5kZXJpdCBxdWkgaW4gZWEgdm9sdXB0YXRlIHZlbGl0IGVzc2UgcXVhbSBuaWhpbCBtb2xlc3RpYWUgY29uc2VxdWF0dXIuPC9zcGFuPjxicj48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay10ZXh0IGVzLXA1dCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiMiPlJlYWQgbW9yZSDCuzwvYT48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzLWhpZGRlbiIgd2lkdGg9IjEwIj48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImVzLWxlZnQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iZXMtaGlkZGVuIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtY29udGFpbmVyLWZyYW1lIGVzLW0tcDIwYiIgd2lkdGg9IjMwIiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay1pbWFnZSIgYWxpZ249ImNlbnRlciIgc3R5bGU9ImZvbnQtc2l6ZTowIj48YSB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vdGxyLnN0cmlwb2Nkbi5lbWFpbC9jb250ZW50L2d1aWRzL0NBQklORVRfMTcyMjM2MTMwMTgwYjdhNGQ1ZTFkOTk4NzM2OWNhNjEvaW1hZ2VzLzQ3NTYxNTI3NjcyMzM1NTcyLnBuZyIgYWx0IHN0eWxlPSJkaXNwbGF5OiBibG9jazsiIHdpZHRoPSIzMCI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZXMtcmlnaHQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYWxpZ249InJpZ2h0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWNvbnRhaW5lci1mcmFtZSBlcy1tLXAyMGIiIHdpZHRoPSIyNTUiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLWltYWdlIGVzLXAxNXQgZXMtcDViIiBhbGlnbj0iY2VudGVyIiBzdHlsZT0iZm9udC1zaXplOjAiPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIjIj48aW1nIHNyYz0iaHR0cHM6Ly90bHIuc3RyaXBvY2RuLmVtYWlsL2NvbnRlbnQvZ3VpZHMvQ0FCSU5FVF8xNzIyMzYxMzAxODBiN2E0ZDVlMWQ5OTg3MzY5Y2E2MS9pbWFnZXMvNTM3MDE1Mjc2NzU2ODM5MTIucG5nIiBhbHQ9IlVzZSBwbGFubmluZyB0b29sIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IiB0aXRsZT0iVXNlIHBsYW5uaW5nIHRvb2wiIHdpZHRoPSIzOSI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDV0IGVzLXA1YiIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IHN0eWxlPSJjb2xvcjogIzMzMzMzMzsiPlVzZSBwbGFubmluZyB0b29sPC9oND4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJwcm9kdWN0LWRlc2NyaXB0aW9uIj5EdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci48L3NwYW4+PGJyPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDV0IiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iIyI+UmVhZCBtb3JlIMK7PC9hPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2Qtc3RydWN0dXJlIGVzLXAyMHIgZXMtcDIwbCIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1jb250YWluZXItZnJhbWUiIHdpZHRoPSI1NjAiIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXNwYWNlciIgYWxpZ249ImNlbnRlciIgc3R5bGU9ImZvbnQtc2l6ZTowIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY2NjYzsgYmFja2dyb3VuZDpub25lOyBoZWlnaHQ6MXB4OyB3aWR0aDoxMDAlOyBtYXJnaW46MHB4IDBweCAwcHggMHB4OyI+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2Qtc3RydWN0dXJlIGVzLXAyMGIgZXMtcDIwciBlcy1wMjBsIiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZXMtbGVmdCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1jb250YWluZXItZnJhbWUgZXMtbS1wMjBiIiB3aWR0aD0iMjU1IiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay1pbWFnZSBlcy1wMjV0IGVzLXA1YiIgYWxpZ249ImNlbnRlciIgc3R5bGU9ImZvbnQtc2l6ZTowIj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iIyI+PGltZyBzcmM9Imh0dHBzOi8vdGxyLnN0cmlwb2Nkbi5lbWFpbC9jb250ZW50L2d1aWRzL0NBQklORVRfMTcyMjM2MTMwMTgwYjdhNGQ1ZTFkOTk4NzM2OWNhNjEvaW1hZ2VzLzkzOTgxNTI3Njc1NzU0ODAwLnBuZyIgYWx0PSJDaGFuZ2Ugc2V0dGluZ3MiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiIHRpdGxlPSJDaGFuZ2Ugc2V0dGluZ3MiIHdpZHRoPSIzOSI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDV0IGVzLXA1YiIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IHN0eWxlPSJjb2xvcjogIzMzMzMzMzsiPkNoYW5nZSBzZXR0aW5nczwvaDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay10ZXh0IiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0icHJvZHVjdC1kZXNjcmlwdGlvbiI+VW5rbm93biBwcmludGVyIHRvb2sgYSBnYWxsZXkgb2YgdHlwZSBhbmQgc2NyYW1ibGVkIGl0IHRvIG1ha2UgYSB0eXBlIHNwZWNpbWVuIGJvb2suPC9zcGFuPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDV0IiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iIyI+UmVhZCBtb3JlIMK7PC9hPjxicj48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzLWhpZGRlbiIgd2lkdGg9IjEwIj48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImVzLWxlZnQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iZXMtaGlkZGVuIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtY29udGFpbmVyLWZyYW1lIGVzLW0tcDIwYiIgd2lkdGg9IjMwIiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay1pbWFnZSIgYWxpZ249ImNlbnRlciIgc3R5bGU9ImZvbnQtc2l6ZTowIj48YSB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vdGxyLnN0cmlwb2Nkbi5lbWFpbC9jb250ZW50L2d1aWRzL0NBQklORVRfMTcyMjM2MTMwMTgwYjdhNGQ1ZTFkOTk4NzM2OWNhNjEvaW1hZ2VzLzQ3NTYxNTI3NjcyMzM1NTcyLnBuZyIgYWx0IHN0eWxlPSJkaXNwbGF5OiBibG9jazsiIHdpZHRoPSIzMCI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZXMtcmlnaHQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYWxpZ249InJpZ2h0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWNvbnRhaW5lci1mcmFtZSIgd2lkdGg9IjI1NSIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtYmxvY2staW1hZ2UgZXMtcDI1dCBlcy1wNWIiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJmb250LXNpemU6MCI+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiMiPjxpbWcgc3JjPSJodHRwczovL3Rsci5zdHJpcG9jZG4uZW1haWwvY29udGVudC9ndWlkcy9DQUJJTkVUXzE3MjIzNjEzMDE4MGI3YTRkNWUxZDk5ODczNjljYTYxL2ltYWdlcy8zMzA4MTUyNzY3NTc1Mzc4Ny5wbmciIGFsdD0iSW52aXRlIGZyaWVuZHMiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiIHRpdGxlPSJJbnZpdGUgZnJpZW5kcyIgd2lkdGg9IjM5Ij48L2E+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtYmxvY2stdGV4dCBlcy1wNXQgZXMtcDViIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgc3R5bGU9ImNvbG9yOiAjMzMzMzMzOyI+SW52aXRlIGZyaWVuZHM8L2g0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtYmxvY2stdGV4dCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9InByb2R1Y3QtZGVzY3JpcHRpb24iPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEuPC9zcGFuPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDV0IiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iIyI+UmVhZCBtb3JlIMK7PC9hPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2Qtc3RydWN0dXJlIGVzLXAxMHQgZXMtcDMwYiBlcy1wMjByIGVzLXAyMGwiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtY29udGFpbmVyLWZyYW1lIiB3aWR0aD0iNTYwIiB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay1idXR0b24iIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJlcy1idXR0b24tYm9yZGVyIj48YSBocmVmPSIjLyIgY2xhc3M9ImVzLWJ1dHRvbiIgdGFyZ2V0PSJfYmxhbmsiPkxldCdzIGdldCBzdGFydGVkIMK7PC9hPjwvc3Bhbj48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgY2xhc3M9ImVzLWNvbnRlbnQiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2Qtc3RyaXBlIiBhbGlnbj0iY2VudGVyIiBlc2QtY3VzdG9tLWJsb2NrLWlkPSI4ODU5MSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJlcy1jb250ZW50LWJvZHkiIHdpZHRoPSI2MDAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYmdjb2xvcj0iI2ZmZmZmZiIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1zdHJ1Y3R1cmUgZXMtcDE1dCBlcy1wMTViIGVzLXAxMHIgZXMtcDEwbCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmN2MwNTI7IiBiZ2NvbG9yPSIjZjdjMDUyIiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1baWYgbXNvXT48dGFibGUgd2lkdGg9IjU4MCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkIHdpZHRoPSIyMDAiIHZhbGlnbj0idG9wIj48IVtlbmRpZl0tLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJlcy1sZWZ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXMtbS1wMHIgZXMtbS1wMjBiIGVzZC1jb250YWluZXItZnJhbWUiIHdpZHRoPSIxODAiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtYmxvY2staW1hZ2UgZXMtcDViIiBhbGlnbj0iY2VudGVyIiBzdHlsZT0iZm9udC1zaXplOjAiPjxhIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly90bHIuc3RyaXBvY2RuLmVtYWlsL2NvbnRlbnQvZ3VpZHMvQ0FCSU5FVF82NjQ5OGVhMDc2YjVkMDBjNmY5NTUzMDU1YWNkYjM3YS9pbWFnZXMvMzk5MTE1Mjc1ODgyODgxNzEucG5nIiBhbHQgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjI0Ij48L2E+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtYmxvY2stdGV4dCBlcy1wNXIgZXMtcDVsIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMTZweDsiPjE1MTMgR2FyZmllbGQgUGFyayBBdmUsIExlYmFub24sIE9IIDQ1MDM2PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlcy1oaWRkZW4iIHdpZHRoPSIyMCI+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJlcy1sZWZ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXMtbS1wMjBiIGVzZC1jb250YWluZXItZnJhbWUiIHdpZHRoPSIxODAiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtYmxvY2staW1hZ2UgZXMtcDViIiBhbGlnbj0iY2VudGVyIiBzdHlsZT0iZm9udC1zaXplOjAiPjxhIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly90bHIuc3RyaXBvY2RuLmVtYWlsL2NvbnRlbnQvZ3VpZHMvQ0FCSU5FVF82NjQ5OGVhMDc2YjVkMDBjNmY5NTUzMDU1YWNkYjM3YS9pbWFnZXMvMzU2ODE1Mjc1ODgzNTY0OTIucG5nIiBhbHQgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjI0Ij48L2E+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzZGV2LWxpbmtzLWNvbG9yPSIjZmZmZmZmIiBjbGFzcz0iZXNkLWJsb2NrLXRleHQiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjogI2ZmZmZmZjsiPjxhIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMThweDsiIGhyZWY9Im1haWx0bzp5b3VyQG1haWwuY29tIj55b3VyQG1haWwuY29tPC9hPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZXMtcmlnaHQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYWxpZ249InJpZ2h0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWNvbnRhaW5lci1mcmFtZSIgd2lkdGg9IjE4MCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay1pbWFnZSBlcy1wNWIiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJmb250LXNpemU6MCI+PGEgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL3Rsci5zdHJpcG9jZG4uZW1haWwvY29udGVudC9ndWlkcy9DQUJJTkVUXzY2NDk4ZWEwNzZiNWQwMGM2Zjk1NTMwNTVhY2RiMzdhL2ltYWdlcy81MDY4MTUyNzU4ODM1NzYxNi5wbmciIGFsdCBzdHlsZT0iZGlzcGxheTogYmxvY2s7IiB3aWR0aD0iMjQiPjwvYT48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay10ZXh0IiBhbGlnbj0iY2VudGVyIiBlc2QtbGlua3MtY29sb3I9IiNmZmZmZmYiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxNnB4OyI+PGEgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJmb250LXNpemU6IDE2cHg7IGNvbG9yOiAjZmZmZmZmOyIgaHJlZj0idGVsOjEyMzQ1Njc4OSI+MTIzNDU2Nzg5PC9hPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0iZXMtZm9vdGVyIGVzZC1mb290ZXItcG9wb3ZlciIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1zdHJpcGUiIGFsaWduPSJjZW50ZXIiIGVzZC1jdXN0b20tYmxvY2staWQ9Ijg4NTkyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImVzLWZvb3Rlci1ib2R5IiB3aWR0aD0iNjAwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2Qtc3RydWN0dXJlIGVzLXAyMHQgZXMtcDEwciBlcy1wMTBsIiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1baWYgbXNvXT48dGFibGUgd2lkdGg9IjU4MCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkIHdpZHRoPSIxOTAiIHZhbGlnbj0idG9wIj48IVtlbmRpZl0tLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJlcy1sZWZ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXMtbS1wMHIgZXMtbS1wMjBiIGVzZC1jb250YWluZXItZnJhbWUiIHdpZHRoPSIxOTAiIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXRleHQgZXMtcDV0IGVzLW0tdHh0LWMiIGVzZGV2LWxpbmtzLWNvbG9yPSIjNjY2NjY2IiBhbGlnbj0icmlnaHQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBzdHlsZT0iY29sb3I6ICM2NjY2NjY7Ij5Gb2xsb3cgdXM6PC9oND4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGFsaWduPSJyaWdodCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1jb250YWluZXItZnJhbWUiIHdpZHRoPSIzNzAiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLWJsb2NrLXNvY2lhbCBlcy1tLXR4dC1jIiBhbGlnbj0ibGVmdCIgc3R5bGU9ImZvbnQtc2l6ZTowIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImVzLXRhYmxlLW5vdC1hZGFwdCBlcy1zb2NpYWwiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzLXAxNXIiIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj48aW1nIHRpdGxlPSJGYWNlYm9vayIgc3JjPSJodHRwczovL3Rsci5zdHJpcG9jZG4uZW1haWwvY29udGVudC9hc3NldHMvaW1nL3NvY2lhbC1pY29ucy9yb3VuZGVkLWdyYXkvZmFjZWJvb2stcm91bmRlZC1ncmF5LnBuZyIgYWx0PSJGYiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2E+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzLXAxNXIiIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj48aW1nIHRpdGxlPSJUd2l0dGVyIiBzcmM9Imh0dHBzOi8vdGxyLnN0cmlwb2Nkbi5lbWFpbC9jb250ZW50L2Fzc2V0cy9pbWcvc29jaWFsLWljb25zL3JvdW5kZWQtZ3JheS90d2l0dGVyLXJvdW5kZWQtZ3JheS5wbmciIGFsdD0iVHciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlcy1wMTVyIiB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciI+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY+PGltZyB0aXRsZT0iSW5zdGFncmFtIiBzcmM9Imh0dHBzOi8vdGxyLnN0cmlwb2Nkbi5lbWFpbC9jb250ZW50L2Fzc2V0cy9pbWcvc29jaWFsLWljb25zL3JvdW5kZWQtZ3JheS9pbnN0YWdyYW0tcm91bmRlZC1ncmF5LnBuZyIgYWx0PSJJbnN0IiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvYT48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXMtcDE1ciIgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPjxpbWcgdGl0bGU9IllvdXR1YmUiIHNyYz0iaHR0cHM6Ly90bHIuc3RyaXBvY2RuLmVtYWlsL2NvbnRlbnQvYXNzZXRzL2ltZy9zb2NpYWwtaWNvbnMvcm91bmRlZC1ncmF5L3lvdXR1YmUtcm91bmRlZC1ncmF5LnBuZyIgYWx0PSJZdCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2E+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzLXAxNXIiIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj48aW1nIHRpdGxlPSJMaW5rZWRpbiIgc3JjPSJodHRwczovL3Rsci5zdHJpcG9jZG4uZW1haWwvY29udGVudC9hc3NldHMvaW1nL3NvY2lhbC1pY29ucy9yb3VuZGVkLWdyYXkvbGlua2VkaW4tcm91bmRlZC1ncmF5LnBuZyIgYWx0PSJJbiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2E+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzLXAxMHIiIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj48aW1nIHRpdGxlPSJQaW50ZXJlc3QiIHNyYz0iaHR0cHM6Ly90bHIuc3RyaXBvY2RuLmVtYWlsL2NvbnRlbnQvYXNzZXRzL2ltZy9zb2NpYWwtaWNvbnMvcm91bmRlZC1ncmF5L3BpbnRlcmVzdC1yb3VuZGVkLWdyYXkucG5nIiBhbHQ9IlAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZXNkLXN0cnVjdHVyZSBlcy1wNXQgZXMtcDEwYiBlcy1wMTByIGVzLXAxMGwiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJlc2QtY29udGFpbmVyLWZyYW1lIiB3aWR0aD0iNTgwIiB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImVzZC1ibG9jay10ZXh0IGVzLXA1dCBlcy1wMTBiIiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgc3R5bGU9ImNvbG9yOiAjNjY2NjY2OyI+Q29udGFjdCB1czogPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9InRlbDoxMjM0NTY3ODkiPjEyMzQ1Njc4OTwvYT4gfCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0ibWFpbHRvOnlvdXJAbWFpbC5jb20iPnlvdXJAbWFpbC5jb208L2E+PC9oNT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiBjbGFzcz0iZXNkLWJsb2NrLXRleHQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoaXMgZGFpbHkgbmV3c2xldHRlciB3YXMgc2VudCB0byA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0ibWFpbHRvOmluZm9AbmFtZS5jb20iPmluZm9AZWR1LmNvbTwvYT4gZnJvbSBjb21wYW55IG5hbWUgYmVjYXVzZSB5b3Ugc3Vic2NyaWJlZC48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SWYgeW91IHdvdWxkIG5vdCBsaWtlIHRvIHJlY2VpdmUgdGhpcyBlbWFpbCA8YSB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InVuc3Vic2NyaWJlIiBocmVmPSI8JXVuc3ViJT4iPnVuc3Vic2NyaWJlIGhlcmU8L2E+LjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgIDwvdGFibGU+DQogICAgPC9kaXY+DQo8L2JvZHk+DQoNCjwvaHRtbD4=\",\n            \"utm\": {\n                \"source\": \"thisissource\",\n                \"campaign\": \"thisiscampaign\",\n                \"medium\": \"thisismedium\",\n                \"extra\": \"thisisextra\"\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://mail.useinsider.com/content/v1/campaign/create"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 25 May 2023 18:36:52 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-content-type-options","value":"nosniff","enabled":true},{"key":"x-frame-options","value":"SAMEORIGIN","enabled":true},{"key":"x-xss-protection","value":"1; mode=block","enabled":true},{"key":"x-envoy-upstream-service-time","value":"1249","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=aakKG3TLSWUZUj3Gw2lpNfNL.8bIx0_ijR0pj7L6cp4-1685039812-0-ATTEBrZ+G4YRnTutHuEIbDXDz6cL0ZLwSt2VHPPVSQ79UO4gyQjBrcp1PvYBWOx3gjQxcHK1EyX3lNvTkcs+a3w=; path=/; expires=Thu, 25-May-23 19:06:52 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7ccfe2e21af3172d-IAD","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1086764,\n    \"message\": \"created\"\n}"}],"_postman_id":"bb5da9a3-0d88-4ffd-94d3-97a3f25fc84c"}],"id":"c309c175-51ba-45f9-b73c-2ce2a6167cf5","description":"<p>With these APIs, you can create single or experiment (A/B) email campaigns from your back-end, and trigger transacational emails based on a specific user action.</p>\n","_postman_id":"c309c175-51ba-45f9-b73c-2ce2a6167cf5"},{"name":"Web Push APIs","item":[{"name":"Create single web pushes","id":"5a479f5c-aa1e-4439-b42c-e775cb7f35a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer","description":"<p>This key is required to authorize your request. Navigate to Web Push &gt; Settings &gt; Integration Settings to get your API token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"partner_id\": \"100XXXXX\",\n  \"title\": \"Title of campaign\",\n  \"language\": \"tr_TR\",\n  \"is_all\": false\n}"},"url":"https://web-push.api.useinsider.com/v1/single","description":"<p>Insider's web push API allows you to send single web push notifications from your own back-end without using Insider's InOne panel.</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#web-push-integration-settings\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>This header specifies the media type of the resource.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Each request body requires a partner ID and a title. </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partner_id</td>\n<td>This is your partner identification number, available from InOne Settings &gt; Account Preferences.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Every request creates a push notification campaign on InOne with the push type <strong>Single Push</strong>. This is the title of the campaign. It cannot be more than 100 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>language</td>\n<td>The language of the campaign, e.g., en_US. If you want to send the push to all languages, you can write “all_ALL”.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>is_all</td>\n<td>It helps you set when you want to send push notifications to all subscribers or segmented subscribers.  <br />If you type <em>true</em>, it will be sent only once, and you can open the campaign in the InOne Panel. If you type <em>false</em>, it will be sent multiple times, but you cannot open the campaign in the InOne Panel.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the <strong>authorization</strong> value with your own API key.</p>\n</li>\n<li><p>To add your partner ID in <strong>partner_id</strong>.</p>\n</li>\n<li><p>To add your campaign name in <strong>title</strong>.</p>\n</li>\n</ul>\n<p>When you send the request, you will get your <strong>campaign_id</strong> as a response. You will use this <strong>campaign_id</strong> when launching the campaign.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://web-push.api.useinsider.com/v1/single' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data-raw '{\n  \"partner_id\": \"100XXXXX\",\n  \"title\": \"Title of campaign\",\n  \"language\": \"tr_TR\",\n  \"is_all\": false\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"201-created\">201 CREATED</h4>\n<p>You can see this kind of response when you successfully created your campaign.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"campaign_id\": 25696\n}\n\n</code></pre>\n<p>You can also see your campaign in your InOne panel on the Web Push listing page as in Draft status, indicating that the campaign has been created but not launched yet.</p>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n\"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<h4 id=\"424-failed-dependency\">424 FAILED DEPENDENCY</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"SERVICE:-\"\n}\n\n</code></pre>\n<h4 id=\"error-codes\">ERROR CODES</h4>\n<ul>\n<li><p>400: Bad request</p>\n</li>\n<li><p>401: Unauthorized request</p>\n</li>\n<li><p>424 Failed Dependency</p>\n</li>\n<li><p>429 Request limit exceeded</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All create requests must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is 30 requests per minute second.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","single"],"host":["web-push","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"5a479f5c-aa1e-4439-b42c-e775cb7f35a9"},{"name":"Launch single web pushes v1","id":"a5d1c158-72a0-4d88-8e39-b6e67f7ca869","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"partner_id\": \"100000001\",\n  \"title\": \"title of push\",\n  \"description\": \"description of push\",\n  \"image\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"banner\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"link\": \"https://image.useinsider.com\",\n  \"include_unengage\": true,\n  \"ttl\": \"1000\"\n}"},"url":"https://web-push.api.useinsider.com/v1/single/campaign_id","description":"<p>Insider's web push API allows you to launch single web push notifications from your own back-end without using Insider's InOne panel.</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#web-push-integration-settings\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>This header specifies the media type of the resource.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Each request body requires a partner ID and a title. </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partner_id</td>\n<td>This is your partner identification number, available from InOne Settings &gt; Account Preferences.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Every request creates a push notification campaign on InOne with the push type <strong>Single Push</strong>. This is the title of the push content. Itcannot be more than 100 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>description</td>\n<td>This is the body of your push notification. It cannot be more than 255 characters. If it is a rich push that has a banner, it is limited to 30 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image</td>\n<td>This is the push notification icon. Only HTTPS protocols are accepted. If not provided, the default icon is used instead.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>banner</td>\n<td>This is the rich push notification image. Only HTTPS protocols are accepted.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>link</td>\n<td>The link of the Web push message.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>include_unengaged</td>\n<td>Enables you to decide whether the bulk push should target unengaged tokens. When not sent in the payload, unengaged users are automatically excluded.</td>\n<td>Boolean (true/false)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ttl</td>\n<td>Short for time to live: This is the maximum time the system will try to send a push notification to an offline or temporarily unavailable user. TTL is limited to 240 hours.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>target</td>\n<td>Targeting options for the campaign (segmenting).</td>\n<td>Object</td>\n<td>Yes if <em>is_all: false</em></td>\n</tr>\n<tr>\n<td>attribute</td>\n<td>The attribute used for targeting, e.g. \"d_wp_browser\".</td>\n<td>String</td>\n<td>Yes if target is used.</td>\n</tr>\n<tr>\n<td>values</td>\n<td>An array of values to target, e.g. [\"Edg\"]</td>\n<td>Array</td>\n<td>Yes if target is used.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the <strong>authorization</strong> value with your own API key.</p>\n</li>\n<li><p>To add your partner ID in <strong>partner_id</strong>.</p>\n</li>\n<li><p>To add your campaign name in <strong>title</strong>.</p>\n</li>\n</ul>\n<p>When you send the request to <a href=\"https://academy.useinsider.com/v1/docs/create-single-web-pushes\">create</a> it, you will get your <strong>campaign_id</strong> as a response.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>Below you can see a sample request without segments; <em>is_all: true</em>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://web-push.api.useinsider.com/v1/single/campaign_id' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data-raw '{\n  \"partner_id\": \"100000001\",\n  \"title\": \"title of push\",\n  \"description\": \"description of push\",\n  \"image\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"banner\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"link\": \"https://image.useinsider.com\",\n  \"include_unengage\": true,\n  \"ttl\": \"1000\"\n}'\n\n</code></pre>\n<p>Below you can see a sample request with segments; <em>is_all: false</em>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://web-push.api.useinsider.com/v1/single/campaign_id' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data-raw '{\n  \"partner_id\": \"10000001\",\n  \"title\": \"title of push\",\n  \"description\": \"description of push\",\n  \"image\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"banner\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"link\": \"https://image.useinsider.com\",\n  \"include_unengage\": true,\n  \"ttl\": \"1000\",\n  \"language\": \"en_US\",\n  \"target\": {\n    \"attribute\": \"d_wp_browser\",\n    \"values\": [\"Edg\"]\n  }\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>You can see this kind of response when you successfully launched your campaign.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"campaign_id\": 1697300275\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n\"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<h4 id=\"424-failed-dependency\">424 FAILED DEPENDENCY</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"SERVICE:-\"\n}\n\n</code></pre>\n<h4 id=\"error-codes\">ERROR CODES</h4>\n<ul>\n<li><p>400: Bad request</p>\n</li>\n<li><p>401: Unauthorized request</p>\n</li>\n<li><p>424 Failed Dependency</p>\n</li>\n<li><p>429 Request limit exceeded</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is 30 requests per minute second.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","single","campaign_id"],"host":["web-push","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"a5d1c158-72a0-4d88-8e39-b6e67f7ca869"},{"name":"Launch single web pushes v2","id":"ca21aa71-8210-4b0e-b143-139624123037","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"partner_id\": \"100000001\",\n  \"title\": \"title of push\",\n  \"description\": \"description of push\",\n  \"image\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"banner\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"link\": \"https://image.useinsider.com\",\n  \"include_unengage\": true,\n  \"ttl\": \"1000\"\n}"},"url":"https://web-push.api.useinsider.com/v2/single/campaign_id","description":"<p>Insider's web push API allows you to launch single web push notifications from your own back-end without using Insider's InOne panel.</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#web-push-integration-settings\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>This header specifies the media type of the resource.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Each request body requires a partner ID and a title.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partner_id</td>\n<td>This is your partner identification number, available from InOne Settings &gt; Account Preferences.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Every request creates a push notification campaign on InOne with the push type <strong>Single Push</strong>. This is the title of the push content. Itcannot be more than 100 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>description</td>\n<td>This is the body of your push notification. It cannot be more than 255 characters. If it is a rich push that has a banner, it is limited to 30 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image</td>\n<td>This is the push notification icon. Only HTTPS protocols are accepted. If not provided, the default icon is used instead.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>banner</td>\n<td>This is the rich push notification image. Only HTTPS protocols are accepted.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>link</td>\n<td>The link of the Web push message.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>include_unengaged</td>\n<td>Enables you to decide whether the bulk push should target unengaged tokens. When not sent in the payload, unengaged users are automatically excluded.</td>\n<td>Boolean (true/false)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ttl</td>\n<td>Short for time to live: This is the maximum time the system will try to send a push notification to an offline or temporarily unavailable user. TTL is limited to 240 hours.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>target</td>\n<td>Targeting options for the campaign (segmenting).</td>\n<td>Object</td>\n<td>Yes if <em>is_all: false</em></td>\n</tr>\n<tr>\n<td>attribute</td>\n<td>The attribute used for targeting, e.g. \"d_wp_browser\".</td>\n<td>String</td>\n<td>Yes if target is used.</td>\n</tr>\n<tr>\n<td>values</td>\n<td>An array of values to target, e.g. [\"Edg\"]</td>\n<td>Array</td>\n<td>Yes if target is used.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li>To replace the <strong>authorization</strong> value with your own API key.</li>\n<li>To add your partner ID in <strong>partner_id</strong>.</li>\n<li>To add your campaign name in <strong>title</strong>.</li>\n</ul>\n<p>When you send the request to <a href=\"https://academy.useinsider.com/v1/docs/create-single-web-pushes\">create</a> it, you will get your <strong>campaign_id</strong> as a response.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>Below you can see a sample request without segments; <em>is_all: true</em>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://web-push.api.useinsider.com/v2/single/campaign_id' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data-raw '{\n  \"partner_id\": \"100000001\",\n  \"title\": \"title of push\",\n  \"description\": \"description of push\",\n  \"image\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"banner\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"link\": \"https://image.useinsider.com\",\n  \"include_unengage\": true,\n  \"ttl\": \"1000\"\n}'\n\n</code></pre>\n<p>Below you can see a sample request with segments; <em>is_all: false</em>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://web-push.api.useinsider.com/v2/single/campaign_id' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data-raw '{\n  \"partner_id\": \"10000001\",\n  \"title\": \"title of push\",\n  \"description\": \"description of push\",\n  \"image\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"banner\": \"https://image.useinsider.com/mywebsite/webPushDefaultImage/JpVu9aBXgTXmcrBkiZLB1512577074.jpeg\",\n  \"link\": \"https://image.useinsider.com\",\n  \"include_unengage\": true,\n  \"ttl\": \"1000\",\n  \"language\": \"en_US\",\n  \"target\": {\n    \"attribute\": \"d_wp_browser\",\n    \"values\": [\"Edg\"]\n  }\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>You can see this kind of response when you successfully launched your campaign.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"campaign_id\": 1697300275\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n\"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<h4 id=\"424-failed-dependency\">424 FAILED DEPENDENCY</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"SERVICE:-\"\n}\n\n</code></pre>\n<h4 id=\"error-codes\">ERROR CODES</h4>\n<ul>\n<li>400: Bad request</li>\n<li>401: Unauthorized request</li>\n<li>424 Failed Dependency</li>\n<li>429 Request limit exceeded</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li>All functions must be executed with an <strong>HTTPS POST</strong> request.</li>\n<li>The <strong>API key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>The rate limit is 6000 requests per minute second.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","single","campaign_id"],"host":["web-push","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ca21aa71-8210-4b0e-b143-139624123037"},{"name":"Delete single web pushes","id":"43d5382e-ff86-414f-8881-f2f4b189ff7a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"partner_id\": \"100000001\",\n}"},"url":"https://web-push.api.useinsider.com/v1/single/campaign_id","description":"<p>Insider's web push API allows you to delete single web push notifications from your own back-end without using Insider's InOne panel.</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#web-push-integration-settings\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>This header specifies the media type of the resource.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partner_id</td>\n<td>This is your partner identification number, available from InOne Settings &gt; Account Preferences.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the <strong>authorization</strong> value with your own API key.</p>\n</li>\n<li><p>To add your partner ID in <strong>partner_id</strong>.</p>\n</li>\n</ul>\n<p>When you send the request to <a href=\"https://academy.useinsider.com/v1/docs/create-single-web-pushes\">create</a> it, you will get your <strong>campaign_id</strong> as a response.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request DELETE 'https://web-push.api.useinsider.com/v1/single/campaign_id' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data-raw '{\n  \"partner_id\": \"100000001\",\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>You can see this kind of response when you successfully deleted your campaign.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"campaign_id\": 1697300275\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n\"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<h4 id=\"424-failed-dependency\">424 FAILED DEPENDENCY</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"SERVICE:-\"\n}\n\n</code></pre>\n<h4 id=\"error-codes\">ERROR CODES</h4>\n<ul>\n<li><p>400: Bad request</p>\n</li>\n<li><p>401: Unauthorized request</p>\n</li>\n<li><p>424 Failed Dependency</p>\n</li>\n<li><p>429 Request limit exceeded</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS DELETE</strong> request.</p>\n</li>\n<li><p>The <strong>API key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is 30 requests per minute second.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","single","campaign_id"],"host":["web-push","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"43d5382e-ff86-414f-8881-f2f4b189ff7a"}],"id":"a29fc27e-dbc7-4f07-942c-3f53588b7220","description":"<p>Insider's Web Push API allows you to send push notifications that are triggered from your own systems without using the Insider's panel to a single user or a specific set of users. The data is used from your own back-end including transactional data, flight information, stock fluctuations and more.</p>\n<p>With Web Push API, you can:</p>\n<ul>\n<li><p>Create Single Web Pushes</p>\n</li>\n<li><p>Launch Single Web Pushes</p>\n</li>\n<li><p>Delete Single Web Pushes</p>\n</li>\n</ul>\n","_postman_id":"a29fc27e-dbc7-4f07-942c-3f53588b7220"},{"name":"Mobile App APIs","item":[{"name":"Send bulk app pushes","id":"b32a30ce-721c-4a99-8c4a-ff277bb3d9b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\",\n    \"campaign_name\": \"Insider API Demo\",\n    \"segment_name\": \"Your segment name goes here\",\n    \"title\": \"Your push notification title goes here\",\n    \"content\": \"Your push content goes here.\",\n    \"deeplink\": {\n        \"your_deeplink_key\": \"value\",\n        \"your_another_deeplink_key\": \"value\"\n    },\n    \"notification_image\": \"https://your_image_url.jpg\",\n    \"android_sound\": \"Your custom sound name for Android goes here\",\n    \"ios_sound\": \"Your custom sound name for iOS goes here\",\n    \"test_push\": true,\n    \"override_global_freq_cap\": true,\n    \"advanced_push_items\": [\n        {\n            \"headline\": \"Title for the item 1\",\n            \"description\": \"Description for the item 1\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"deep_links\": {\n                \"your_deeplink_key\": \"value\"\n            }\n        },\n        {\n            \"headline\": \"Title for the item 2\",\n            \"description\": \"Description for the item 2\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"deep_links\": {\n                \"your_deeplink_key\": \"value\"\n            }\n        },\n        {\n            \"headline\": \"Title for the item 3\",\n            \"description\": \"Description for the item 3\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"deep_links\": {\n                \"your_deeplink_key\": \"value\"\n            }\n        }\n    ],\n    \"preferred_type\": \"carousel\"\n}"},"url":"https://mobile.useinsider.com/api/v1/push/bulk","description":"<p>Bulk Push API is a service that sends push notifications to a predefined segment over the web using predefined web services.</p>\n<p>You can reach the analytics of your bulk push notifications sent via this API through <strong>Reports</strong> &gt; <strong>Mobile App Analytics</strong> &gt; <strong>Push API Campaigns</strong> on Inone.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>The following are the body parameters you need to use in your request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>api_key</td>\n<td>Your API Key. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#mobile-app-integration-settings\">API Authentication Tokens</a> to get your API key.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>campaign_name</td>\n<td>Name of the push campaign.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>segment_name</td>\n<td>Name of the segment the push notification is sent to. It should match with the segments on the Mobile Panel.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Title of the push notification. For instance, it can be your App name.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>content</td>\n<td>Content of the push notification.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>deeplink</td>\n<td>Key/value pairs to be passed to the application in the push payload. The most common use of deep links is sending the user to the selected landing page when they open the push notification.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>notification_image</td>\n<td>URL of the image in the rich push notification. If <strong>advanced_push_items</strong> is in use, notification_image will not be displayed.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>android_sound</td>\n<td>Name of the custom sound file in your app to play a custom sound on Android devices.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ios_sound</td>\n<td>Name of the custom sound file in your app to play a custom sound on iOS devices.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>test_push</td>\n<td><strong>true</strong> will send the push notification only to the test devices.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>advanced_push_items</td>\n<td>Array of Advanced Push Items object.</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>preferred_type</td>\n<td>It is required only to send Advanced Pushes. <em>E.g. carousel, slider.</em></td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>override_global_freq_cap  <br /></td>\n<td><strong>true</strong> will override global frequency capping limit.  <br /></td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to send bulk app push notification. Before sending the request, make sure to replace the values in your request body.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"api_key\":\"Your API Key goes here\",\n   \"campaign_name\":\"Insider API Demo\",\n   \"segment_name\":\"All People\",\n   \"title\":\"Your push notification title goes here\",\n   \"content\":\"Your push content goes here.\",\n   \"deeplink\":{\n      \"your_deeplink_key\":\"value\",\n      \"your_another_deeplink_key\":\"value\"\n   },\n   \"notification_image\":\"https://your_image_url.jpg\",\n   \"android_sound\":\"Your custom sound name for Android goes here\",\n   \"ios_sound\":\"Your custom sound name for iOS goes here\",\n   \"test_push\":true,\n   \"override_global_freq_cap\":true,\n   \"advanced_push_items\":[\n      {\n         \"headline\":\"Title for the item 1\",\n         \"description\":\"Description for the item 1\",\n         \"image_url\":\"https://your_image_url.jpg\",\n         \"deep_links\":{\n            \"your_deeplink_key\":\"value\"\n         }\n      },\n      {\n         \"headline\":\"Title for the item 2\",\n         \"description\":\"Description for the item 2\",\n         \"image_url\":\"https://your_image_url.jpg\",\n         \"deep_links\":{\n            \"your_deeplink_key\":\"value\"\n         }\n      },\n      {\n         \"headline\":\"Title for the item 3\",\n         \"description\":\"Description for the item 3\",\n         \"image_url\":\"https://your_image_url.jpg\",\n         \"deep_links\":{\n            \"your_deeplink_key\":\"value\"\n         }\n      }\n   ],\n   \"preferred_type\":\"carousel\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-campaign-created-successfully\">200 Campaign Created Successfully</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"response\": \"Campaign Created.\"\n}\n\n</code></pre>\n<h4 id=\"400-invalid-api-key\">400 Invalid API Key</h4>\n<p>The following response returns if the API Key is invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"response\": \"No Partner Found With Api Key.\"\n}\n\n</code></pre>\n<h4 id=\"422-no-push-message-certificate\">422 No Push Message Certificate</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"response\": \"No Push Message Certificate is Provided.\"\n}\n</code></pre>\n<h4 id=\"fail-records-messages\">Fail Records Messages</h4>\n<p>The following are fail records that might return in the response.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Definition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Error Creating Campaign</td>\n<td>Some parameters are missing in the campaign. You should have all the required parameters in your request.</td>\n</tr>\n<tr>\n<td>No API Key Provided</td>\n<td>The API key is a required parameter. You should have the API Key in your request.</td>\n</tr>\n<tr>\n<td>No Title Provided</td>\n<td>Push notification title is a required parameter. You should add the push notification title to your request body.</td>\n</tr>\n<tr>\n<td>No Content Provided</td>\n<td>Push content is a required parameter. You should add the content to your request body.</td>\n</tr>\n<tr>\n<td>No Partner Found With API Key</td>\n<td>The API Key sent in the payload does not match the API key at Insider. You should get the correct API Key via Inone &gt; Settings &gt; Mobile App Settings &gt; Integration.</td>\n</tr>\n<tr>\n<td>Bad IP</td>\n<td>The IP the push payload is sent from is not whitelisted.</td>\n</tr>\n<tr>\n<td>No Segment Matched</td>\n<td>The segment name in the payload does not match any segments on Insider Dashboard.</td>\n</tr>\n<tr>\n<td>AdvancedPushItems should contain at least 3, max. 6 items.</td>\n<td>If <em>advanced_push_items</em> key is in use in the request body, it should contain 3-6 items.</td>\n</tr>\n<tr>\n<td>Preferred Type is Not Carousel or Slider</td>\n<td>If <em>preferred_type key</em> is in use in the request body, it can either be <em>carousel</em> or <em>slider</em>.</td>\n</tr>\n<tr>\n<td>Invalid Advanced Push Payload</td>\n<td>All the items for the Advanced Push Notification should have <em>headline, description, image URL</em> variables defined with image URLs using the HTTPS protocol.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>The <strong>API key</strong> should be provided in the request body. If the key is incorrect, no operation will be executed.</li>\n<li>Each payload can contain <strong>only one bulk push</strong> campaign.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","v1","push","bulk"],"host":["mobile","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"83f37a14-87e1-4eb7-9b8c-451398a10b3a","name":"Send bulk app push to a test device","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\",\n    \"campaign_name\": \"My bulk push campaign\",\n    \"segment_name\": \"App segment with attributes\",\n    \"title\": \"This is my push title\",\n    \"content\": \"This is my push content.\",\n    \"deeplink\": {\n        \"your_deeplink_key\": \"value\",\n        \"your_another_deeplink_key\": \"value\"\n    },\n    \"notification_image\": \"https://notificationimage.useinsider.com\",\n    \"test_push\": true,\n    \"override_global_freq_cap\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://mobile.useinsider.com/api/v1/push/bulk"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 12 May 2023 08:47:35 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"1184","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=fu0Fs2s1wRxgTBPupBePhoDVdkEBKhJ6MLlFWsokTzs-1683881255-0-Ac5fNA8lPVx0X80bzhj9jQ7ft4glnrZN8QQI3xBl9g5maYWnih6aHtTIv2q/YCyZjUk9/YFkwGCzj+yr71RM2pw=; path=/; expires=Fri, 12-May-23 09:17:35 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7c6165ccfef40811-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"response\": \"Test Push Send to Test Devices\"\n}"},{"id":"b6cbf462-ef30-43f0-9bb2-cb8cc332d3e6","name":"Send advanced bulk push to a segment","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\",\n    \"campaign_name\": \"My advanced bulk push\",\n    \"segment_name\": \"My segment for this app push\",\n    \"title\": \"This is my title\",\n    \"content\": \"This is my content.\",\n    \"deeplink\": {\n        \"your_deeplink_key1\": \"value1\",\n        \"your_another_deeplink_key2\": \"value2\"\n    },\n    \"notification_image\": \"https://useinsiderimage.jpg\",\n    \"advanced_push_items\": [\n        {\n            \"headline\": \"My headline 1\",\n            \"description\": \"My description 1\",\n            \"image_url\": \"https://useinsiderimageurl.jpg\",\n            \"deep_links\": {\n                \"your_deeplink_key\": \"value\"\n            }\n        },\n        {\n            \"headline\": \"My second headline\",\n            \"description\": \"My second description\",\n            \"image_url\": \"https://useinsiderimageurl2.jpg\",\n            \"deep_links\": {\n                \"your_deeplink_key\": \"value\"\n            }\n        },\n        {\n            \"headline\": \"My headline 3\",\n            \"description\": \"My description 3\",\n            \"image_url\": \"https://useinsiderimageurl3.jpg\",\n            \"deep_links\": {\n                \"your_deeplink_key\": \"value\"\n            }\n        }\n    ],\n    \"preferred_type\": \"carousel\"\n}","options":{"raw":{"language":"json"}}},"url":"https://mobile.useinsider.com/api/v1/push/bulk"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 12 May 2023 12:17:50 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"184","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=DFE5fqnoNn2JtnjB0QuiAbcIMpv0pES4CDDDZHPJ3PM-1683893870-0-AXNN9RRPoZ+fxFBh73tbm3B5NbxzxmEriW5KsKkpWUvqZnGwLF3VuUNVy7Ua2Ev/isNQUEFl2bzQlJqOIPjSvmU=; path=/; expires=Fri, 12-May-23 12:47:50 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7c6299d01f558275-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"response\": \"Campaign Created\"\n}"}],"_postman_id":"b32a30ce-721c-4a99-8c4a-ff277bb3d9b7"},{"name":"Send targeted app pushes","id":"d7f78aeb-9a0d-462d-9e90-5accdf844a2e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\",\n    \"report_attributes\": [\n        \"INSIDER.carrier\",\n        \"INSIDER.idfa\",\n        \"INSIDER.name\",\n        \"INSIDER.surname\",\n        \"INSIDER.gender\",\n        \"INSIDER.age\",\n        \"INSIDER.birthday\",\n        \"INSIDER.email\",\n        \"INSIDER.phone_number\",\n        \"INSIDER.language\",\n        \"INSIDER.email_optin\",\n        \"INSIDER.sms_optin\",\n        \"INSIDER.push_optin\",\n        \"INSIDER.location_optin\",\n        \"INSIDER.insider_id\",\n        \"INSIDER.environment\",\n        \"INSIDER.idfa\",\n        \"INSIDER.device_token\",\n        \"INSIDER.udid\",\n        \"INSIDER.model\",\n        \"INSIDER.carrier\",\n        \"INSIDER.app_version\",\n        \"INSIDER.os_version\",\n        \"INSIDER.screen_width\",\n        \"INSIDER.screen_height\",\n        \"INSIDER.platform\",\n        \"INSIDER.timezone\",\n        \"INSIDER.device_language\",\n        \"INSIDER.sdk_version\",\n        \"INSIDER.last_ip\",\n        \"INSIDER.package_name\",\n        \"INSIDER.push_enabled\",\n        \"INSIDER.location_enabled\"\n    ],\n    \"notifications\": [\n        {\n            \"identifiers\": {\n                \"INSIDER.email\": \"sample@useinsider.com\",\n                \"INSIDER.phone_number\": \"+65123456789\",\n                \"INSIDER.uuid\": \"1234567890\"\n            },\n            \"camp_id\": 1,\n            \"camp_name\": \"Your push notification campaign name goes here\",\n            \"title\": \"Your push notification title goes here\",\n            \"message\": \"Your push content goes here.\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"ttl\": 1,\n            \"check_optin\": true,\n            \"android\": {\n                \"thread-id\": 1,\n                \"sound\": \"sound_check\",\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            },\n            \"ios\": {\n                \"thread-id\": 1,\n                \"badge\": 1,\n                \"content-available\": false,\n                \"mutable-content\": true,\n                \"sound\": \"sound_check\",\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            }\n        }\n    ]\n}"},"url":"https://mobile.useinsider.com/api/v2/notification/user","description":"<p>You can use the Targeted Push API in various cases such as sending status update of an order from your e-commerce platform, or informing users of a sale on an item that was in their wishlist.</p>\n<p>You can reach the analytics of your targeted push notifications sent via this API through <strong>Reports</strong> &gt; <strong>Mobile App Analytics</strong> &gt; <strong>Push API Campaigns</strong> on Inone.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>The following are the body parameters you need to have in your request body.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>headline</td>\n<td>Title of the advanced push item</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Description of the advanced push item</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>api_key</td>\n<td>Your API key. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#mobile-app-integration-settings\">API Authentication Tokens</a> to get your API key.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>notifications</td>\n<td>The array of notification object that includes the push data</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>identifiers</td>\n<td>The object that contains the unique identifier of the user. The key can be an identifier such as email, phone_number or uuid. <em>E.g. \"phone_number\": \"+651234567890\"</em>.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>camp_id</td>\n<td>ID of the campaign that can be used to retrieve the statistics of the push notification via Statistics API. You can set any campaign ID.</td>\n<td>Integer</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>camp_name</td>\n<td>Name of the push notification</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Title of the push notification</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Content of the push notification</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>URL of the image in rich push notifications</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>ttl</td>\n<td>Expiration time of the push notification in seconds</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>check_optin</td>\n<td><em>true</em> shows the optin delivery count information in the API response. <em>false</em> does not show the count.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>android</td>\n<td>Object for Android details</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ios</td>\n<td>Object for iOS details</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>thread_id</td>\n<td>ID of the notification thread</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>deep_link</td>\n<td>Key/value pairs to be passed to the application in the push payload. The most common use of deep links is sending the user to the selected landing page when they open the push notification.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sound</td>\n<td>Name of the custom sound file in your app to play a custom sound</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>badge</td>\n<td>Badge for iOS</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>content-available</td>\n<td>(iOS only) <em>true</em> sends the notifications with content--available=1 but notification does not show up. This can be used to execute background tasks remotely.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>To add key-value pairs to the deep_link object, you can use the following deep link keys depending on its type:</p>\n<ul>\n<li><p><code>ins_dl_internal</code> for an internal deep link,</p>\n</li>\n<li><p><code>ins_dl_external</code> for an external deep link,</p>\n</li>\n<li><p><code>ins_dl_url_scheme</code> for a URL scheme deep link,</p>\n</li>\n<li><p><code>ins_dl_json</code> for a JSON deep link.</p>\n</li>\n</ul>\n<p>The URL in the value should always start with <code>https://</code>.</p>\n<h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to send targeted app push notifications.</p>\n<blockquote>\n<p>camp_id allows you to list your app push notifications in the Message Center, and get campaign-based reporting of your Push API campaigns. When replacing the sample values in the payload, make sure to use a unique campaign ID value in the camp_id key. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"api_key\": \"Your API Key goes here\",\n    \"report_attributes\": [\n        \"INSIDER.carrier\",\n        \"INSIDER.idfa\",\n        \"INSIDER.name\",\n        \"INSIDER.surname\",\n        \"INSIDER.gender\",\n        \"INSIDER.age\",\n        \"INSIDER.birthday\",\n        \"INSIDER.email\",\n        \"INSIDER.phone_number\",\n        \"INSIDER.language\",\n        \"INSIDER.email_optin\",\n        \"INSIDER.sms_optin\",\n        \"INSIDER.push_optin\",\n        \"INSIDER.location_optin\",\n        \"INSIDER.insider_id\",\n        \"INSIDER.environment\",\n        \"INSIDER.idfa\",\n        \"INSIDER.device_token\",\n        \"INSIDER.udid\",\n        \"INSIDER.model\",\n        \"INSIDER.carrier\",\n        \"INSIDER.app_version\",\n        \"INSIDER.os_version\",\n        \"INSIDER.screen_width\",\n        \"INSIDER.screen_height\",\n        \"INSIDER.platform\",\n        \"INSIDER.timezone\",\n        \"INSIDER.device_language\",\n        \"INSIDER.sdk_version\",\n        \"INSIDER.last_ip\",\n        \"INSIDER.package_name\"\n    ],\n    \"notifications\": [\n        {\n            \"identifiers\": {\n                \"INSIDER.email\": \"sample@mail.com\",\n                \"INSIDER.phone_number\": \"+65123456789\",\n                \"INSIDER.uuid\": \"1234567890\"\n            },\n            \"camp_id\": 1,\n            \"camp_name\": \"Your push notification campaign name goes here\",\n            \"title\": \"Your push notification title goes here\",\n            \"message\": \"Your push content goes here.\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"ttl\": 1,\n            \"check_optin\": true,\n            \"android\": {\n                \"thread-id\": 1,\n                \"sound\": \"sound_check\",\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            },\n            \"ios\": {\n                \"thread-id\": 1,\n                \"badge\": 1,\n                \"content-available\": false,\n                \"mutable-content\": true,\n                \"sound\": \"sound_check\",\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            }\n        }\n    ]\n}\n\n</code></pre>\n<p>Add <em>advanced_push_payload</em> in notifications if you would like to use advanced app pushes. The <em>advanced_push_type</em> value can be a <em>carousel</em> or <em>slider.</em></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Definition</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>advanced_push_type</td>\n<td>Type of the advanced push: carousel or slider</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>advanced_push_items</td>\n<td>Details of the advanced push</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>URL of the image in rich push notifications</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>deep_links</td>\n<td>Key/value pairs to be passed to the application in the push payload. The most common use of deep links is sending the user to the selected landing page when they open the push notification.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Description for your push</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>headline</td>\n<td>Title for your push</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>id</td>\n<td>ID of your push</td>\n<td>Integer</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"api_key\": \"Your API Key goes here\",\n    \"report_attributes\": [\n        \"INSIDER.carrier\",\n        \"INSIDER.idfa\",\n        \"INSIDER.name\",\n        \"INSIDER.surname\",\n        \"INSIDER.gender\",\n        \"INSIDER.age\",\n        \"INSIDER.birthday\",\n        \"INSIDER.email\",\n        \"INSIDER.phone_number\",\n        \"INSIDER.language\",\n        \"INSIDER.email_optin\",\n        \"INSIDER.sms_optin\",\n        \"INSIDER.push_optin\",\n        \"INSIDER.location_optin\",\n        \"INSIDER.insider_id\",\n        \"INSIDER.environment\",\n        \"INSIDER.idfa\",\n        \"INSIDER.device_token\",\n        \"INSIDER.udid\",\n        \"INSIDER.model\",\n        \"INSIDER.carrier\",\n        \"INSIDER.app_version\",\n        \"INSIDER.os_version\",\n        \"INSIDER.screen_width\",\n        \"INSIDER.screen_height\",\n        \"INSIDER.platform\",\n        \"INSIDER.timezone\",\n        \"INSIDER.device_language\",\n        \"INSIDER.sdk_version\",\n        \"INSIDER.last_ip\",\n        \"INSIDER.package_name\"\n    ],\n    \"notifications\": [\n        {\n            \"identifiers\": {\n                \"INSIDER.email\": \"example@gmail.com\",\n                \"INSIDER.phone_number\": \"+9059713551597135123\",\n                \"INSIDER.uuid\": \"5971351231234567\"\n            },\n            \"advanced_push_payload\": {\n                \"advanced_push_type\": \"carousel\",\n                \"advanced_push_items\": [\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value1\"\n                        },\n                        \"description\": \"Description for the item 1\",\n                        \"headline\": \"Title for the item 1\",\n                        \"id\": 1\n                    },\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value2\"\n                        },\n                        \"description\": \"Description for the item 2\",\n                        \"headline\": \"Title for the item 2\",\n                        \"id\": 2\n                    },\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value3\"\n                        },\n                        \"description\": \"Description for the item 3\",\n                        \"headline\": \"Title for the item 3\",\n                        \"id\": 3\n                    }\n                ]\n            },\n            \"camp_id\": 1,\n            \"camp_name\": \"Your push notification campaign name goes here\",\n            \"title\": \"Your push notification title goes here\",\n            \"message\": \"Your push content goes here\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"ttl\": 1,\n            \"send_single_user\": true,\n            \"check_optin\": true,\n            \"android\": {\n                \"thread-id\": 1,\n                \"sound\": \"sound_check\",\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            },\n            \"ios\": {\n                \"thread-id\": 13,\n                \"badge\": 1,\n                \"content-available\": false,\n                \"mutable-content\": true,\n                \"sound\": \"sound_check\",\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            }\n        }\n    ]\n}\n\n</code></pre>\n<blockquote>\n<p>You can replace the <strong>advanced_push_payload.advanced_push_items[n].deep_links.your_deeplink_key</strong> with a custom deep link key, or use one of the following default keys: <strong>ins_dl_internal</strong>, i<strong>ns_dl_external</strong>, <strong>ins_dl_url_scheme</strong>, or <strong>ins_dl_json</strong>. </p>\n</blockquote>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request body has the <strong>report_attributes</strong> array.</p>\n<blockquote>\n<p>insider_id represents the profile ID in user profiles. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"successes\": [\n        {\n            \"INSIDER.age\": 37,\n            \"INSIDER.app_version\": \"4.0\",\n            \"INSIDER.birthday\": \"1982-11-13T23:00:00Z\",\n            \"INSIDER.carrier\": \"mycarrier\",\n            \"INSIDER.device_language\": \"en\",\n            \"INSIDER.device_token\": \"d07951020f3835bbc303084ecda3746170cfb5d696ddcc55b6\",\n            \"INSIDER.email\": \"sample@mail.com\",\n            \"INSIDER.email_optin\": true,\n            \"INSIDER.environment\": \"production\",\n            \"INSIDER.gender\": \"F\",\n            \"INSIDER.idfa\": \"AF3CCF3F-0V8E-6571-B296-E9BDFF7\",\n            \"INSIDER.insider_id\": \"940E4A98F309288AAC8C4\",\n            \"INSIDER.language\": \"en_US\",\n            \"INSIDER.last_ip\": null,\n            \"INSIDER.location_optin\": false,\n            \"INSIDER.model\": \"iPhone 11\",\n            \"INSIDER.name\": \"John Smith\",\n            \"INSIDER.os_version\": \"14.7.1\",\n            \"INSIDER.package_name\": \"com.useinsider.iGurmeV3\",\n            \"INSIDER.phone_number\": \"+65123456789\",\n            \"INSIDER.platform\": \"iOS\",\n            \"INSIDER.push_optin\": true,\n            \"INSIDER.screen_height\": null,\n            \"INSIDER.screen_width\": null,\n            \"INSIDER.sdk_version\": \"10.6.0-RN-4.0.0\",\n            \"INSIDER.sms_optin\": true,\n            \"INSIDER.surname\": \"Smith\",\n            \"INSIDER.timezone\": \"Europe/Helsinki\",\n            \"INSIDER.udid\": \"98BB170F5078F309288AAC8C4\"\n        }\n    ],\n    \"errors\": {}\n}\n\n</code></pre>\n<p>The following response returns if the request body does not have the <strong>report_attributes</strong> array.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"successes\": [\n        {\n            \"INSIDER.device_token\": \"d07951020f3084ecd4d3deda3746170cfb5d69672c055b6\"\n        }\n    ],\n    \"errors\": {}\n}\n\n</code></pre>\n<p>There might be cases where the request returns a 200 response but the app pushes cannot be sent to users. The following list displays the reasons for these cases.</p>\n<p>| noUserErr | \"NoUserFound\" |<br />| optOutErr | \"OptOut\" |<br />| unregisteredErr | \"Unregistered\" |<br />| userGloballyCappedErr | \"UserGloballyCapped\" |<br />| userGloballyCappedForInappErr | \"UserGloballyCappedForInapp\" |<br />| invalidCertificateErr | \"InvalidCertificate\" |</p>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>The following response returns if the request body does not have an identifier.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"empty_insider_identifiers\",\n    \"message\": \"'insider_identifiers' object need to have at least one identifier\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>The following response returns if the notifications array is empty.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_notifications\",\n  \"message\": \"'notifications' is empty, add some notification objects\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-2\">400 Bad Request</h4>\n<p>The following response returns if the array has more than 20 objects.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_notifications\",\n  \"message\": \"'notifications' can't have more than 20 objects\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-3\">400 Bad Request</h4>\n<p>The following response returns if the deep link is blacklisted.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"blacklisted_deeplink\",\n  \"message\": \"deepLink can't contain 'aps' key\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-4\">400 Bad Request</h4>\n<p>The following response returns if the camp ID or channel ID is a negative integer.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"negative_integer\",\n  \"message\": \"camp_id' and/or 'channel_id' must be greater than zero\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-5\">400 Bad Request</h4>\n<p>The following response returns if the advanced push type is invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_advanced_push_type\",\n  \"message\": \"'advanced_push_type' must be either Carousel or Slider\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-6\">400 Bad Request</h4>\n<p>The following response returns if the certificate is invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_certificate\",\n  \"message\": \"You do not have a validated certificate. Please check Certificate section under Insider's Settings.\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the API Key is either empty or incorrect.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"bad_api_key\",\n    \"message\": \"'api_key' is either empty or wrong. You can get your API key from Insider Dashboard\"\n}\n\n</code></pre>\n<h4 id=\"fail-records-messages\">Fail Records Messages</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Definition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>InvalidRegistration (Android)</td>\n<td>You should check the format of the registration passed to the server. Make sure it matches the registration token the client app receives from registering with FCM. Do not truncate or add additional characters.</td>\n</tr>\n<tr>\n<td>NotRegistered (Android)</td>\n<td>User uninstalled the app and is no longer reachable.</td>\n</tr>\n<tr>\n<td>MismatchSenderId (Android)</td>\n<td>Google Sender ID used in the integration and the FCM Server Key do not belong to the same parent Google Account.</td>\n</tr>\n<tr>\n<td>BadDeviceToken (iOS)</td>\n<td>The application and the app environment do not match. One is in development and the other is in production environment.</td>\n</tr>\n<tr>\n<td>DeviceTokenNotForTopic (iOS)</td>\n<td>Push notification certificate topic and the application package name do not match.</td>\n</tr>\n<tr>\n<td>Unregistered (iOS)</td>\n<td>User uninstalled the app and is no longer reachable.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API key</strong> should be provided in the request body. If the key is incorrect, no operation will be executed.</p>\n</li>\n<li><p>You must complete the identifier integration with Insider SDK's user object for your platforms. See <a href=\"https://academy.useinsider.com/docs/android-user-object#set-login-attribute\">Android</a>, <a href=\"https://academy.useinsider.com/docs/ios-user-object#set-login-attribute\">iOS</a>, <a href=\"https://academy.useinsider.com/docs/react-native-user-object#set-login-attribute\">React Native</a>, <a href=\"https://academy.useinsider.com/docs/flutter-user-object#set-login-attribute\">Flutter</a>, and <a href=\"https://academy.useinsider.com/docs/cordova-user-object#set-login-attribute\">Cordova</a> for further details.</p>\n</li>\n<li><p>The <em>camp ID</em> value should be greater than 0.</p>\n</li>\n<li><p>The <em>advanced_push_type</em> value can be <em>slider</em> or <em>carousel</em>.</p>\n</li>\n<li><p>The <em>Android channel ID</em> value should be greater than 0.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","v2","notification","user"],"host":["mobile","useinsider","com"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[{"id":"a79a82ee-90cb-4cd0-8a8f-d5d361daeff2","name":"No user found by uuid","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\",\n    \"report_attributes\": [\n        \"INSIDER.name\",\n        \"INSIDER.birthday\",\n        \"INSIDER.email\",\n        \"INSIDER.phone_number\",\n        \"INSIDER.email_optin\",\n        \"INSIDER.sms_optin\",\n        \"INSIDER.push_optin\",\n        \"INSIDER.timezone\"\n    ],\n    \"notifications\": [\n        {\n            \"identifiers\": {\n                \"INSIDER.uuid\": \"u1u2i3d4\"\n            },\n            \"camp_id\": 1,\n            \"camp_name\": \"Black friday deals\",\n            \"title\": \"20% off on all seasonal items\",\n            \"message\": \"Place your order while stocks last!\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"ttl\": 1,\n            \"check_optin\": true\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://mobile.useinsider.com/api/v2/notification/user","protocol":"https","host":["mobile","useinsider","com"],"path":["api","v2","notification","user"],"query":[{"key":"","value":null,"type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 25 May 2023 15:23:06 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"15","enabled":true},{"key":"vary","value":"Accept-Encoding","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7ccec7142eac9c52-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"successes\": [],\n    \"errors\": {\n        \"NoUserFound\": [\n            {\n                \"INSIDER.uuid\": \"u1u2i3d4\"\n            }\n        ]\n    }\n}"},{"id":"0fb3857c-5287-4e81-b042-70c838fc61f5","name":"Send targeted app push","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\",\n    \"report_attributes\": [\n        \"INSIDER.carrier\",\n        \"INSIDER.birthday\",\n        \"INSIDER.email\",\n        \"INSIDER.phone_number\",\n        \"INSIDER.language\",\n        \"INSIDER.email_optin\",\n        \"INSIDER.sms_optin\",\n        \"INSIDER.push_optin\",\n        \"INSIDER.location_optin\",\n        \"INSIDER.insider_id\",\n        \"INSIDER.environment\",\n        \"INSIDER.udid\",\n        \"INSIDER.model\",\n        \"INSIDER.app_version\",\n        \"INSIDER.os_version\",\n        \"INSIDER.platform\",\n        \"INSIDER.timezone\",\n        \"INSIDER.device_language\",\n        \"INSIDER.sdk_version\"\n    ],\n    \"notifications\": [\n        {\n            \"identifiers\": {\n                \"INSIDER.email\": \"sample@useinsider.com\"\n            },\n            \"camp_id\": 1,\n            \"camp_name\": \"Black friday deals\",\n            \"title\": \"20% off on seasonal items\",\n            \"message\": \"Place your order while stocks last\",\n            \"image_url\": \"https://image.useinsider\",\n            \"ttl\": 1,\n            \"check_optin\": true\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://mobile.useinsider.com/api/v2/notification/user","protocol":"https","host":["mobile","useinsider","com"],"path":["api","v2","notification","user"],"query":[{"key":"","value":null,"type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 25 May 2023 16:03:08 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"190","enabled":true},{"key":"vary","value":"Accept-Encoding","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=XzrDxlppoYIZkrPSIEjv2BCqzcIjZXWtDhZ8uUDwmmY-1685030588-0-AecMSWt6tRNBoExHeZd3fpBF+/0182z5y6xN6es/MLETei5F+GmOQ8a1NfFE1E1iM+WUz3EBUr0z5CuUH8oDkNQ=; path=/; expires=Thu, 25-May-23 16:33:08 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7ccf01b8cc513aed-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"successes\": [\n        {\n            \"INSIDER.app_version\": \"10.0\",\n            \"INSIDER.birthday\": null,\n            \"INSIDER.carrier\": \"Turkcell\",\n            \"INSIDER.device_language\": \"en\",\n            \"INSIDER.email\": \"sample@useinsider.com\",\n            \"INSIDER.email_optin\": true,\n            \"INSIDER.environment\": \"production\",\n            \"INSIDER.insider_id\": \"1234-5678-9012\",\n            \"INSIDER.language\": \"en_US\",\n            \"INSIDER.location_optin\": false,\n            \"INSIDER.model\": \"iPhone 11\",\n            \"INSIDER.os_version\": \"16.3\",\n            \"INSIDER.phone_number\": \"+16102362339\",\n            \"INSIDER.platform\": \"iOS\",\n            \"INSIDER.push_optin\": true,\n            \"INSIDER.sdk_version\": \"12.7.3-RN-5.5.0\",\n            \"INSIDER.sms_optin\": true,\n            \"INSIDER.timezone\": \"Europe/Istanbul\",\n            \"INSIDER.udid\": \"u1u2i3d4\"\n        }\n    ],\n    \"errors\": {}\n}"}],"_postman_id":"d7f78aeb-9a0d-462d-9e90-5accdf844a2e"},{"name":"Send advanced app pushes","id":"17be6356-3135-4cea-bd39-d262993bcdef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\",\n    \"report_attributes\": [\n        \"INSIDER.carrier\",\n        \"INSIDER.idfa\",\n        \"INSIDER.name\",\n        \"INSIDER.surname\",\n        \"INSIDER.gender\",\n        \"INSIDER.age\",\n        \"INSIDER.birthday\",\n        \"INSIDER.email\",\n        \"INSIDER.phone_number\",\n        \"INSIDER.language\",\n        \"INSIDER.email_optin\",\n        \"INSIDER.sms_optin\",\n        \"INSIDER.push_optin\",\n        \"INSIDER.location_optin\",\n        \"INSIDER.insider_id\",\n        \"INSIDER.environment\",\n        \"INSIDER.idfa\",\n        \"INSIDER.device_token\",\n        \"INSIDER.udid\",\n        \"INSIDER.model\",\n        \"INSIDER.carrier\",\n        \"INSIDER.app_version\",\n        \"INSIDER.os_version\",\n        \"INSIDER.screen_width\",\n        \"INSIDER.screen_height\",\n        \"INSIDER.platform\",\n        \"INSIDER.timezone\",\n        \"INSIDER.device_language\",\n        \"INSIDER.sdk_version\",\n        \"INSIDER.last_ip\",\n        \"INSIDER.package_name\",\n        \"INSIDER.push_enabled\",\n        \"INSIDER.location_enabled\"\n    ],\n    \"notifications\": [\n        {\n            \"identifiers\": {\n                \"INSIDER.email\": \"sample@useinsider.com\",\n                \"INSIDER.phone_number\": \"+6559713551597135123\",\n                \"INSIDER.uuid\": \"5971351231234567\"\n            },\n            \"advanced_push_payload\": {\n                \"advanced_push_type\": \"carousel\",\n                \"advanced_push_items\": [\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value1\"\n                        },\n                        \"description\": \"Description for the item 1\",\n                        \"headline\": \"Title for the item 1\",\n                        \"id\": 1\n                    },\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value2\"\n                        },\n                        \"description\": \"Description for the item 2\",\n                        \"headline\": \"Title for the item 2\",\n                        \"id\": 2\n                    },\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value3\"\n                        },\n                        \"description\": \"Description for the item 3\",\n                        \"headline\": \"Title for the item 3\",\n                        \"id\": 3\n                    }\n                ]\n            },\n            \"camp_id\": 1,\n            \"camp_name\": \"Your push notification campaign name goes here\",\n            \"title\": \"Your push notification title goes here\",\n            \"message\": \"Your push content goes here\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"ttl\": 1,\n            \"check_optin\": true,\n            \"android\": {\n                \"thread-id\": 1,\n                \"sound\": \"sound_check\",\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            },\n            \"ios\": {\n                \"thread-id\": 13,\n                \"badge\": 1,\n                \"deliver_silently\": true,\n                \"mutable-content\": true,\n                \"sound\": \"sound_check\",\n                \"content-available\": true,\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            }\n        }\n    ]\n}"},"url":"https://mobile.useinsider.com/api/v2/notification/user","description":"<p>You can use this endpoint in various cases such as sending status update of an order from your ecommerce platform, or informing users of a sale on an item that was in their wishlist.</p>\n<p>You can reach the analytics of your advanced push notifications sent via this API through <strong>Reports</strong> &gt; <strong>Mobile App Analytics</strong> &gt; <strong>Push API Campaigns</strong> on Inone.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>The following are the body parameters you need to use in your request body.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>api_key</td>\n<td>Your API key. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#mobile-app-integration-settings\">API Authentication Tokens</a> to get your API key.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>report_attributes</td>\n<td>Contains information of the users who have been notified. This information is displayed on request.</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>notifications</td>\n<td>The array of notification object that includes the push data</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>identifiers</td>\n<td>The object that contains the unique identifier of the user. The key can be an identifier such as email, phone_number or uuid. E.g. \"phone_number\": \"+651234567890\".</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>advanced_push_payload</td>\n<td>Payload details for advanced push</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>advanced_push_type</td>\n<td>Type of the advanced push</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>advanced_push_items</td>\n<td>Details of the advanced push</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>URL of the image in rich push notifications</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>deep_links</td>\n<td>Key/value pairs to be passed to the application in the push payload. The most common use of deep links is sending the user to the selected landing page when they open the push notification.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Description for your item</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>headline</td>\n<td>Title for your item</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>id</td>\n<td>ID of your item</td>\n<td>Integer</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>camp_id</td>\n<td>ID of the campaign that can be used to retrieve the statistics of the push notification via Statistics API.</td>\n<td>Integer</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>camp_name</td>\n<td>Name of the push notification</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Title of the push notification</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Content of the push notification</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>URL of the image in rich push notifications</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>ttl</td>\n<td>Expiration time of the push notification in seconds</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>check_optin</td>\n<td><em>true</em> shows the optin delivery count information in the API response. <em>false</em> does not show the count.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>android</td>\n<td>Object for Android details</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ios</td>\n<td>Object for iOS details</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>thread-id</td>\n<td>ID of the notification thread</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>badge</td>\n<td>Badge for iOS</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>deliver_silently</td>\n<td>(iOS only) <em>true</em> sends the notifications with content--available=1 but notification does not show up. This can be used to execute background tasks remotely.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sound</td>\n<td>Custom sound name for iOS</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>deep_link</td>\n<td>Key/value pairs to be passed to the application in the push payload. The most common use of deep links is sending the user to the selected landing page when they open the push notification.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>To add key-value pairs to the deep_link object, you can use the following deep link keys depending on its type:</p>\n<ul>\n<li><code>ins_dl_internal</code> for an internal deep link,</li>\n<li><code>ins_dl_external</code> for an external deep link,</li>\n<li><code>ins_dl_url_scheme</code> for a URL scheme deep link,</li>\n<li><code>ins_dl_json</code> for a JSON deep link.</li>\n</ul>\n<p>The URL in the value should always start with <code>https://</code>.</p>\n<blockquote>\n<p>You can replace the <strong>advanced_push_payload.advanced_push_items[n].deep_links.your_deeplink_key</strong> with a custom deep link key, or use one of the following default keys: <strong>ins_dl_internal</strong>, i<strong>ns_dl_external</strong>, <strong>ins_dl_url_scheme</strong>, or <strong>ins_dl_json</strong>. </p>\n</blockquote>\n<h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to send advanced app push notifications.</p>\n<blockquote>\n<p>camp_id allows you to list your app push notifications in the Message Center, and get campaign-based reporting of your Push API campaigns. When replacing the sample values in the payload, make sure to use a unique campaign ID value in the camp_id key. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"api_key\": \"Your API Key goes here\",\n    \"report_attributes\": [\n        \"INSIDER.carrier\",\n        \"INSIDER.idfa\",\n        \"INSIDER.name\",\n        \"INSIDER.surname\",\n        \"INSIDER.gender\",\n        \"INSIDER.age\",\n        \"INSIDER.birthday\",\n        \"INSIDER.email\",\n        \"INSIDER.phone_number\",\n        \"INSIDER.language\",\n        \"INSIDER.email_optin\",\n        \"INSIDER.sms_optin\",\n        \"INSIDER.push_optin\",\n        \"INSIDER.location_optin\",\n        \"INSIDER.insider_id\",\n        \"INSIDER.environment\",\n        \"INSIDER.idfa\",\n        \"INSIDER.device_token\",\n        \"INSIDER.udid\",\n        \"INSIDER.model\",\n        \"INSIDER.carrier\",\n        \"INSIDER.app_version\",\n        \"INSIDER.os_version\",\n        \"INSIDER.screen_width\",\n        \"INSIDER.screen_height\",\n        \"INSIDER.platform\",\n        \"INSIDER.timezone\",\n        \"INSIDER.device_language\",\n        \"INSIDER.sdk_version\",\n        \"INSIDER.last_ip\",\n        \"INSIDER.package_name\"\n    ],\n    \"notifications\": [\n        {\n            \"identifiers\": {\n                \"INSIDER.email\": \"example@gmail.com\",\n                \"INSIDER.phone_number\": \"+9059713551597135123\",\n                \"INSIDER.uuid\": \"5971351231234567\"\n            },\n            \"advanced_push_payload\": {\n                \"advanced_push_type\": \"carousel\",\n                \"advanced_push_items\": [\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value1\"\n                        },\n                        \"description\": \"Description for the item 1\",\n                        \"headline\": \"Title for the item 1\",\n                        \"id\": 1\n                    },\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value2\"\n                        },\n                        \"description\": \"Description for the item 2\",\n                        \"headline\": \"Title for the item 2\",\n                        \"id\": 2\n                    },\n                    {\n                        \"image_url\": \"https://your_image_url.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value3\"\n                        },\n                        \"description\": \"Description for the item 3\",\n                        \"headline\": \"Title for the item 3\",\n                        \"id\": 3\n                    }\n                ]\n            },\n            \"camp_id\": 1,\n            \"camp_name\": \"Your push notification campaign name goes here\",\n            \"title\": \"Your push notification title goes here\",\n            \"message\": \"Your push content goes here\",\n            \"image_url\": \"https://your_image_url.jpg\",\n            \"ttl\": 1,\n            \"check_optin\": true,\n            \"android\": {\n                \"thread-id\": 1,\n                \"sound\": \"sound_check\",\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            },\n            \"ios\": {\n                \"thread-id\": 13,\n                \"badge\": 1,\n                \"deliver_silently\": true,\n                \"mutable-content\": true,\n                \"sound\": \"sound_check\",\n                \"content-available\": true,\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"successes\": [\n        {\n            \"INSIDER.carrier\": \"Mybrand\",\n            \"INSIDER.device_token\": \"1a2b3c4d5e6f\",\n            \"INSIDER.email\": \"sample@mail.com\",\n            \"INSIDER.phone_number\": \"+651234567891\",\n        }\n    },\n    \"errors\": {\n        \"NoUserFound\": [\n            {\n                \"INSIDER.email\": \"sample2@mail.com\"\n            }\n        ]\n    }\n}\n\n</code></pre>\n<p>There might be cases where the request returns a 200 response but the app pushes cannot be sent to users. The following list displays the reasons for these cases.</p>\n<p>| noUserErr | \"NoUserFound\" |<br />| optOutErr | \"OptOut\" |<br />| unregisteredErr | \"Unregistered\" |<br />| userGloballyCappedErr | \"UserGloballyCapped\" |<br />| userGloballyCappedForInappErr | \"UserGloballyCappedForInapp\" |<br />| invalidCertificateErr | \"InvalidCertificate\" |</p>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>The following response returns if the payload is invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"invalid_payload\"\n    \"message\": \"Can't parse payload, check your keys and data types\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>The following response returns if the notifications array is empty.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_notifications\",\n  \"message\": \"'notifications' is empty, add some notification objects\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-2\">400 Bad Request</h4>\n<p>The following response returns if the array has more than 20 objects.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_notifications\",\n  \"message\": \"'notifications' can't have more than 20 objects\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-3\">400 Bad Request</h4>\n<p>The following response returns if the deep link is blacklisted.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"blacklisted_deeplink\",\n  \"message\": \"deepLink can't contain 'aps' key\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-4\">400 Bad Request</h4>\n<p>The following response returns if the camp ID or channel ID is a negative integer.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"negative_integer\",\n  \"message\": \"camp_id' and/or 'channel_id' must be greater than zero\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-5\">400 Bad Request</h4>\n<p>The following response returns if the advanced push type is invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_advanced_push_type\",\n  \"message\": \"'advanced_push_type' must be either Carousel or Slider\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-6\">400 Bad Request</h4>\n<p>The following response returns if the certificate is invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_certificate\",\n  \"message\": \"You do not have a validated certificate. Please check Certificate section under Insider's Settings.\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>The <strong>API key</strong> should be provided in the request body. If the key is incorrect, no operation will be executed.</li>\n<li>Each request can send <strong>a maximum of 20</strong> <em><strong>advanced_push_items</strong></em> arrays.</li>\n<li>For security reasons, Insider does <strong>not allow</strong> you to target <strong>more than 20 devices</strong> per target.</li>\n<li>You must complete the identifier integration with Insider SDK's user object for your platforms. See <a href=\"https://academy.useinsider.com/docs/android-user-object#set-login-attribute\">Android</a>, <a href=\"https://academy.useinsider.com/docs/ios-user-object#set-login-attribute\">iOS</a>, <a href=\"https://academy.useinsider.com/docs/react-native-user-object#set-login-attribute\">React Native</a>, <a href=\"https://academy.useinsider.com/docs/flutter-user-object#set-login-attribute\">Flutter</a>, and <a href=\"https://academy.useinsider.com/docs/cordova-user-object#set-login-attribute\">Cordova</a> for further details.</li>\n<li>The <em>camp ID</em> value should be greater than 0.</li>\n<li>The <em>advanced_push_type</em> value can be <em>slider</em> or <em>carousel</em>.</li>\n<li>The <em>Android channel ID</em> value should be greater than 0.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","v2","notification","user"],"host":["mobile","useinsider","com"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[{"id":"c6cf74bd-d9ea-4b23-9aa1-0b43c5c7650f","name":"Send advanced app push","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\",\n    \"report_attributes\": [\n        \"INSIDER.birthday\",\n        \"INSIDER.email\",\n        \"INSIDER.phone_number\",\n        \"INSIDER.language\",\n        \"INSIDER.model\",\n        \"INSIDER.device_language\",\n        \"INSIDER.sdk_version\"\n    ],\n    \"notifications\": [\n        {\n            \"identifiers\": {\n                \"INSIDER.email\": \"sample@useinsider.com\"\n            },\n            \"advanced_push_payload\": {\n                \"advanced_push_type\": \"carousel\",\n                \"advanced_push_items\": [\n                    {\n                        \"image_url\": \"https://useinsider.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value1\"\n                        },\n                        \"description\": \"Carousel image 1\",\n                        \"headline\": \"Title for the image 1\",\n                        \"id\": 1\n                    },\n                    {\n                        \"image_url\": \"https://useinsider.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value2\"\n                        },\n                        \"description\": \"Carousel image 2\",\n                        \"headline\": \"Title for the image 2\",\n                        \"id\": 2\n                    },\n                    {\n                        \"image_url\": \"https://useinsider.jpg\",\n                        \"deep_links\": {\n                            \"your_deeplink_key\": \"value3\"\n                        },\n                        \"description\": \"Carousel image 3\",\n                        \"headline\": \"Title for the image 3\",\n                        \"id\": 3\n                    }\n                ]\n            },\n            \"camp_id\": 1,\n            \"camp_name\": \"New arrivals\",\n            \"title\": \"Check out our newest items\",\n            \"message\": \"Place your order while stocks last\",\n            \"image_url\": \"https://useinsider.jpg\",\n            \"ttl\": 1,\n            \"check_optin\": true,\n            \"ios\": {\n                \"thread-id\": 13,\n                \"badge\": 1,\n                \"deliver_silently\": true,\n                \"mutable-content\": true,\n                \"sound\": \"sound_check\",\n                \"content-available\": true,\n                \"deep_link\": {\n                    \"ins_dl_internal\": \"https://www.deeplink.useinsider\"\n                }\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://mobile.useinsider.com/api/v2/notification/user","protocol":"https","host":["mobile","useinsider","com"],"path":["api","v2","notification","user"],"query":[{"key":"","value":null,"type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 25 May 2023 16:14:19 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"182","enabled":true},{"key":"vary","value":"Accept-Encoding","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7ccf121c79cb1ffe-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"successes\": [\n        {\n            \"INSIDER.birthday\": null,\n            \"INSIDER.device_language\": \"en\",\n            \"INSIDER.email\": \"sample@useinsider.com\",\n            \"INSIDER.language\": \"en_US\",\n            \"INSIDER.model\": \"iPhone 11\",\n            \"INSIDER.phone_number\": \"+16102362339\",\n            \"INSIDER.sdk_version\": \"12.7.3-RN-5.5.0\"\n        }\n    ],\n    \"errors\": {}\n}"}],"_postman_id":"17be6356-3135-4cea-bd39-d262993bcdef"},{"name":"Get Message Center data","id":"5aaeed2e-6ac3-4785-97f9-aff8485bfa18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INSIDER-API-KEY","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"identifiers\": {\n        \"Email\": \"j.doe@mail.com\"\n    },\n    \"start_date\": 1633068172,\n    \"end_date\": 2143433430,\n    \"limit\": 100\n}"},"url":"https://mobile.useinsider.com/api/message_center/v1","description":"<p>This API allows you to get the push notifications of any type delivered to your users during a defined time interval, including the push notifications delivered in Architect journeys.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Before sending the request, make sure to replace the values in your request body.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>identifiers</td>\n<td>User's identifier information. Identifiers can be <strong>Email</strong>, <strong>Phone Number</strong>, <strong>UUID</strong> (unique user ID), or a <strong>custom</strong> identifier. The identifiers need to be written in the mentioned letter cases in the request, while the custom attribute needs to be written in the attribute_name format.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>Start date of the timeline push notifications are delivered within, in timestamp format.</td>\n<td>Integer</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>End date of the timeline push notifications are delivered within, in timestamp format.</td>\n<td>Integer</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>Number of push notifications you can get in one request. The value can be between1-100.</td>\n<td>Integer</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to get your message center data.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"identifiers\": {\n    \"Email\": \"j.doe@mail.com\"\n  },\n  \"start_date\": 1633068172,\n  \"end_date\": 2143433430,\n  \"limit\": 100\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following sample response returns for a successful request with a limit of 3.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"camp_id\": 650,\n        \"camp_type\": \"Single Push\",\n        \"created_at\": \"2023-01-23T18:10:17Z\",\n        \"deep_links\": {\n            \"Page\": \"Cart\",\n            \"category\": \"insider_int_push\",\n            \"mutable-content\": \"1\"\n        },\n        \"message\": \"This is my message\",\n        \"title\": \"This is my title\",\n        \"variant_id\": 1907\n    },\n    {\n        \"camp_id\": 101,\n        \"camp_type\": \"Recurring Push\",\n        \"created_at\": \"2023-01-18T21:00:21Z\",\n        \"deep_links\": {\n            \"MyKey01\": \"MyValue01\"\n        },\n        \"message\": \"New women's clothing has launched...\",\n        \"title\": \"Don't forget about me!\",\n        \"variant_id\": 898\n    },\n    {\n        \"camp_id\": 132,\n        \"camp_type\": \"Recurring Push\",\n        \"created_at\": \"2023-01-18T21:00:20Z\",\n        \"deep_links\": {\n            \"Page\": \"Cart\",\n            \"MyKey02\": \"MyValue02\"\n        },\n        \"message\": \"Your favorite items are waiting for you. \",\n        \"title\": \"Retail\",\n        \"variant_id\": 1122\n    }\n]\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>The following sample response returns for a request where the start date is greater than the end date.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bad payload\n\n</code></pre><h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>The following sample response returns for a request where the limit is greater than 100.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>limit should be between 1 and 100.\n\n</code></pre><h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>A request with an invalid API key will return a 401 Unauthorized response.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Each request can get push notifications only for one single user.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","message_center","v1"],"host":["mobile","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"23540cb2-3f6c-4003-9aeb-fa2b134e14a7","name":"Request message center pushes","originalRequest":{"method":"POST","header":[{"key":"X-INSIDER-API-KEY","value":"","description":"This key is required to authorize your request.","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"identifiers\": {\n        \"Email\": \"{emailAddress]\"\n    },\n    \"start_date\": 1678727330,\n    \"end_date\": 1683824930,\n    \"limit\": 3\n}","options":{"raw":{"language":"json"}}},"url":"https://mobile.useinsider.com/api/message_center/v1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 11 May 2023 17:18:23 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"x-envoy-upstream-service-time","value":"18","enabled":true},{"key":"vary","value":"Accept-Encoding","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7c5c14b258bb81e2-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"camp_id\": 897,\n        \"camp_type\": \"Single Push\",\n        \"created_at\": \"2023-05-10T19:08:39Z\",\n        \"deep_links\": {\n            \"key1\": \"value1\"\n        },\n        \"image_url\": \"https://imageurl.useinsider.com\",\n        \"message\": \"This is my message!\",\n        \"title\": \"This is my title\",\n        \"variant_id\": 1943\n    },\n    {\n        \"camp_id\": 896,\n        \"camp_type\": \"Single Push\",\n        \"created_at\": \"2023-05-09T22:10:56Z\",\n        \"deep_links\": {\n            \"key2\": \"value2\"\n        },\n        \"image_url\": \"https://imageurl.useinsider.com\",\n        \"message\": \"This is my great message\",\n        \"title\": \"This is my amazing title\",\n        \"variant_id\": 1941\n    },\n    {\n        \"camp_id\": 894,\n        \"camp_type\": \"Single Push\",\n        \"created_at\": \"2023-05-08T23:55:45Z\",\n        \"deep_links\": {\n            \"key3\": \"value3\"\n        },\n        \"message\": \"This is my message\",\n        \"title\": \"This is my title\",\n        \"variant_id\": 1937\n    }\n]"}],"_postman_id":"5aaeed2e-6ac3-4785-97f9-aff8485bfa18"},{"name":"Get inapp campaign details","id":"509686f3-84ba-447c-99df-7582c815561b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-KEY","value":"","description":"<p>This key is required to authorize your request.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"created_between\": {\n    \"from\": \"2025-01-16\",\n    \"to\": \"2025-04-15\"\n  }\n}"},"url":"https://mobile.api.useinsider.com/v1/details/inapp","description":"<p>This API allows you to retrieve detailed information about your app template campaigns. The campaigns in the <a href=\"https://academy.useinsider.com/docs/app-templates\">App Templates</a>, <a href=\"https://academy.useinsider.com/docs/app-survey\">App Survey</a>, <a href=\"https://academy.useinsider.com/docs/apptemplate-from-push\">App Template from Push</a>, and <a href=\"https://academy.useinsider.com/docs/architect-inapp\">Architect journeys</a> can return in the response if available.</p>\n<p>You can either:</p>\n<ul>\n<li><p>Search for a specific campaign using its ID or</p>\n</li>\n<li><p>Filter campaigns created within a specific date range.</p>\n</li>\n</ul>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>Before sending the request, make sure to replace the values in your request body.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>inapp_id</td>\n<td>The ID of the app template</td>\n<td>Integer</td>\n</tr>\n<tr>\n<td>created_between</td>\n<td>The dates between which the campaigns are created</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>from</td>\n<td>The start date of the date range</td>\n<td>String</td>\n</tr>\n<tr>\n<td>to</td>\n<td>The end date of the date range</td>\n<td>String</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>Before sending the request, make sure to replace the values in your request body. Below is an example for the <strong>created_between</strong> parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"created_between\": {\n    \"from\": \"2025-01-16\",\n    \"to\": \"2025-04-15\"\n  }\n}\n\n</code></pre>\n<p>Below is an example for the <strong>inapp_id</strong> parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"inapp_id\": 1434\n}\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>The following are some example responses you might receive for your request.</p>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following is a sample response for the <strong>created_between</strong> parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"inapp_id\": 2,\n      \"linked_push_id\": 3,\n      \"linked_push_type\": \"conversion\",\n      \"name\": \"My campaign\",\n      \"created_by\": \"test@useinsider.com\",\n      \"status\": \"passive\",\n      \"is_inapp_from_push\": true,\n      \"is_inapp_from_architect\": false,\n      \"created_at\": \"2025-01-01T15:08:55Z\",\n      \"start_date\": \"2024-01-01T15:08:56Z\",\n      \"updated_at\": \"2023-01-05T15:08:55Z\",\n      \"end_date\": \"2024-01-01T15:08:57Z\",\n      \"variations\": [\n        {\n          \"variation_id\": 1,\n          \"percentage\": 50,\n          \"variation_name\": \"Variant A\",\n          \"type\": \"wheelOfFortune\"\n        },\n        {\n          \"variation_id\": 2,\n          \"percentage\": 50,\n          \"variation_name\": \"Control Group\",\n          \"type\": \"wheelOfFortune\"\n        }\n      ],\n      \"tags\": [\n        \"tagName2\"\n      ]\n    },\n    {\n      \"inapp_id\": 3,\n      \"name\": \"Our campaign\",\n      \"created_by\": \"test@useinsider.com\",\n      \"status\": \"draft\",\n      \"is_inapp_from_push\": false,\n      \"is_inapp_from_architect\": false,\n      \"created_at\": \"2025-01-02T15:08:55Z\",\n      \"start_date\": \"2024-01-01T15:08:56Z\",\n      \"updated_at\": \"2023-01-05T15:08:55Z\",\n      \"end_date\": \"2024-01-01T15:08:57Z\",\n      \"variations\": [\n        {\n          \"variation_id\": 3,\n          \"percentage\": 50,\n          \"variation_name\": \"Variant A\",\n          \"type\": \"wheelOfFortune\"\n        },\n        {\n          \"variation_id\": 4,\n          \"percentage\": 50,\n          \"variation_name\": \"Control Group\",\n          \"type\": \"wheelOfFortune\"\n        }\n      ],\n      \"tags\": [\n        \"tagName3\"\n      ]\n    },\n    {\n      \"inapp_id\": 4,\n      \"journey_id\": 15,\n      \"name\": \"This campaign\",\n      \"created_by\": \"test@useinsider.com\",\n      \"status\": \"active\",\n      \"is_inapp_from_push\": false,\n      \"is_inapp_from_architect\": true,\n      \"created_at\": \"2025-01-03T15:08:55Z\",\n      \"start_date\": \"2024-01-01T15:08:56Z\",\n      \"updated_at\": \"2023-01-05T15:08:55Z\",\n      \"variations\": [\n        {\n          \"variation_id\": 5,\n          \"percentage\": 50,\n          \"variation_name\": \"Variant A\",\n          \"type\": \"wheelOfFortune\"\n        }\n      ]\n    }\n  ]\n}\n\n</code></pre>\n<p>The following is a sample response for the <strong>inapp_id</strong> parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"inapp_id\": 2,\n      \"name\": \"My campaign\",\n      \"linked_push_id\": 3,\n      \"linked_push_type\": \"conversion\",\n      \"created_at\": \"2024-01-01T15:08:55Z\",\n      \"created_by\": \"test@useinsider.com\",\n      \"status\": \"passive\",\n      \"is_inapp_from_push\": true,\n      \"is_inapp_from_architect\": false,\n      \"start_date\": \"2024-01-01T15:08:56Z\",\n      \"end_date\": \"2024-01-01T15:08:57Z\",\n      \"updated_at\": \"2023-01-05T15:08:55Z\",\n      \"variations\": [\n        {\n          \"variation_id\": 1,\n          \"percentage\": 50,\n          \"variation_name\": \"Variant A\",\n          \"type\": \"wheelOfFortune\"\n        },\n        {\n          \"variation_id\": 2,\n          \"percentage\": 50,\n          \"variation_name\": \"Control Group\",\n          \"type\": \"wheelOfFortune\"\n        }\n      ],\n      \"tags\": [\n        \"tagName2\"\n      ]\n    }\n  ]\n}\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>he following is a sample response for a request where the API key is missing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"No api key provided\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>The following is a sample response for a request where the payload is invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid request payload\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-2\">400 Bad Request</h4>\n<p>The following is a sample response for a request where the required parameter is missing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"either 'inapp_id' or 'created_between' must be provided\"\n}\n</code></pre>\n<h4 id=\"400-bad-request-3\">400 Bad Request</h4>\n<p>The following is a sample response for a request where the payload has both parameters while it requires only one.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"provide either 'inapp_id' or 'created_between', not both\"\n}\n</code></pre>\n<h4 id=\"400-bad-request-4\">400 Bad Request</h4>\n<p>The following is a sample response for a request where the date format is incorrect for the <strong>from</strong> parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid date format for 'from'; expected format is YYYY-MM-DD\"\n}\n</code></pre>\n<h4 id=\"400-bad-request-5\">400 Bad Request</h4>\n<p>The following is a sample response for a request where the date format is incorrect for the <strong>to</strong> parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid date format for 'to'; expected format is YYYY-MM-DD\"\n}\n</code></pre>\n<h4 id=\"400-bad-request-6\">400 Bad Request</h4>\n<p>The following is a sample response for a request where the <strong>to</strong> date is not greater than or equal to the <strong>from</strong> date.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"'to' date must be after or equal to 'from' date\"\n}\n</code></pre>\n<h4 id=\"400-bad-request-7\">400 Bad Request</h4>\n<p>The following is a sample response for a request where the date range exceeds 90 days.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"date range must not exceed 90 days\"\n}\n</code></pre>\n<h4 id=\"404-not-found\">404 Not Found</h4>\n<p>The following is a sample response for a request where no inapp is found.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"inapp not found\"\n}\n</code></pre>\n<h4 id=\"403-forbidden\">403 Forbidden</h4>\n<p>The following is a sample response for a request where the API key is invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Invalid api key\"\n}\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple HTTPS POST request.</p>\n</li>\n<li><p>nly one of the filters (inapp_id or created_between) can be used at a time.</p>\n</li>\n<li><p>The date range must be 90 days or less.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","details","inapp"],"host":["mobile","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"509686f3-84ba-447c-99df-7582c815561b"},{"name":"Upload FCM certificate","id":"293c82f0-a929-4c5e-ba58-a926fbc0bd8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"X-API-KEY","value":"1a2b3c4d5e6f","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"type\": \"service_account\",\n  \"project_id\": \"certificate-id\",\n  \"private_key_id\": \"01ab23cd45ef\",\n  \"private_key\": \"-----BEGIN PRIVATE KEY-----\\abcdef123456\\n-----END PRIVATE KEY-----\\n\",\n  \"client_email\": \"firebase-admin-abc123@insider-sdk.iam.gserviceaccount.com\",\n  \"client_id\": \"1234567890\",\n  \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n  \"token_uri\": \"https://oauth2.googleapis.com/token\",\n  \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n  \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/firebase-admin-abc123-%insider-sdk.iam.gserviceaccount.com\",\n  \"universe_domain\": \"googleapis.com\"\n}","options":{"raw":{"language":"json"}}},"url":"https://mobile.api.useinsider.com/v1/settings/certificate/firebase","description":"<p>This API allows you to upload your FCM certificate to Insider without visiting the Inone panel. With this API, you can upload or change your certificate.</p>\n","urlObject":{"protocol":"https","path":["v1","settings","certificate","firebase"],"host":["mobile","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"293c82f0-a929-4c5e-ba58-a926fbc0bd8b"}],"id":"e742c647-5f61-4519-85c8-cefbb480977a","description":"<p>With these APIs, you can send bulk, targeted, and advanced app pushes, and get Message Center data.</p>\n","_postman_id":"e742c647-5f61-4519-85c8-cefbb480977a"},{"name":"SMS APIs","item":[{"name":"Transactional SMS","item":[{"name":"Send transactional Single SMS","id":"83224693-8a3e-42f8-90b1-1427e520c354","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"content\": \"This is SMS body.\",\n    \"to\": \"+105555555555\",\n    \"callback\": \"http://callback.url\",\n    \"sendAt\" : \"2024-03-30T11:30:27Z\",\n    \"uniqueArgs\": {\n        \"additionalProp1\": \"string\",\n        \"additionalProp2\": \"string\",\n        \"additionalProp3\": \"string\"\n    },\n    \"settings\": {\n        \"urlExcludeProtocol\": true,\n        \"urlShorteningDomain\": \"insdr.io\",\n        \"urlShorteningStatus\": true,\n        \"urlTrackingStatus\": true,\n        \"smartEncoding\": true\n    }\n}"},"url":"https://sms.useinsider.com/v1/send","description":"<p>This API enables you to send targeted transactional SMS to your users. You can trigger these SMS messages once a user takes a specific action on your platform.</p>\n<p>You can use transactional SMS messages to:</p>\n<ul>\n<li><p>Send a post-purchase SMS to share details about a purchase/booking,</p>\n</li>\n<li><p>Help your users reset their password if they forget it,</p>\n</li>\n<li><p>Confirm an order a user places,</p>\n</li>\n<li><p>Share delivery tracking details of a purchase (when it is shipped, on the way, and delivered) and take many other actions.</p>\n</li>\n</ul>\n<h3 id=\"use-cases\">Use Cases</h3>\n<p>You can send transactional SMS messages for:</p>\n<ul>\n<li><p>System notifications</p>\n</li>\n<li><p>Order confirmation/information</p>\n<ul>\n<li><p>Thank you for your purchase! Your order number is <em>{orderNumber}</em>. View more information about your order here: <em>{Link}</em></p>\n</li>\n<li><p>Hey, <em>{firstName}</em>! Thanks for your purchase! View more information about your order (<em>{orderNumber}</em>) here: <em>{Link}</em></p>\n</li>\n</ul>\n</li>\n<li><p>Shipping Confirmation</p>\n<ul>\n<li><p>Great news, <em>{firstName}</em>! Your order (<em>{orderNumber}</em>) has shipped and will arrive soon. Click here to view your order details: <em>{Link}</em></p>\n</li>\n<li><p>Get excited! Your order (<em>{orderNumber}</em>) has shipped and is on its way to you. Click here to view your order details: <em>{Link}</em></p>\n</li>\n</ul>\n</li>\n<li><p>Ticket booking confirmation or cancellation</p>\n<ul>\n<li>Hey <em>{firstName}</em>, order #<em>{orderNumber}</em> was successfully canceled. You can check the status of your order here <em>{Link}</em></li>\n</ul>\n</li>\n<li><p>Information about shipping and delivery updates</p>\n</li>\n<li><p>Recurring billing / Payment Updates</p>\n</li>\n<li><p>Appointment confirmations</p>\n</li>\n<li><p>Welcome Messages</p>\n</li>\n</ul>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>You need to use the following parameters in the request body.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>to</td>\n<td>Phone Number</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>content</td>\n<td>Content of the SMS</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>unique_args</td>\n<td>Unique arguments of transactional SMS used for tracking purposes</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>callback</td>\n<td>The endpoint that you define to receive the webhook events. If the response does not return a 200 (Success) code, the Insider system will respond with \"Callback URL value is not valid\".</td>\n<td>URL</td>\n<td>No</td>\n</tr>\n<tr>\n<td>settings.UrlShorteningStatus</td>\n<td>For using the URL shortening for status in your messages.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>settings.UrlShorteningDomain</td>\n<td>For using the URL shortening for your domain in your messages. e.g. <em>insdr.io</em></td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>settings.UrlTrackingStatus</td>\n<td>For using the URL click tracking in your messages. If you do not add this parameter to the payload, the default version will not provide usage. If you <strong>do not open urlTracking</strong> and if you do not have <strong>Insider Tag</strong> integration on the related link’s webpage you will see <strong>clickthrough metric</strong> under the analytics page as zero.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>settings.UrlExcludeProtocol</td>\n<td>For excluding URL protocol (e.g., 'http://' or 'https://')</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sendAt</td>\n<td>Specifies the desired date and time at which the SMS message should be sent. For example: datetime=2006-01-02T15:04:05Z  <br />This parameter is valid only for Twilio and Sinch partners.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"sms-status-callback\">SMS Status Callback</h4>\n<p>The current status of your SMS messages is provided to you through the API URL you specify in the <strong>callback</strong> parameter while they are being sent. If you don't respond to code between 200 and 300, the system retries the request 10 times. The retry policy process is as follows:</p>\n<ul>\n<li><p>The first request is tried again 1 minute later.</p>\n</li>\n<li><p>The second request is tried again 2 minutes later after the first attempt.</p>\n</li>\n<li><p>The third request is tried again 3 minutes later after the first attempt.</p>\n</li>\n<li><p>The fourth request is tried again 8 minutes later after the first attempt.</p>\n</li>\n<li><p>The fifth request is tried again 13 minutes later after the first attempt.</p>\n</li>\n<li><p>The sixth request is tried again 18 minutes later after the first attempt.</p>\n</li>\n<li><p>The seventh request is tried again 28 minutes later after the first attempt.</p>\n</li>\n<li><p>The eighth request is tried again 38 minutes later after the first attempt.</p>\n</li>\n<li><p>The ninth request is tried again 48 minutes later after the first attempt.</p>\n</li>\n<li><p>The tenth request is tried again an hour later after the first attempt.</p>\n</li>\n</ul>\n<h3 id=\"sample-body\">Sample Body</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your sms content.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"content\": \"This is SMS body.\",\n    \"to\": \"+105555555555\",\n    \"callback\": \"http://callback.url\",\n    \"sendAt\" : \"2024-03-30T11:30:27Z\",\n    \"uniqueArgs\": {\n        \"additionalProp1\": \"string\",\n        \"additionalProp2\": \"string\",\n        \"additionalProp3\": \"string\"\n    },\n    \"settings\": {\n        \"urlShorteningDomain\": \"insdr.io\",\n        \"urlShorteningStatus\": true,\n        \"urlTrackingStatus\": true\n    }\n}\n\n</code></pre>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"accepted\">Accepted</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"Accepted\",\n    \"messageId\": \"sms-a1234567-b123-c123-d123-e123f123456\"\n}\n\n</code></pre>\n<h4 id=\"sms-sent\">SMS Sent</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"sent\",\n  \"partCount\": 1\n}\n\n</code></pre>\n<h4 id=\"sms-delivered\">SMS Delivered</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"delivered\"\n}\n\n</code></pre>\n<h4 id=\"sms-undelivered\">SMS Undelivered</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"undelivered\",\n  \"reason\": {\n        \"message\": \"Soft Bounce\",\n        \"code\": 1404\n    }\n}\n\n</code></pre>\n<h4 id=\"sms-dropped\">SMS Dropped</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"failed\",\n  \"reason\": {\n    \"message\": \"Invalid Phone Number\",\n    \"code\": 1500\n  },\n  \"partCount\": 1\n}\n\n</code></pre>\n<h4 id=\"sms-scheduled\">SMS Scheduled</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"scheduled\",\n  \"sendAt\": \"2006-01-02T15:04:05Z\",\n  \"partCount\": 1\n}\n\n</code></pre>\n<h4 id=\"sms-sent-1\">SMS Sent</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"sent\",\n  \"sendAt\": \"2006-01-02T15:04:05Z\",\n  \"partCount\": 1\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>Transactional API <strong>cannot be used to send promotional SMS</strong>. It is designed to set transactional SMS only.</p>\n</li>\n<li><p>The phone number should be in <strong>E164</strong> format.</p>\n</li>\n<li><p>Content can’t be <strong>empty</strong>. The maximum limit is <strong>670 characters</strong>.</p>\n</li>\n<li><p>The rate limit is <strong>5 requests per second</strong>.</p>\n</li>\n<li><p>The maximum speed will be determined based on the <strong>Provider Setup</strong>.</p>\n</li>\n<li><p>Insider will send a sample request to the callback URL you provide. If the response does not return a 200 (Success) code, the Insider system will respond with \"Callback URL value is not valid\".</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","send"],"host":["sms","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"83224693-8a3e-42f8-90b1-1427e520c354"},{"name":"Send Transactional Bulk SMS","id":"49dd98a2-58b9-4a29-8920-8883c062fea2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. If needed to test Transactional SMS, please request an API key from Insider team.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+905555555555\",\n            \"content\": \"This is SMS body.\",\n            \"callback\": \"http://callback.url\",\n            \"settings\": {\n                \"urlExcludeProtocol\": true,\n                \"urlShorteningDomain\": \"insdr.io\",\n                \"urlShorteningStatus\": true,\n                \"urlTrackingStatus\": true,\n                \"smartEncoding\": true\n            },\n            \"uniqueArgs\": {\n                \"additionalProp1\": \"string\",\n                \"additionalProp2\": \"string\",\n                \"additionalProp3\": \"string\"\n            }\n        },\n        {\n            \"phoneNumber\": \"90 (555) 55\",\n            \"content\": \"This is SMS body.\",\n            \"callback\": \"http://callback.url\",\n            \"settings\": {\n                \"urlExcludeProtocol\": true,\n                \"urlShorteningDomain\": \"insdr.io\",\n                \"urlShorteningStatus\": true,\n                \"urlTrackingStatus\": true,\n                \"smartEncoding\": true               \n            },\n            \"uniqueArgs\": {\n                \"additionalProp1\": \"string\",\n                \"additionalProp2\": \"string\",\n                \"additionalProp3\": \"string\"\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://sms.useinsider.com/v1/sendMultipleMessage","description":"<p>This API enables you to send targeted transactional SMS to your users. You can trigger these SMS messages once a user takes a specific action on your platform.</p>\n<p>You can use transactional SMS messages to:</p>\n<ul>\n<li><p>Send a post-purchase SMS to share details about a purchase/booking,</p>\n</li>\n<li><p>Help your users reset their password if they forget it,</p>\n</li>\n<li><p>Confirm an order a user places,</p>\n</li>\n<li><p>Share delivery tracking details of a purchase (when it is shipped, on the way, and delivered) and take many other actions.</p>\n</li>\n</ul>\n<h3 id=\"use-cases\">Use Cases</h3>\n<p>You can send transactional SMS messages for:</p>\n<ul>\n<li><p>System notifications</p>\n</li>\n<li><p>Order confirmation/information</p>\n<ul>\n<li><p>Thank you for your purchase! Your order number is <em>{orderNumber}</em>. View more information about your order here: <em>{Link}</em></p>\n</li>\n<li><p>Hey, <em>{firstName}</em>! Thanks for your purchase! View more information about your order (<em>{orderNumber}</em>) here: <em>{Link}</em></p>\n</li>\n</ul>\n</li>\n<li><p>Shipping Confirmation</p>\n<ul>\n<li><p>Great news, <em>{firstName}</em>! Your order (<em>{orderNumber}</em>) has shipped and will arrive soon. Click here to view your order details: <em>{Link}</em></p>\n</li>\n<li><p>Get excited! Your order (<em>{orderNumber}</em>) has shipped and is on its way to you. Click here to view your order details: <em>{Link}</em></p>\n</li>\n</ul>\n</li>\n<li><p>Ticket booking confirmation or cancellation</p>\n<ul>\n<li>Hey <em>{firstName}</em>, order #<em>{orderNumber}</em> was successfully canceled. You can check the status of your order here <em>{Link}</em></li>\n</ul>\n</li>\n<li><p>Information about shipping and delivery updates</p>\n</li>\n<li><p>Recurring billing / Payment Updates</p>\n</li>\n<li><p>Appointment confirmations</p>\n</li>\n<li><p>Welcome Messages</p>\n</li>\n</ul>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>to</td>\n<td>Phone Number</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>content</td>\n<td>Content of the SMS</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>unique_args</td>\n<td>Unique arguments of transactional SMS used for tracking purposes</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>callback</td>\n<td>The endpoint that you define to receive the webhook events</td>\n<td>URL</td>\n<td>No</td>\n</tr>\n<tr>\n<td>settings.UrlShorteningStatus</td>\n<td>For using the URL shortening for status in your messages.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>settings.UrlShorteningDomain</td>\n<td>For using the URL shortening for your domain in your messages. e.g. <em>insdr.io</em></td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>settings.UrlTrackingStatus</td>\n<td>For using the URL click tracking in your messages. If you do not add this parameter to the payload, the default version will not provide usage. If you <strong>do not open urlTracking</strong> and if you do not have <strong>Insider Tag</strong> integration on the related link’s webpage you will see <strong>clickthrough metric</strong> under the analytics page as zero.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>settings.UrlExcludeProtocol</td>\n<td>For excluding URL protocol (e.g., 'http://' or 'https://')</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sendAt</td>\n<td>Specifies the desired date and time at which the SMS message should be sent. For example: datetime=2006-01-02T15:04:05Z  <br />This parameter is valid only for Twilio and Sinch partners.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your SMS content. </p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"messages\": [\n    {\n      \"phoneNumber\": \"+905555555555\",\n      \"content\": \"This is SMS body.\",\n      \"callback\": \"http://callback.url\",\n      \"settings\": {\n        \"urlShorteningDomain\": \"insdr.io\",\n        \"urlShorteningStatus\": true,\n        \"urlTrackingStatus\": true\n      },\n      \"uniqueArgs\": {\n        \"additionalProp1\": \"string\",\n        \"additionalProp2\": \"string\",\n        \"additionalProp3\": \"string\"\n      }\n    },\n    {\n      \"phoneNumber\": \"90 (555) 55\",\n      \"content\": \"This is SMS body.\",\n      \"callback\": \"http://callback.url\",\n      \"settings\": {\n        \"urlShorteningDomain\": \"insdr.io\",\n        \"urlShorteningStatus\": true,\n        \"urlTrackingStatus\": true\n      },\n      \"uniqueArgs\": {\n        \"additionalProp1\": \"string\",\n        \"additionalProp2\": \"string\",\n        \"additionalProp3\": \"string\"\n      }\n    }\n  ]\n}\n</code></pre>\n<h3 id=\"sample-callback-responses\">Sample Callback Responses</h3>\n<h4 id=\"sms-accepted\">SMS Accepted</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"Accepted\",\n    \"messageIds\": [\n        {\n            \"phoneNumber\": \"+905555555555\",\n            \"messageSid\": \"sms-a1234567-b123-c123-d123-e123f123456\"\n        }\n    ],\n    \"errors\": [\n        {\n            \"field\": \"messages[1].phoneNumber\",\n            \"error\": \"This field must be a valid phone number.\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"sms-sent\">SMS Sent</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"sent\",\n  \"partCount\": 1\n}\n\n</code></pre>\n<h4 id=\"sms-delivered\">SMS Delivered</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"delivered\"\n}\n\n</code></pre>\n<h4 id=\"sms-undelivered\">SMS Undelivered</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"sms-a1234567-b123-c123-d123-e123f123456\",\n  \"uniqueArgs\": {\n    \"additionalProp1\": \"string\",\n    \"additionalProp2\": \"string\",\n    \"additionalProp3\": \"string\"\n  },\n  \"event\": \"undelivered\",\n  \"reason\": {\n        \"message\": \"Soft Bounce\",\n        \"code\": 1404\n    }\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>Transactional API <strong>cannot be used to send promotional SMS</strong>. It is designed to set transactional SMS only.</p>\n</li>\n<li><p>The phone number should be in <strong>E164</strong> format.</p>\n</li>\n<li><p>Content can’t be <strong>empty</strong>. The maximum limit is <strong>670 characters</strong>.</p>\n</li>\n<li><p>The rate limit is <strong>5 requests per second</strong>.</p>\n</li>\n<li><p>The message limit is <strong>50 messages</strong> per request.</p>\n</li>\n<li><p>The maximum speed will be determined based on the <strong>Provider Setup</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","sendMultipleMessage"],"host":["sms","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"49dd98a2-58b9-4a29-8920-8883c062fea2"}],"id":"5809920b-5aeb-4994-bdc0-f5d5b5cbf5e4","_postman_id":"5809920b-5aeb-4994-bdc0-f5d5b5cbf5e4","description":""},{"name":"OTP for SMS","item":[{"name":"Create a channel","id":"38887388-5129-40eb-bb79-92b19ce0187a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"channel\": \"sms\",\n    \"brandName\": \"YourBrand\"\n}"},"url":"https://verify.useinsider.com/v1/channel/create","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the SMS channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.</p>\n<p>In this regard, in order to send OTP codes, you must create a channel for your brand just once. Creating a channel, you will have predefined templates for 10 languages by default.</p>\n<p>To be able to use the Verify API:</p>\n<ol>\n<li><p>Both SMS &amp; Transactional SMS Products should be enabled in Insider's InOne Panel.</p>\n</li>\n<li><p>SMS Integration should be finalized and you should be able to receive a test message from the Insider's InOnePanel.</p>\n</li>\n</ol>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>Channel that you will send the OTP code. Currently it is SMS only.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:sms</td>\n</tr>\n<tr>\n<td>brandName</td>\n<td>Your brand name defines your OTP SMS content in pre-defined templates.</td>\n<td>String</td>\n<td>Yes</td>\n<td>min:3 max:30 characters</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://verify.useinsider.com/v1/channel/create' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************' \\\n--data '{\n    \"channel\": \"sms\",\n    \"brandName\": \"YourBrandName\"\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"201-created\">201 CREATED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"this field must be one of these:sms\",\n            \"field\": \"channel\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 TOO MANY REQUESTS</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 INTERNAL SERVER ERROR</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"channel already exists\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error-1\">500 INTERNAL SERVER ERROR</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can only create OTP for <strong>SMS</strong> channel.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","channel","create"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"38887388-5129-40eb-bb79-92b19ce0187a"},{"name":"Update a channel","id":"8183cec6-032e-4119-8a7b-4db08130457f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"channel\": \"sms\",\n    \"brandName\": \"YOURBRAND\"\n}"},"url":"https://verify.useinsider.com/v1/channel/update","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the SMS channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.</p>\n<p>After you create a channel for your brand, you can edit and update it later.</p>\n<h2 id=\"body-parameters\">Body Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>Channel that you will send the OTP code. Currently it is SMS only.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:sms</td>\n</tr>\n<tr>\n<td>brandName</td>\n<td>Your brand name defines your OTP SMS content in pre-defined templates.</td>\n<td>String</td>\n<td>Yes</td>\n<td>min:3 max:30 characters</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'verify.useinsider.com/v1/channel/update' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************' \\\n--data '{\n    \"channel\": \"sms\",\n    \"brandName\": \"YourBrand\"\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h4 id=\"202-accepted\">202 ACCEPTED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"this field must be one of these:sms\",\n            \"field\": \"channel\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 TOO MANY REQUESTS</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 INTERNAL SERVER ERROR</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"channel already exists\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error-1\">500 INTERNAL SERVER ERROR</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can only create OTP for <strong>SMS</strong> channel.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","channel","update"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"8183cec6-032e-4119-8a7b-4db08130457f"},{"name":"List OTP templates","id":"6f5fb37c-4623-47e5-8094-f5ff6857e039","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"url":"https://verify.useinsider.com/v1/channel/list","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the SMS channel.</p>\n<p>After you create a channel for your brand, you can list its templates later.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>Channel that you will send the OTP code. Currently it is SMS only.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:sms</td>\n</tr>\n<tr>\n<td>brandName</td>\n<td>Your brand name defines your OTP SMS content in pre-defined templates.</td>\n<td>String</td>\n<td>Yes</td>\n<td>min:3 max:30 characters</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'verify.useinsider.com/v1/template/list' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"templates\": {\n        \"sms\": [\n            {\n                \"locale\": \"de\",\n                \"text\": \"Ihr {brandName} Bestätigungscode lautet: {code}\"\n            },\n            {\n                \"locale\": \"en\",\n                \"text\": \"Your {brandName} verification code is: {code}\"\n            },\n            {\n                \"locale\": \"es\",\n                \"text\": \"Su código de verificación de {brandName} es: {code}\"\n            },\n            {\n                \"locale\": \"fr\",\n                \"text\": \"Votre code de vérification {brandName} est: {code}\"\n            },\n            {\n                \"locale\": \"it\",\n                \"text\": \"Il tuo codice di verifica {brandName} è: {code}\"\n            },\n            {\n                \"locale\": \"ja\",\n                \"text\": \"あなたの{brandName}確認コードは: {code}です\"\n            },\n            {\n                \"locale\": \"nl\",\n                \"text\": \"Uw {brandName} verificatiecode is: {code}\"\n            },\n            {\n                \"locale\": \"pt\",\n                \"text\": \"Seu código de verificação {brandName} é: {code}\"\n            },\n            {\n                \"locale\": \"ru\",\n                \"text\": \"Ваш проверочный код {brandName}: {code}\"\n            },\n            {\n                \"locale\": \"tr\",\n                \"text\": \"{brandName} doğrulama kodunuz: {code}\"\n            }\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 TOO MANY REQUESTS</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can only create OTP for <strong>SMS</strong> channel.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","channel","list"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"6f5fb37c-4623-47e5-8094-f5ff6857e039"},{"name":"Update OTP templates","id":"e46c66c3-bfd0-40e2-8258-c00468cf19d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"channel\": \"sms\",\n    \"locale\": \"en\",\n    \"text\": \"Your {brandName} verification code is: {code}\"\n}"},"url":"https://verify.useinsider.com/v1/channel/update","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the SMS channel.</p>\n<p>After you create a channel for your brand, you can edit and update its templates later.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>Channel that you will send the OTP code. Currently it is SMS only.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:sms</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>Determines the language/locale in which the OTP code message will be sent.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:de en es fr it ja nl pt ru tr</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Defines the template text that will be used for generating OTP code messages.</td>\n<td>String</td>\n<td>Yes</td>\n<td>max:100</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'verify.useinsider.com/v1/template/update' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************' \\\n--data '{\n    \"channel\": \"sms\",\n    \"locale\": \"en\",\n    \"text\": \"Your {brandName} verification code is: {code}\"\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h4 id=\"202-accepted\">202 ACCEPTED</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"this field is required\",\n            \"field\": \"text\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"409-conflict\">409 CONFLICT</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"no changes detected\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 TOO MANY REQUESTS</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-service-error\">500 INTERNAL SERVICE ERROR</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can only create OTP for <strong>SMS</strong> channel.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","channel","update"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"e46c66c3-bfd0-40e2-8258-c00468cf19d0"},{"name":"Generate OTP codes","id":"c0439909-d233-407d-b123-2df10f222d86","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"channel\": \"sms\",\n    \"to\": \"+905XXXXXXXXX\"\n}"},"url":"https://verify.useinsider.com/v1/channel/generate","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the SMS channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.</p>\n<p>After you create your channel for your brand and update the templates, you need to perform the generate action for your OTP.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>Channel that you will send the OTP code. Currently it is SMS only.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:sms</td>\n</tr>\n<tr>\n<td>to</td>\n<td>Specifies the destination phone number in E.164 format to which the OTP code will be sent.</td>\n<td>String</td>\n<td>Yes</td>\n<td>e164</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>Determines the language/locale in which the OTP code message will be sent.</td>\n<td>String</td>\n<td>No (Default: en)</td>\n<td>oneof:de en es fr it ja nl pt ru tr</td>\n</tr>\n<tr>\n<td>ttl</td>\n<td>Specifies the Time-To-Live (TTL) duration for the OTP code, i.e., the time window within which the OTP code is valid. Measured in seconds.</td>\n<td>Integer</td>\n<td>No (Default: 180)</td>\n<td>min:60 max:600</td>\n</tr>\n<tr>\n<td>code-length</td>\n<td>Specifies the length of the OTP code to be generated. The code length must be between 4 and 8 digits.</td>\n<td>Integer</td>\n<td>No (Default: 4)</td>\n<td>min:4 max:8</td>\n</tr>\n<tr>\n<td>custom-code</td>\n<td>If provided, allows you to specify a custom OTP code instead of generating one.</td>\n<td>Integer</td>\n<td>No</td>\n<td>min:1000 max:99999999</td>\n</tr>\n<tr>\n<td>max-attempts</td>\n<td>Sets the maximum number of allowed OTP verification attempts. If the verification fails after reaching this limit, further attempts might be denied.</td>\n<td>Integer</td>\n<td>No (Default: 3)</td>\n<td>min:1 max:10</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://verify.useinsider.com/v1/generate' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************' \\\n--data '{\n    \"channel\": \"sms\",\n    \"to\": \"+905XXXXXXXXX\"\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h4 id=\"202-accepted\">202 ACCEPTED</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"channel\": \"sms\",\n    \"dateCreated\": \"2023-07-28T14:40:41Z\",\n    \"dateUpdated\": \"2023-07-28T14:40:41Z\",\n    \"locale\": \"en\",\n    \"maxAttempts\": 3,\n    \"ttl\": 180\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"channel information must be a valid phone number for sms\",\n            \"field\": \"to\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 TOO MANY REQUESTS</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 INTERNAL SERVER ERROR</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can only create OTP for <strong>SMS</strong> channel.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","channel","generate"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"c0439909-d233-407d-b123-2df10f222d86"},{"name":"Verify OTP codes","id":"486830d8-24f8-4ac2-accd-d629cd6ca9b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"to\": \"+905XXXXXXXXX\",\n    \"code\": 1234\n}"},"url":"https://verify.useinsider.com/v1/check","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the SMS channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.</p>\n<p>After you create your channel for your brand and update the templates, you need to perform the verify action for your OTP.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>to</td>\n<td>Specifies the destination phone number in E.164 format to which the OTP code will be sent.</td>\n<td>String</td>\n<td>Yes</td>\n<td>e164</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Represents the OTP code provided for verification. The code length must be between 4 and 8 digits.</td>\n<td>Integer</td>\n<td>No (Default: 4)</td>\n<td>min:4 max:8</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'verify.useinsider.com/v1/check' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************' \\\n--data \n    \"to\": \"+905XXXXXXXXX\",\n    \"code\": 1234\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h4 id=\"202-accepted\">202 ACCEPTED</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 BAD REQUEST</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid code\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized-1\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"404-not-found\">404 NOT FOUND</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"code not found\",\n            \"field\": \"code\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 TOO MANY REQUESTS</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests-1\">429 TOO MANY REQUESTS</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"maximum attempts exceeded\",\n            \"field\": \"code\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 INTERNAL SERVER ERROR</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can only create OTP for <strong>SMS</strong> channel.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","check"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"486830d8-24f8-4ac2-accd-d629cd6ca9b9"}],"id":"eb556608-f363-4bec-a0df-4237fb14719d","_postman_id":"eb556608-f363-4bec-a0df-4237fb14719d","description":""}],"id":"507c8912-2010-4fdd-b71b-f674c148493a","description":"<p>With this API, you can send targeted transactional SMS to your users.</p>\n","_postman_id":"507c8912-2010-4fdd-b71b-f674c148493a"},{"name":"WhatsApp APIs","item":[{"name":"Transactional API","item":[{"name":"Send transactional WhatsApp template message","id":"68b1b6d8-f6c9-41a6-b539-fb1c9f108b12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.tink5Fi************.UZsBeR8**************************0rXedDKWc5YE","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"{{TEMPLATE_NAME}}\",\n                    \"language\": {\n                        \"code\": \"{{TEMPLATE_LANGUAGE_CODE}}\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"body\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"{{PARAMETER_VALUE}}\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"1\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"1\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"2\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}"},"url":"https://whatsapp.useinsider.com/v1/send","description":"<p>Transactional WhatsApp API enables you to send targeted transactional WhatsApp messages to your users. You can trigger these WhatsApp messages once a user takes a specific action on your platform.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “template” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Template name to be sent</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>language</td>\n<td></td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Template language</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message variable components</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>body</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>parameters</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>text</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Parameter value</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>button components</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>button</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>sub_type</td>\n<td>Quick_reply, URL, PHONE_NUMBER</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>index</td>\n<td></td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>parameters</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>payload</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>payload</td>\n<td>Payload value</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> Meta doesn't support adding emojis on button ID.</p>\n<h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to send transactional WhatsApp messages.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.*****************' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"{{TEMPLATE_NAME}}\",\n                    \"language\": {\n                        \"code\": \"{{TEMPLATE_LANGUAGE_CODE}}\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"body\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"{{PARAMETER_VALUE}}\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"1\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"1\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"2\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<p>If you want to use CTA (Call To Action), you can use the below sample request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/send' \\\n--header 'x-ins-auth-key: INS.kjQu-+bL4HpeZqvgr1j0.d4IVgHl9GcE+_eaKxNA3P8M3q8-emrO3-zalg9GSF29mK+Jz5k' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+994558964184\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"mert_masterfile_media_with_button\",\n                    \"language\": {\n                        \"code\": \"en\",\n                        \"policy\": \"deterministic\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"header\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"image\",\n                                    \"image\": {\n                                        \"link\": \"https://inshoppingcart.com/seleniumautomation/wp-content/uploads/2018/08/cap-2.jpg\"\n                                    }\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"body\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"https://vikingsankara.com?abc=sha\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"url\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"https://vikingsankara.com\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<p>If you don't want to use CTA, you can use the below sample request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.tiNlcL284J8dwCpfoqdR.gpyLwFG-0fSHPS9+kZYNsI-D2IWFNjlaRDlXJrZjx2_ZPTP37I' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+994558964184\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"7_image_header_no_button_copy\",\n                    \"language\": {\n                        \"code\": \"fi\",\n                        \"policy\": \"deterministic\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"header\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"image\",\n                                    \"image\": {\n                                        \"link\": \"https://image.useinsider.com/vikingsankara/media/whatsapp-business/11521/83rbBaWO7H63VmACSXiZ1716506118.jpg\"\n                                    }\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"body\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"shahla\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>If you use the wrong key, you will see the following error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>Transactional API cannot be used for <strong>sending bulk/promotional WhatsApp messages</strong>. It is designed only to set transactional WhatsApp messages.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"68b1b6d8-f6c9-41a6-b539-fb1c9f108b12"},{"name":"Send transactional WhatsApp text message","id":"6f75f19d-1090-45a8-9adf-a0042b64bc2e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n   \"messages\": [\n       {\n           \"phoneNumber\": \"+1**********\",\n           \"message\": {\n               \"type\": \"text\",\n               \"text\": {\n                   \"preview_url\": true,\n                   \"body\": \"Example Message\"\n               }\n           }\n       }\n   ]\n}"},"url":"https://whatsapp.useinsider.com/v1/send","description":"<h3 id=\"overview\">Overview</h3>\n<p>This API enables you to send targeted transactional WhatsApp messages to your users. You can send only text content in this message type.</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h2 id=\"body-parameters\">Body Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “text” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>This object contains the properties of the text message.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>preview_url</td>\n<td>Allows for URL previews in text messages. This field is optional if not including a URL in your message. Values: <em>false</em> (default), <em>true</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>body</td>\n<td>The text message's text can contain URLs that begin with http:// or https:// and formatting. The maximum length is 4096 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"sample-example\">Sample Example</h2>\n<h3 id=\"sample-request\">Sample Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**********************' \\\n--data '{\n   \"messages\": [\n       {\n           \"phoneNumber\": \"+1**********\",\n           \"message\": {\n               \"type\": \"text\",\n               \"text\": {\n                   \"preview_url\": true,\n                   \"body\": \"Example Message\"\n               }\n           }\n       }\n   ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>If you use the wrong key, you will see the following error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"message\": \"unauthorized\"\n}\n\n</code></pre><h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>Transactional API cannot be used for <strong>sending bulk/promotional WhatsApp messages</strong>. It is designed only to set transactional WhatsApp messages.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"6f75f19d-1090-45a8-9adf-a0042b64bc2e"},{"name":"Send transactional WhatsApp media message (Image)","id":"fe3c36ca-f456-45f9-a86b-21b36d6364fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"image\",\n                \"image\": {\n                    \"link\": \"{{IMAGE_URL}}\",\n                    \"caption\": \"Media Message (Image)\"\n                }\n            }\n        }\n    ]\n}"},"url":"https://whatsapp.useinsider.com/v1/send","description":"<p>This API enables you to send targeted transactional WhatsApp messages to your users. You can send media and text content in this message type</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “image” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image</td>\n<td>A media object of type image. Captions not supported when used in a media template.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>link</td>\n<td>The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs. Supported file types are image/jpeg, image/png. Max: 5 MB.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>The media object ID. Do not use this field when the message type is set to text.</td>\n<td>URL</td>\n<td>Yes if there is no l<strong>ink</strong>.</td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>If you use the wrong key, you will see the following error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"unauthorized\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</li>\n<li>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>Transactional API cannot be used for <strong>sending bulk/promotional WhatsApp messages</strong>. It is designed only to set transactional WhatsApp messages.</li>\n<li>The rate limit is <strong>10 requests per second</strong>.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"fe3c36ca-f456-45f9-a86b-21b36d6364fe"},{"name":"Send transactional WhatsApp media message (Document)","id":"12882f68-0a59-4038-a1e5-05f27ee102cf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"document\",\n                \"audio\": {\n                    \"link\": \"{{DOCUMENT_LINK}}\",\n                    \"caption\": \"{{DOCUMENT_DESCRIPTION}}\",\n                    \"filename\": \"{{DOCUMENT_NAME}}\"\n\n                }\n            }\n        }\n    ]\n}"},"url":"https://whatsapp.useinsider.com/v1/send","description":"<p>This API enables you to send targeted transactional WhatsApp messages to your users. You can send only document content in this message type.</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “document” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>document</td>\n<td>A media object of type document.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>link</td>\n<td><br /><br />The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs. Supported file types:<br /><br />- text/plain, <br />- application/pdf, <br />- application/vnd.ms-powerpoint, <br />- application/msword, <br />- application/vnd.ms-excel,<br />- application/vnd.openxmlformats-officedocument.wordprocessingml.document,<br />- application/vnd.openxmlformats-officedocument.presentationml.presentation,<br />- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet<br /><br />Max 100 MB.<br /><br /></td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td><br /><br />The media object ID. Do not use this field when the message type is set to text.<br /><br /></td>\n<td>URL</td>\n<td>Yes if there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filename</td>\n<td>Name of the file.  <br /></td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>If you use the wrong key, you will see the following error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"unauthorized\"\n}\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</li>\n<li>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>Transactional API cannot be used for <strong>sending bulk/promotional WhatsApp messages</strong>. It is designed only to set transactional WhatsApp messages.</li>\n<li>The rate limit is <strong>10 requests per second</strong>.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","send"],"host":["whatsapp","useinsider","com"],"query":[{"disabled":true,"key":"Content","value":""}],"variable":[]}},"response":[],"_postman_id":"12882f68-0a59-4038-a1e5-05f27ee102cf"},{"name":"Send transactional WhatsApp media message (Location)","id":"85f8a563-849e-4c61-a1b6-ba6f885480f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"location\",\n                \"location\": {\n                    \"longitude\": \"11.1111111\",\n                    \"latitude\": \"11.1111111\",\n                    \"name\": \"{{ADDRESS_NAME}}\",\n                    \"address\": \"{{FULL_ADDRESS}}\"\n                }\n            }\n        }\n    ]\n}"},"url":"https://whatsapp.useinsider.com/v1/send","description":"<p>This API enables you to send targeted transactional WhatsApp messages to your users. You can send media and text content in this message type.</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request  <br /></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “location” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>location</td>\n<td>A location object of type location.  <br /></td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>longitude  <br /></td>\n<td><br /><br />Longitude of the location.<br /><br /></td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>Latitude  <br /></td>\n<td><br /><br />Latitude of the location<br /><br /></td>\n<td>URL</td>\n<td>Yes if there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Name of the location.  <br /></td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>address</td>\n<td>Address of the location. Only displayed if name is present.  <br /></td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>If you use the wrong key, you will see the following error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"unauthorized\"\n}\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</li>\n<li>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>Transactional API cannot be used for <strong>sending bulk/promotional WhatsApp messages</strong>. It is designed only to set transactional WhatsApp messages.</li>\n<li>The rate limit is <strong>10 requests per second</strong>.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"85f8a563-849e-4c61-a1b6-ba6f885480f1"},{"name":"Send transactional WhatsApp message with button reply","id":"ff13b8d3-ebf2-4ff6-9f11-c6a637f8569c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"interactive\",\n                \"interactive\": {\n                    \"type\": \"button\",\n                    \"header\": {\n                        \"type\": \"text\",\n                        \"text\": \"HEADER_TEXT\"\n                    },\n                    \"body\": {\n                        \"text\": \"BUTTON_TEXT\"\n                    },\n                    \"action\": {\n                        \"buttons\": [\n                            {\n                                \"type\": \"reply\",\n                                \"reply\": {\n                                    \"id\": \"UNIQUE_BUTTON_ID_1\",\n                                    \"title\": \"BUTTON_TITLE_1\"\n                                }\n                            },\n                            {\n                                \"type\": \"reply\",\n                                \"reply\": {\n                                    \"id\": \"UNIQUE_BUTTON_ID_2\",\n                                    \"title\": \"BUTTON_TITLE_2\"\n                                }\n                            }\n                        ]\n                    }\n                }\n            }\n        }\n    ]\n}"},"url":"https://whatsapp.useinsider.com/v1/send","description":"<p>This API enables you to send targeted transactional WhatsApp messages to your users. You can send media and text content in this message type.</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “interactive” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>interactive</td>\n<td>An <a href=\"https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#interactive-object\">interactive object</a>. The components of each interactive object generally follow a consistent pattern: header, body, footer, and action.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type (in interactive)</td>\n<td>Must be a “button” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>header</td>\n<td><br /><br />  <br /><br /><br /></td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>type</td>\n<td><br /><br />The header type you would like to use. Supported values are:<br /><br />- text: Used for List Messages, Reply Buttons, and Multi-Product Messages.<br />- video: Used for Reply Buttons.<br />- image: Used for Reply Buttons.<br />- document: Used for Reply Buttons.<br /><br /></td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Text for the header. Formatting allows emojis, but not markdown. Maximum length is 60 characters.</td>\n<td>String</td>\n<td>Yes if the type is <strong>text</strong>.</td>\n</tr>\n<tr>\n<td>image</td>\n<td>Contains the media object for this image</td>\n<td>String</td>\n<td>Yes if the type is <strong>image</strong>.</td>\n</tr>\n<tr>\n<td>link</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using an uploaded media ID. The file types are image/jpeg, image/png. Max 5 MB.</td>\n<td>String</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td><br /><br />Required when the type is audio, document, image, sticker, or video and you are not using a link.<br /><br /></td>\n<td>URL</td>\n<td>Yes is there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image, document, or  video media. Do not  use with audio or sticker media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>audio</td>\n<td><br /></td>\n<td>Object</td>\n<td>Yes if the type is <strong>audio</strong>.</td>\n</tr>\n<tr>\n<td>link</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using an uploaded media ID. The file types are audio/mp4, audio/mpeg, audio/amr, audio/ogg. Max 16 MB.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using a link.</td>\n<td>URL</td>\n<td>Yes is there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>document</td>\n<td><br /></td>\n<td>Object</td>\n<td>Yes is the type is <strong>document</strong>.</td>\n</tr>\n<tr>\n<td>link</td>\n<td><br /><br />Required when type is audio, document, image, sticker, or video and you are not using an uploaded media ID. The File Types are:<br /><br />- text/plain, <br />- application/pdf, <br />- application/vnd.ms-powerpoint, <br />- application/msword, <br />- application/vnd.ms-excel,<br />- application/vnd.openxmlformats-officedocument.wordprocessingml.document,<br />- application/vnd.openxmlformats-officedocument.presentationml.presentation,<br />- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet<br /><br />Max 100 MB.<br /><br /></td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using a link.  <br /></td>\n<td>URL</td>\n<td>Yes if there is no <strong>link</strong>.  <br /></td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image, document, or video media. Do not use with audio or sticker media.  <br /></td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filename</td>\n<td>Describes the filename for the specific document. Use only with document media.  <br /></td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>video</td>\n<td><br /></td>\n<td>Object</td>\n<td>Yes if the type is <strong>video</strong>.</td>\n</tr>\n<tr>\n<td>link</td>\n<td>Required when type is audio, document, image, sticker, or video and you are not using an uploaded media ID. File Types are video/mp4, video/3gp. Max 16 MB.  <br /></td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.  <br /></td>\n</tr>\n<tr>\n<td>id</td>\n<td>Required when type is audio, document, image, sticker, or video and you are not using a link.  <br /></td>\n<td>URL</td>\n<td>Yes if there is no <strong>link</strong>.  <br /></td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image, document, or video media. Do not use with audio or sticker media.  <br /></td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>body</td>\n<td>The body object contains the following field: <strong>textstring</strong> – Required if body is present. The content of the message. Emojis and markdown are supported. Maximum length: 1024 characters  <br /></td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>The content of the message.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>action</td>\n<td><br /></td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>buttons</td>\n<td>You can use Min:1, Max:3 buttons.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “reply” for this message type.  <br /></td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>reply</td>\n<td><br /></td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Id of the button.  <br /></td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Title of the button  <br /></td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"sample-responses\">Sample Responses</h4>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>If you use the wrong key, you will see the following error.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"unauthorized\"\n}\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</li>\n<li>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>Transactional API cannot be used for <strong>sending bulk/promotional WhatsApp messages</strong>. It is designed only to set transactional WhatsApp messages.</li>\n<li>The rate limit is <strong>10 requests per second</strong>.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ff13b8d3-ebf2-4ff6-9f11-c6a637f8569c"},{"name":"Send Transactional WhatsApp Messages with OAuth 2.0","id":"cf8b4ddb-b193-4aaa-8b7b-f0c96789708d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": \"+901212121212\",\n    \"messages\": [{\n        \"phone_number\": \"+901111111111\",\n        \"user_id\": \"user-uuid-123\",\n        \"message\": {\n            \"type\": \"template\",\n            \"template\": {\n                \"name\": \"welcome_message\",\n                \"language\": {\n                    \"code\": \"tr\"\n                },\n                \"components\": [{\n                    \"type\": \"body\",\n                    \"parameters\": [{\n                        \"type\": \"text\",\n                        \"text\": \"Ahmet\"\n                    }]\n                }]\n            }\n        }\n    }]\n}","options":{"raw":{"language":"json"}}},"url":"https://gw.useinsider.com/api/wa/v2/transactional/messages/send","description":"<p>WhatsApp Transactional API v2 is a REST API that enables your systems to send transactional messages through the WhatsApp Business Platform.</p>\n<p><strong>Note:</strong> To send transactional WhatsApp messages using <strong>OAuth 2.0</strong>, you must first generate an <strong>OAuth 2.0 credential</strong>. For step-by-step instructions, refer to <a href=\"https://academy.insiderone.com/\">OAuth 2.0 Credentials</a>.</p>\n<p><strong>Note:</strong> Before sending Transactional WhatsApp template messages, make sure you create your template in InOne first. Refer to <a href=\"https://academy.insiderone.com/v1/docs/create-a-whatsapp-business-standard-template-on-inone\">Create a WhatsApp Business Standard Template on InOne</a> for step-by-step guidance.</p>\n<p>Refer to the visual below for an example of how a transactional WhatsApp template message is displayed.</p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/image-4HMMKA9C.png\" width=\"198\" height=\"101\" />\n\n<h3 id=\"sample-request\">Sample Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"from\": \"+905551234567\",\n    \"messages\": [{\n        \"phone_number\": \"+905559876543\",\n        \"user_id\": \"user-uuid-123\",\n        \"message\": {\n            \"type\": \"template\",\n            \"template\": {\n                \"name\": \"welcome_message\",\n                \"language\": {\n                    \"code\": \"tr\"\n                },\n                \"components\": [{\n                    \"type\": \"body\",\n                    \"parameters\": [{\n                        \"type\": \"text\",\n                        \"text\": \"Ahmet\"\n                    }]\n                }]\n            }\n        }\n    }]\n}\n\n</code></pre>\n<h3 id=\"main-body-parameters\">Main Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>from</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Sender’s WhatsApp phone number (in E.164 format)</td>\n</tr>\n<tr>\n<td><code>messages</code></td>\n<td>array</td>\n<td>Yes</td>\n<td>List of messages to be sent (minimum 1 message)</td>\n</tr>\n<tr>\n<td><code>url_shortener_config</code></td>\n<td>object</td>\n<td>No</td>\n<td>URL shortening settings</td>\n</tr>\n<tr>\n<td><code>url_shortener_config.status</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Enable/disable URL shortening</td>\n</tr>\n<tr>\n<td><code>url_shortener_config.domain</code></td>\n<td>string</td>\n<td>No</td>\n<td>Domain name for shortening</td>\n</tr>\n<tr>\n<td><code>unique_args</code></td>\n<td>object</td>\n<td>No</td>\n<td>Custom parameters (key–value map)</td>\n</tr>\n<tr>\n<td><code>remove_tracking_params</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Remove tracking parameters</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"messages-array-parameters\">Messages Array Parameters</h3>\n<p>Each element in the <code>messages</code> array contains:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>phone_number</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The recipient's phone number in international <code>E.164</code> format (e.g., <code>+905551234567</code>).</td>\n</tr>\n<tr>\n<td><code>user_id</code></td>\n<td>string</td>\n<td>No</td>\n<td>A unique identifier for the user within the partner's system, used for cross-platform tracking.</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>object</td>\n<td>Yes</td>\n<td>The core payload containing the message content (see <strong>Message Object</strong> details below).</td>\n</tr>\n<tr>\n<td><code>reply_type</code></td>\n<td>string</td>\n<td>No</td>\n<td>Defines the automated response category. Values: <code>first</code>, <code>second</code>, <code>third</code>, <code>other</code>.</td>\n</tr>\n<tr>\n<td><code>unique_args</code></td>\n<td>object</td>\n<td>No</td>\n<td>A key–value map for passing custom metadata specific to this individual message.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"message-object-structure\">Message Object Structure</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Message type: <code>template</code>, <code>text</code>, <code>image</code>, <code>video</code>, <code>document</code>, <code>audio</code>, <code>location</code>, <code>sticker</code>, <code>interactive</code>.</td>\n</tr>\n<tr>\n<td><code>template</code></td>\n<td>object</td>\n<td>Conditional</td>\n<td>Template message (required if <code>type=template</code>).</td>\n</tr>\n<tr>\n<td><code>text</code></td>\n<td>object</td>\n<td>Conditional</td>\n<td>Text message (required if <code>type=text</code>).</td>\n</tr>\n<tr>\n<td><code>...</code></td>\n<td><code>...</code></td>\n<td><code>...</code></td>\n<td>Other media types follow the same logic.</td>\n</tr>\n<tr>\n<td><code>context</code></td>\n<td>object</td>\n<td>No</td>\n<td>Information about the message being replied to (reply-to message).</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"template-messages\">Template Messages</h4>\n<p>Used to send template messages. Templates must be pre-created and approved in the Meta Business Manager.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Template name (must be defined in Meta).</td>\n</tr>\n<tr>\n<td><code>language</code></td>\n<td>object</td>\n<td>Yes</td>\n<td>Template language settings.</td>\n</tr>\n<tr>\n<td><code>language.code</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Language code (ISO 639-1, e.g., <code>tr</code>, <code>en</code>, <code>ar</code>).</td>\n</tr>\n<tr>\n<td><code>language.policy</code></td>\n<td>string</td>\n<td>No</td>\n<td>Language policy: <code>deterministic</code> (default) or <code>fallback</code>.</td>\n</tr>\n<tr>\n<td><code>components</code></td>\n<td>array</td>\n<td>No</td>\n<td>Template components (for parameters).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"component-types\">Component Types</h3>\n<p>Templates can include the following component types:</p>\n<h4 id=\"header-component\">Header Component</h4>\n<p>The header component corresponds to the template's header section.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"header\",\n    \"parameters\": [{\n        \"type\": \"text\",\n        \"text\": \"Değişken başlık değeri\"\n    }]\n} \n\n</code></pre>\n<p>To use a <strong>media header</strong>, you can use the request below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"header\",\n    \"parameters\": [{\n        \"type\": \"image\",\n        \"image\": {\n            \"link\": \"https://example.com/image.jpg\"\n        }\n    }]\n}\n\n</code></pre>\n<blockquote>\n<p>Header parameter types can be text, image, video and document. </p>\n</blockquote>\n<h4 id=\"body-component\">Body Component</h4>\n<p>Body component is the main text section of the template.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"body\",\n    \"parameters\": [{\n        \"type\": \"text\",\n        \"text\": \"Ahmet Yılmaz\"\n    }, {\n        \"type\": \"text\",\n        \"text\": \"12345\"\n    }]\n}\n\n</code></pre>\n<h4 id=\"button-component\">Button Component</h4>\n<p>The main text section of the template.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"button\",\n    \"sub_type\": \"url\",\n    \"index\": \"0\",\n    \"parameters\": [{\n        \"type\": \"text\",\n        \"text\": \"PROMO2024\"\n    }]\n}\n\n</code></pre>\n<p>To add buttons to the template, use the request below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"button\",\n    \"sub_type\": \"url\",\n    \"index\": \"0\",\n    \"parameters\": [{\n        \"type\": \"text\",\n        \"text\": \"PROMO2024\"\n    }]\n}\n\n</code></pre>\n<p>To add <strong>CTA (Call-to-Action)</strong> <strong>links</strong> to your template, use the request below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"button\",\n    \"sub_type\": \"url\",\n    \"index\": \"0\",\n    \"parameters\": [{\n        \"type\": \"text\",\n        \"cta_link\": \"?code=SUMMER2024\"\n    }]\n}\n\n</code></pre>\n<blockquote>\n<p>Button sub_types are url and quick_reply. </p>\n</blockquote>\n<h4 id=\"carousel-component\">Carousel Component</h4>\n<p>Carousel template (product catalog cards).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"carousel\",\n  \"cards\": [\n    {\n      \"card_index\": 0,\n      \"components\": [\n        {\n          \"type\": \"header\",\n          \"parameters\": [\n            {\n              \"type\": \"image\",\n              \"image\": {\n                \"link\": \"https://example.com/product1.jpg\"\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"body\",\n          \"parameters\": [\n            {\n              \"type\": \"text\",\n              \"text\": \"Ürün 1 Adı\"\n            },\n            {\n              \"type\": \"text\",\n              \"text\": \"999.99 TL\"\n            }\n          ]\n        },\n        {\n          \"type\": \"button\",\n          \"sub_type\": \"url\",\n          \"index\": \"0\",\n          \"parameters\": [\n            {\n              \"type\": \"text\",\n              \"text\": \"product-1-slug\"\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"card_index\": 1,\n      \"components\": [\n        {\n          \"type\": \"header\",\n          \"parameters\": [\n            {\n              \"type\": \"image\",\n              \"image\": {\n                \"link\": \"https://example.com/product2.jpg\"\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"body\",\n          \"parameters\": [\n            {\n              \"type\": \"text\",\n              \"text\": \"Ürün 2 Adı\"\n            },\n            {\n              \"type\": \"text\",\n              \"text\": \"1299.99 TL\"\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}\n\n</code></pre>\n<blockquote>\n<p>Carousel template can contain a maximum of 10 cards (card_index: 0-9). </p>\n</blockquote>\n<h4 id=\"limited-time-offer-lto-component\">Limited Time Offer (LTO) Component</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"limited_time_offer\",\n  \"parameters\": [\n    {\n      \"type\": \"limited_time_offer\",\n      \"limited_time_offer\": {\n        \"expiration_time_ms\": 1640000000000\n      }\n    }\n  ]\n}\n\n</code></pre>\n<h4 id=\"coupon-code-component\">Coupon Code Component</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"button\",\n  \"sub_type\": \"copy_code\",\n  \"index\": \"0\",\n  \"parameters\": [\n    {\n      \"type\": \"coupon_code\",\n      \"coupon_code\": \"SUMMER2024\"\n    }\n  ]\n}\n\n</code></pre>\n<h4 id=\"flow-button-component-for-whatsapp-flows\">Flow Button Component (For WhatsApp Flows)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"button\",\n  \"sub_type\": \"flow\",\n  \"index\": \"0\",\n  \"parameters\": [\n    {\n      \"type\": \"action\",\n      \"action\": {\n        \"flow_token\": \"unique-flow-token\",\n        \"flow_action_data\": {\n          \"user_id\": \"12345\",\n          \"product_id\": \"SKU-123\"\n        }\n      }\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"text-message\">Text Message</h3>\n<p>Used to send plain text messages (typically for conversational use).</p>\n<h4 id=\"parameters\">Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>body</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Message text (maximum <code>4096</code> characters).</td>\n</tr>\n<tr>\n<td><code>preview_url</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Display URL preview (default: <code>false</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"text\",\n  \"text\": {\n    \"body\": \"Merhaba! Siparişiniz hazırlanıyor.\",\n    \"preview_url\": false\n  }\n}\n\n</code></pre>\n<h3 id=\"image-message\">Image Message</h3>\n<p>Used to send images.</p>\n<h4 id=\"image-object\">Image Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>link</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Image URL (<code>HTTP</code>/<code>HTTPS</code>, mandatory if <code>id</code> is missing).</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Uploaded media ID (mandatory if <code>link</code> is missing).</td>\n</tr>\n<tr>\n<td><code>caption</code></td>\n<td>string</td>\n<td>No</td>\n<td>Image caption (maximum <code>1024</code> characters).</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"image-message-with-link\">Image Message with Link</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"image\",\n  \"image\": {\n    \"link\": \"https://example.com/image.jpg\",\n    \"caption\": \"Product Image\"\n  }\n}\n\n</code></pre>\n<h4 id=\"image-message-with-media-id\">Image Message with Media ID</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"type\": \"image\",\n  \"image\": {\n    \"id\": \"1234567890\",\n    \"caption\": \"Uploaded Image\"\n  }\n}\n\n</code></pre><blockquote>\n<p>Supported formats for image messages are JPEG, PNG. The maximum size is 5 MB. </p>\n</blockquote>\n<h3 id=\"video-message\">Video Message</h3>\n<p>Used to send videos.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>link</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Video URL (<code>HTTP</code>/<code>HTTPS</code>, mandatory if <code>id</code> is missing).</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Uploaded media ID (mandatory if <code>link</code> is missing).</td>\n</tr>\n<tr>\n<td><code>caption</code></td>\n<td>string</td>\n<td>No</td>\n<td>Video caption (maximum <code>1024</code> characters).</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"video\",\n  \"video\": {\n    \"link\": \"https://example.com/video.mp4\",\n    \"caption\": \"Product video\"\n  }\n}\n\n</code></pre>\n<blockquote>\n<p>Supported formats for video messages are MP4 and 3GPP. The maximum size is 16 MB. </p>\n</blockquote>\n<h3 id=\"document-message\">Document Message</h3>\n<p>Used to send documents/files.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>link</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Document URL (<code>HTTP</code>/<code>HTTPS</code>, mandatory if <code>id</code> is missing).</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Uploaded media ID (mandatory if <code>link</code> is missing).</td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filename (to be displayed).</td>\n</tr>\n<tr>\n<td><code>caption</code></td>\n<td>string</td>\n<td>No</td>\n<td>Document caption (maximum <code>1024</code> characters).</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"document\",\n  \"document\": {\n    \"link\": \"https://example.com/invoice.pdf\",\n    \"filename\": \"Fatura-12345.pdf\",\n    \"caption\": \"Sipariş faturanız\"\n  }\n}\n\n</code></pre>\n<blockquote>\n<p>Supported formats for document messages are PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT and CSV. The maximum size is 100 MB. </p>\n</blockquote>\n<h3 id=\"audio-message\">Audio Message</h3>\n<p>Used to send audio files.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>link</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Audio URL (<code>HTTP</code>/<code>HTTPS</code>, mandatory if <code>id</code> is missing).</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Uploaded media ID (mandatory if <code>link</code> is missing).</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"audio\",\n  \"audio\": {\n    \"link\": \"https://example.com/audio.mp3\"\n  }\n}\n\n</code></pre>\n<blockquote>\n<p>Supported formats for audio messages are AAC, M4A, AMR, MP3 and OGG OPUS. The maximum size is 16 MB. </p>\n</blockquote>\n<h3 id=\"location-message\">Location Message</h3>\n<p>Used to send location/map coordinates.</p>\n<h4 id=\"location-object\">Location Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>latitude</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Latitude coordinate.</td>\n</tr>\n<tr>\n<td><code>longitude</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Longitude coordinate.</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>No</td>\n<td>Location name.</td>\n</tr>\n<tr>\n<td><code>address</code></td>\n<td>string</td>\n<td>No</td>\n<td>Location address.</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"location\",\n  \"location\": {\n    \"latitude\": \"41.0082\",\n    \"longitude\": \"28.9784\",\n    \"name\": \"İstanbul\",\n    \"address\": \"İstanbul, Türkiye\"\n  }\n}\n\n</code></pre>\n<h3 id=\"sticker-message\">Sticker Message</h3>\n<p>Used to send stickers.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>link</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Sticker URL (<code>HTTP</code>/<code>HTTPS</code>, mandatory if <code>id</code> is missing).</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Uploaded media ID (mandatory if <code>link</code> is missing).</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"sticker\",\n  \"sticker\": {\n    \"link\": \"https://example.com/sticker.webp\"\n  }\n}\n\n</code></pre>\n<blockquote>\n<p>Supported format for sticker messages is WebP (static or animated) The maximum size is 100 KB (static), 500 KB (animated). </p>\n</blockquote>\n<h3 id=\"interactive-message\">Interactive Message</h3>\n<p>Used to send interactive messages (buttons, lists, products, flows).</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Interactive type: <code>button</code>, <code>list</code>, <code>product</code>, <code>product_list</code>, <code>flow</code>, <code>catalog_message</code>, <code>cta_url</code>.</td>\n</tr>\n<tr>\n<td><code>header</code></td>\n<td>object</td>\n<td>No</td>\n<td>Message header.</td>\n</tr>\n<tr>\n<td><code>body</code></td>\n<td>object</td>\n<td>Yes</td>\n<td>Message main body.</td>\n</tr>\n<tr>\n<td><code>body.text</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Message text (maximum <code>1024</code> characters).</td>\n</tr>\n<tr>\n<td><code>footer</code></td>\n<td>object</td>\n<td>No</td>\n<td>Message footer.</td>\n</tr>\n<tr>\n<td><code>footer.text</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Footer text (maximum <code>60</code> characters).</td>\n</tr>\n<tr>\n<td><code>action</code></td>\n<td>object</td>\n<td>Yes</td>\n<td>Interactive action definition.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"interactive-header\">Interactive Header</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"header\": {\n    \"type\": \"text\",\n    \"text\": \"Başlık metni\"\n  }\n}\n\n</code></pre>\n<h3 id=\"media-header\">Media Header</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"header\": {\n    \"type\": \"image\",\n    \"image\": {\n      \"link\": \"https://example.com/header.jpg\"\n    }\n  }\n}\n\n</code></pre>\n<blockquote>\n<p>Header types can be text, image, video, document. </p>\n</blockquote>\n<h3 id=\"interactive-action-types\">Interactive Action Types</h3>\n<ol>\n<li><strong>Button Action</strong> - Reply buttons (maximum 3 buttons)</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"action\": {\n    \"buttons\": [\n      {\n        \"type\": \"reply\",\n        \"reply\": {\n          \"id\": \"btn_yes\",\n          \"title\": \"Evet\"\n        }\n      },\n      {\n        \"type\": \"reply\",\n        \"reply\": {\n          \"id\": \"btn_no\",\n          \"title\": \"Hayır\"\n        }\n      }\n    ]\n  }\n}\n\n</code></pre>\n<blockquote>\n<p>Button title can be a maximum 20 characters. </p>\n</blockquote>\n<ol>\n<li><strong>List Action</strong> - Selection list (maximum 10 rows)</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"action\": {\n    \"button\": \"Seçenekleri Gör\",\n    \"sections\": [\n      {\n        \"title\": \"Kategori 1\",\n        \"rows\": [\n          {\n            \"id\": \"row_1\",\n            \"title\": \"Seçenek 1\",\n            \"description\": \"Seçenek açıklaması\"\n          },\n          {\n            \"id\": \"row_2\",\n            \"title\": \"Seçenek 2\",\n            \"description\": \"Diğer seçenek\"\n          }\n        ]\n      }\n    ]\n  }\n}\n\n</code></pre>\n<ol>\n<li><strong>Product Action</strong> - Single product display</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"action\": {\n    \"catalog_id\": \"123456789\",\n    \"product_retailer_id\": \"SKU-12345\"\n  }\n}\n\n</code></pre>\n<ol>\n<li><p>{ \"action\": { \"catalog_id\": \"123456789\", \"sections\": [ { \"title\": \"Öne Çıkan Ürünler\", \"product_items\": [ { \"product_retailer_id\": \"SKU-001\" }, { \"product_retailer_id\": \"SKU-002\" } ] } ] }}JSONCopy</p>\n</li>\n<li><p>{ \"action\": { \"name\": \"flow\", \"parameters\": { \"flow_message_version\": \"3\", \"flow_token\": \"unique-token\", \"flow_id\": \"123456789\", \"flow_cta\": \"Form Doldur\", \"flow_action\": \"navigate\", \"flow_action_payload\": { \"screen\": \"FORM_SCREEN\", \"data\": { \"user_id\": \"12345\" } } } }}JSONCopy</p>\n</li>\n<li><p>{ \"action\": { \"name\": \"cta_url\", \"parameters\": { \"display_text\": \"Web Siteyi Ziyaret Et\", \"url\": \"<a href=\"https://example.com\">https://example.com\"</a> } }}JSONCopy</p>\n</li>\n<li><p>{ \"action\": { \"name\": \"catalog_message\", \"parameters\": { \"thumbnail_product_retailer_id\": \"SKU-FEATURED\" } }}JSONCopy</p>\n</li>\n<li><p>{ \"action\": { \"cards\": [ { \"card_index\": 0, \"type\": \"carousel\", \"header\": { \"type\": \"image\", \"image\": { \"link\": \"<a href=\"https://example.com/product1.jpg\">https://example.com/product1.jpg\"</a> } }, \"body\": { \"text\": \"Ürün 1 - 999 TL\" }, \"action\": { \"name\": \"cta_url\", \"parameters\": { \"display_text\": \"Satın Al\", \"url\": \"<a href=\"https://example.com/product/1\">https://example.com/product/1\"</a> } } } ] }}JSONCopy</p>\n</li>\n</ol>\n<h3 id=\"context-object\">Context Object</h3>\n<p>Used to reply to a specific message.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>link</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Sticker URL (<code>HTTP</code>/<code>HTTPS</code>, mandatory if <code>id</code> is missing).</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>Uploaded media ID (mandatory if <code>link</code> is missing).</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"text\",\n  \"context\": {\n    \"message_id\": \"wamid.HBgLOTA5NTU1MTIzNDU2NxUCABIYIDNBMzQwRjg2...\"\n  },\n  \"text\": {\n    \"body\": \"Teşekkür ederiz!\"\n  }\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"response-parameters\">Response Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>keys</code></td>\n<td>array</td>\n<td>Unique keys generated for each message. Used in webhook callbacks.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"200-ok---success-response\">200 OK - Success Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"keys\": [\n    \"whatsapp-550e8400-e29b-41d4-a716-446655440000\"\n  ]\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Failed to validate request.\",\n  \"error\": {\n    \"message\": \"Failed to validate request.\",\n    \"code\": \"2001\"\n  }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request---validation\">400 Bad Request - Validation</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Failed to validate request.\",\n  \"error\": {\n    \"message\": \"Failed to validate request.\",\n    \"code\": \"2002\"\n  }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request---send-failed\">400 Bad Request - Send Failed</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Message could not be sent.\",\n  \"detail\": \"There is no active provider.\",\n  \"error\": {\n    \"message\": \"Message could not be sent.\",\n    \"code\": \"2003\"\n  }\n}\n\n</code></pre>\n<h4 id=\"error-codes\">Error Codes</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>HTTP Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2001</td>\n<td>400</td>\n<td>The request body could not be decoded.</td>\n</tr>\n<tr>\n<td>2002</td>\n<td>400</td>\n<td>The request body failed validation.</td>\n</tr>\n<tr>\n<td>2003</td>\n<td>400</td>\n<td>The message could not be sent due to a provider error or an internal system issue.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"media-operation-errors\">Media Operation Errors</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>HTTP Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2017</td>\n<td>400</td>\n<td>Provider not found or upload error</td>\n</tr>\n<tr>\n<td>2018</td>\n<td>400</td>\n<td>Error retrieving media information</td>\n</tr>\n<tr>\n<td>2019</td>\n<td>400</td>\n<td>Media download error</td>\n</tr>\n<tr>\n<td>INVALID_FILE</td>\n<td>400</td>\n<td>Invalid file or file could not be read</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"system-errors\">System Errors</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>HTTP Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>503 Service Unavailable</td>\n<td>The system is currently in maintenance mode</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","wa","v2","transactional","messages","send"],"host":["gw","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Sender’s WhatsApp phone number (in E.164 format)</p>\n","type":"text/plain"},"key":"from","value":null},{"disabled":true,"description":{"content":"<p>List of messages to be sent (minimum 1 message)</p>\n","type":"text/plain"},"key":"messages","value":null},{"disabled":true,"description":{"content":"<p>URL shortening settings</p>\n","type":"text/plain"},"key":"url_shortener_config","value":null},{"disabled":true,"description":{"content":"<p>Enable/disable URL shortening</p>\n","type":"text/plain"},"key":"url_shortener_config.status","value":null},{"disabled":true,"description":{"content":"<p>Domain name for shortening</p>\n","type":"text/plain"},"key":"url_shortener_config.domain","value":null},{"disabled":true,"description":{"content":"<p>Custom parameters (key–value map)</p>\n","type":"text/plain"},"key":"unique_args","value":null},{"disabled":true,"description":{"content":"<p>Remove tracking parameters</p>\n","type":"text/plain"},"key":"remove_tracking_params","value":null}],"variable":[]}},"response":[],"_postman_id":"cf8b4ddb-b193-4aaa-8b7b-f0c96789708d"},{"name":"Update Transactional WhatsApp Webhook Settings with OAuth 2.0","id":"ac7181d7-a787-4da1-8e6d-f05de52c2751","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://gw.useinsider.com/api/wa/v2/transactional/settings","description":"<p>You can use this API to update webhooks and other settings for transactional WhatsApp messages.</p>\n<blockquote>\n<p>&lt;p &gt;The system supports two grant types for OAuth2 authentication:&lt;/p&gt; </p>\n</blockquote>\n<ul>\n<li><p><code>client_credentials</code></p>\n</li>\n<li><p><code>refresh_token</code></p>\n</li>\n</ul>\n<h2 id=\"client-credentials-request\">Client Credentials Request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://gw.useinsider.com/api/wa/v2/transactional/settings\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer your_access_token\" \\\n  -d '{\n    \"webhook_url\": \"https://partner.example.com/webhooks/transactional\",\n    \"from\": \"+1234567890\",\n    \"auth_type\": \"oauth2\",\n    \"oauth2\": {\n      \"grant_type\": \"client_credentials\",\n      \"token_url\": \"https://oauth.partner.com/oauth/token\",\n      \"client_id\": \"your_client_id\",\n      \"client_secret\": \"your_client_secret\",\n      \"scopes\": [\n        \"webhook.write\"\n      ],\n      \"expires_in\": 3600\n    }\n  }'\n\n</code></pre>\n<h3 id=\"refresh-token-request\">Refresh Token Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://gw.useinsider.com/api/wa/v2/transactional/settings\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer your_access_token\" \\\n  -d '{\n    \"webhook_url\": \"https://partner.example.com/webhooks/transactional\",\n    \"from\": \"+1234567890\",\n    \"auth_type\": \"oauth2\",\n    \"oauth2\": {\n      \"grant_type\": \"refresh_token\",\n      \"token_url\": \"https://oauth.partner.com/oauth/token\",\n      \"client_id\": \"your_client_id\",\n      \"client_secret\": \"your_client_secret\",\n      \"refresh_token\": \"your_refresh_token\",\n      \"scopes\": [\n        \"webhook.write\"\n      ],\n      \"expires_in\": 3600\n    }\n  }'\n\n</code></pre>\n<h3 id=\"error-codes\">Error Codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>HTTP Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2010</td>\n<td>400</td>\n<td>The settings request body could not be decoded.</td>\n</tr>\n<tr>\n<td>2011</td>\n<td>400</td>\n<td>The settings request body failed validation.</td>\n</tr>\n<tr>\n<td>2012</td>\n<td>400</td>\n<td>An error occurred while saving the settings.</td>\n</tr>\n<tr>\n<td>2020</td>\n<td>400</td>\n<td>The webhook URL failed validation.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","wa","v2","transactional","settings"],"host":["gw","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ac7181d7-a787-4da1-8e6d-f05de52c2751"}],"id":"b372dca2-db95-473c-a3ea-f6832e596cc5","_postman_id":"b372dca2-db95-473c-a3ea-f6832e596cc5","description":""},{"name":"Conversational API","item":[{"name":"Send Conversational WhatsApp Message Template","id":"20a89760-d574-4fb2-b238-8235f97f2a42","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"{{TEMPLATE_NAME}}\",\n                    \"language\": {\n                        \"code\": \"{{TEMPLATE_LANGUAGE_CODE}}\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"body\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"{{PARAMETER_VALUE}}\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"1\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"1\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"2\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}"},"url":"https://whatsapp.useinsider.com/v1/conversational/send","description":"<p>The WhatsApp Marketing product provides conversational messages, allowing users to initiate conversations with businesses after the business has sent an initial message. To create a conversational flow, one of the ways is to integrate a bot to reply to users' WhatsApp messages.</p>\n<p>The Conversational API is designed for WhatsApp Bot connection.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>from</td>\n<td>Use only if you are using multiple phone numbers. If you have only one phone number, you do not need to add this.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “template” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Template name to be sent</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>language</td>\n<td></td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Template language</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>policy</td>\n<td>It must be deterministic.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message variable components</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>body</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>body parameters</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>text</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Parameter value</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>button components</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>button</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>sub_type</td>\n<td>Quick_reply, URL, PHONE_NUMBER</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>index</td>\n<td></td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>parameters</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>payload</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>payload</td>\n<td>Payload value</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>You can use the below sample request if you want to use the quick reply buttons:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************************' \\\n--data '{\n    \"from\": \"{{PHONE_NUMBER}}\", //Example: +112312312\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"{{TEMPLATE_NAME}}\",\n                    \"language\": {\n                        \"code\": \"{{TEMPLATE_LANGUAGE_CODE}}\",\n                        \"policy\": \"deterministic\",\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"body\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"{{PARAMETER_VALUE}}\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"1\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"1\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"2\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<p>If you want to use CTA (Call To Action), you can use the below sample request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/send' \\\n--header 'x-ins-auth-key: INS.kjQu-+bL4HpeZqvgr1j0.d4IVgHl9GcE+_eaKxNA3P8M3q8-emrO3-zalg9GSF29mK+Jz5k' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+994558964184\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"mert_masterfile_media_with_button\",\n                    \"language\": {\n                        \"code\": \"en\",\n                        \"policy\": \"deterministic\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"header\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"image\",\n                                    \"image\": {\n                                        \"link\": \"https://inshoppingcart.com/seleniumautomation/wp-content/uploads/2018/08/cap-2.jpg\"\n                                    }\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"body\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"https://vikingsankara.com?abc=sha\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"url\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"https://vikingsankara.com\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<p>If you don't want to use CTA, you can use the below sample request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.tiNlcL284J8dwCpfoqdR.gpyLwFG-0fSHPS9+kZYNsI-D2IWFNjlaRDlXJrZjx2_ZPTP37I' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+994558964184\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"7_image_header_no_button_copy\",\n                    \"language\": {\n                        \"code\": \"fi\",\n                        \"policy\": \"deterministic\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"header\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"image\",\n                                    \"image\": {\n                                        \"link\": \"https://image.useinsider.com/vikingsankara/media/whatsapp-business/11521/83rbBaWO7H63VmACSXiZ1716506118.jpg\"\n                                    }\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"body\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"shahla\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","conversational","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"20a89760-d574-4fb2-b238-8235f97f2a42"},{"name":"Send Conversational WhatsApp Carousel Template Message","id":"6c2ad034-0ac0-4d73-a9db-c1152f5a83d1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n \"from\": \"{{FROM}}\",\n \"messages\": [\n   {\n     \"phoneNumber\": \"{{TO}}\",\n     \"message\": {\n       \"type\": \"template\",\n       \"template\": {\n         \"name\": \"{{TEMPLATE_NAME}}\",\n         \"language\": {\n           \"code\": \"{{LANG_CODE}}\",\n           \"policy\": \"deterministic\"\n         },\n         \"components\": [\n           {\n             \"type\": \"body\",\n             \"parameters\": [\n               {\n                 \"type\": \"text\",\n                 \"text\": \"{{BODY_1}}\"\n               }\n             ]\n           },\n           {\n             \"type\": \"carousel\",\n             \"cards\": [\n               {\n                 \"card_index\": 0,\n                 \"components\": [\n                   {\n                     \"type\": \"header\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"image\",\n                         \"image\": {\n                           \"id\": \"{{IMG_ID_1}}\"\n                         }\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"body\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"text\",\n                         \"text\": \"{{CARD_TEXT_1}}\"\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"button\",\n                     \"sub_type\": \"quick_reply\",\n                     \"index\": \"0\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"payload\",\n                         \"payload\": \"{{PAYLOAD_1}}\"\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"button\",\n                     \"sub_type\": \"url\",\n                     \"index\": \"1\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"text\",\n                         \"text\": \"{{URL_1}}\"\n                       }\n                     ]\n                   }\n                 ]\n               },\n               {\n                 \"card_index\": 1,\n                 \"components\": [\n                   {\n                     \"type\": \"header\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"image\",\n                         \"image\": {\n                           \"id\": \"{{IMG_ID_2}}\"\n                         }\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"body\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"text\",\n                         \"text\": \"{{CARD_TEXT_2}}\"\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"button\",\n                     \"sub_type\": \"quick_reply\",\n                     \"index\": \"0\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"payload\",\n                         \"payload\": \"{{PAYLOAD_2}}\"\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"button\",\n                     \"sub_type\": \"url\",\n                     \"index\": \"1\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"text\",\n                         \"text\": \"{{URL_2}}\"\n                       }\n                     ]\n                   }\n                 ]\n               }\n             ]\n           }\n         ]\n       }\n     }\n   }\n ]\n}","options":{"raw":{"language":"json"}}},"url":"https://whatsapp.useinsider.com/v1/conversational/send","description":"<p>The WhatsApp Marketing product provides conversational messages, allowing users to initiate conversations with businesses after the business has sent an initial message. To create a conversational flow, one of the ways is to integrate a bot to reply to users' WhatsApp messages.</p>\n<p>The Conversational API is designed for connection with WhatsApp bots.</p>\n<p>When creating a new template in either marketing or utility categories, you can select the <a href=\"https://academy.useinsider.com/docs/create-a-whatsapp-carousel-template\">Carousel template</a> type. This feature enables the creation of multi-card messages, with each card displaying unique content, images, and interactive buttons. Carousel templates offer an engaging way to showcase multiple options or pieces of information within a single message, making it easier to capture user attention and encourage interaction.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>components</td>\n<td>Defines the dynamic sections of the message, such as the body, header, or buttons, for customization.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Specifies the type of each component (e.g., body, header, button, carousel).</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>cards</td>\n<td>Represents a collection of interactive cards, each containing its own components like headers, body texts, and buttons.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>card_index</td>\n<td>Identifies the position of a specific card in the carousel, starting from 0.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>components</td>\n<td>Nested within each card, this array defines the individual elements of the card. Common components are header (e.g., for an image), body (e.g., for text), and button (for actions like quick replies or URLs).</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************************' \\\n--data '{\n \"from\": \"{{FROM}}\",\n \"messages\": [\n   {\n     \"phoneNumber\": \"{{TO}}\",\n     \"message\": {\n       \"type\": \"template\",\n       \"template\": {\n         \"name\": \"{{TEMPLATE_NAME}}\",\n         \"language\": {\n           \"code\": \"{{LANG_CODE}}\",\n           \"policy\": \"deterministic\"\n         },\n         \"components\": [\n           {\n             \"type\": \"body\",\n             \"parameters\": [\n               {\n                 \"type\": \"text\",\n                 \"text\": \"{{BODY_1}}\"\n               }\n             ]\n           },\n           {\n             \"type\": \"carousel\",\n             \"cards\": [\n               {\n                 \"card_index\": 0,\n                 \"components\": [\n                   {\n                     \"type\": \"header\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"image\",\n                         \"image\": {\n                           \"id\": \"{{IMG_ID_1}}\"\n                         }\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"body\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"text\",\n                         \"text\": \"{{CARD_TEXT_1}}\"\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"button\",\n                     \"sub_type\": \"quick_reply\",\n                     \"index\": \"0\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"payload\",\n                         \"payload\": \"{{PAYLOAD_1}}\"\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"button\",\n                     \"sub_type\": \"url\",\n                     \"index\": \"1\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"text\",\n                         \"text\": \"{{URL_1}}\"\n                       }\n                     ]\n                   }\n                 ]\n               },\n               {\n                 \"card_index\": 1,\n                 \"components\": [\n                   {\n                     \"type\": \"header\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"image\",\n                         \"image\": {\n                           \"id\": \"{{IMG_ID_2}}\"\n                         }\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"body\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"text\",\n                         \"text\": \"{{CARD_TEXT_2}}\"\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"button\",\n                     \"sub_type\": \"quick_reply\",\n                     \"index\": \"0\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"payload\",\n                         \"payload\": \"{{PAYLOAD_2}}\"\n                       }\n                     ]\n                   },\n                   {\n                     \"type\": \"button\",\n                     \"sub_type\": \"url\",\n                     \"index\": \"1\",\n                     \"parameters\": [\n                       {\n                         \"type\": \"text\",\n                         \"text\": \"{{URL_2}}\"\n                       }\n                     ]\n                   }\n                 ]\n               }\n             ]\n           }\n         ]\n       }\n     }\n   }\n ]\n}\n'\n\n</code></pre>\n<p>You can use the below sample request if you want to use the quick reply buttons:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************************' \\\n--data '{\n    \"from\": \"{{PHONE_NUMBER}}\", //Example: +112312312\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"{{TEMPLATE_NAME}}\",\n                    \"language\": {\n                        \"code\": \"{{TEMPLATE_LANGUAGE_CODE}}\",\n                        \"policy\": \"deterministic\",\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"body\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"{{PARAMETER_VALUE}}\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"1\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"quick_reply\",\n                            \"index\": \"1\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"payload\",\n                                    \"payload\": \"2\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<p>If you want to use CTA (Call To Action), you can use the below sample request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/send' \\\n--header 'x-ins-auth-key: INS.kjQu-+bL4HpeZqvgr1j0.d4IVgHl9GcE+_eaKxNA3P8M3q8-emrO3-zalg9GSF29mK+Jz5k' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+994558964184\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"mert_masterfile_media_with_button\",\n                    \"language\": {\n                        \"code\": \"en\",\n                        \"policy\": \"deterministic\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"header\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"image\",\n                                    \"image\": {\n                                        \"link\": \"https://inshoppingcart.com/seleniumautomation/wp-content/uploads/2018/08/cap-2.jpg\"\n                                    }\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"body\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"https://vikingsankara.com?abc=sha\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"url\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"https://vikingsankara.com\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<p>If you don't want to use CTA, you can use the below sample request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.tiNlcL284J8dwCpfoqdR.gpyLwFG-0fSHPS9+kZYNsI-D2IWFNjlaRDlXJrZjx2_ZPTP37I' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+994558964184\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"7_image_header_no_button_copy\",\n                    \"language\": {\n                        \"code\": \"fi\",\n                        \"policy\": \"deterministic\"\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"header\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"image\",\n                                    \"image\": {\n                                        \"link\": \"https://image.useinsider.com/vikingsankara/media/whatsapp-business/11521/83rbBaWO7H63VmACSXiZ1716506118.jpg\"\n                                    }\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"body\",\n                            \"sub_type\": \"\",\n                            \"index\": \"\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"shahla\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n<li><p>Each card in the carousel template must include at least one button. </p>\n</li>\n<li><p>All cards should have buttons of the same type and quantity. </p>\n</li>\n<li><p>The template supports a minimum of 2 cards and a maximum of 6 cards per message.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","conversational","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"6c2ad034-0ac0-4d73-a9db-c1152f5a83d1"},{"name":"Send Conversational WhatsApp Text Message","id":"ae9fabe7-857d-40f2-8a3e-fcb2e3e44e6d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n   \"messages\": [\n       {\n           \"phoneNumber\": \"+1**********\",\n           \"message\": {\n               \"type\": \"text\",\n               \"text\": {\n                   \"preview_url\": true,\n                   \"body\": \"Example Message\"\n               }\n           }\n       }\n   ]\n}","options":{"raw":{"language":"json"}}},"url":"https://whatsapp.useinsider.com/v1/conversational/send","description":"<p>The WhatsApp Marketing product provides conversational messages, allowing users to initiate conversations with businesses after the business has sent an initial message. One way to create a conversational flow is to integrate a bot to reply to users' WhatsApp messages. </p>\n<p>You can only send text content using this message type.</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be “text” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>This object contains the properties of the text message.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>preview_url</td>\n<td>Allows for URL previews in text messages. Optional if not including a URL in your message. The default value is <em>false</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>body</td>\n<td>The text of the text message which can contain URLs beginning with <em>http://</em> or <em>https://</em> and formatting. The maximum length is 4096 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************' \\\n--data '{\n   \"messages\": [\n       {\n           \"phoneNumber\": \"+1**********\",\n           \"message\": {\n               \"type\": \"text\",\n               \"text\": {\n                   \"preview_url\": true,\n                   \"body\": \"Example Message\"\n               }\n           }\n       }\n   ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","conversational","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ae9fabe7-857d-40f2-8a3e-fcb2e3e44e6d"},{"name":"Send Conversational WhatsApp OTP Message","id":"5bfccfef-25c6-4fc1-825e-7efb4c347bb9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"{{PHONE_NUMBER}}\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"{{OTP_TEMPLATE_NAME}}\",\n                    \"language\": {\n                        \"code\": \"en\",\n                        \"policy\": \"deterministic\",\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"body\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"{{OTP_CODE}}\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"url\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                            {\n                                \"type\": \"text\",\n                                \"text\": \"{{OTP_CODE}}\"\n                            }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://whatsapp.useinsider.com/v1/conversational/send","description":"<p>The WhatsApp Marketing product provides conversational messages, allowing users to initiate conversations with businesses after the business has sent an initial message. One way to create a conversational flow is to integrate a bot to reply to users' WhatsApp messages.</p>\n<p>To use an OTP template, you must have your own OTP system. Then, you must create the OTP template from the Meta system.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be “template” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Template name to be sent</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>language</td>\n<td></td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Template language</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>policy</td>\n<td>It must be deterministic.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message variable components</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>body</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>body parameters</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>text</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Must be the OTP code</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>button components</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>button</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>sub_type</td>\n<td>Must be URL</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>index</td>\n<td></td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>parameters</td>\n<td></td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>text</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Must be the OTP code</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'x-ins-auth-key: INS.**************' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"{{PHONE_NUMBER}}\",\n            \"message\": {\n                \"type\": \"template\",\n                \"template\": {\n                    \"name\": \"{{OTP_TEMPLATE_NAME}}\",\n                    \"language\": {\n                        \"code\": \"en\",\n                        \"policy\": \"deterministic\",\n                    },\n                    \"components\": [\n                        {\n                            \"type\": \"body\",\n                            \"parameters\": [\n                                {\n                                    \"type\": \"text\",\n                                    \"text\": \"{{OTP_CODE}}\"\n                                }\n                            ]\n                        },\n                        {\n                            \"type\": \"button\",\n                            \"sub_type\": \"url\",\n                            \"index\": \"0\",\n                            \"parameters\": [\n                            {\n                                \"type\": \"text\",\n                                \"text\": \"{{OTP_CODE}}\"\n                            }\n                            ]\n                        }\n                    ]\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","conversational","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"5bfccfef-25c6-4fc1-825e-7efb4c347bb9"},{"name":"Send Conversational WhatsApp Media Message (Image)","id":"c5801b74-5449-44e4-8ac1-233ce28d8fe2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"image\",\n                \"image\": {\n                    \"link\": \"{{IMAGE_URL}}\",\n                    \"caption\": \"Media Message (Image)\"\n                }\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://whatsapp.useinsider.com/v1/conversational/send","description":"<p>The WhatsApp Marketing product provides conversational messages, allowing users to initiate conversations with businesses after the business has sent an initial message. One way to create a conversational flow is to integrate a bot to reply to users' WhatsApp messages.</p>\n<p>You can send media and text content using this message type.</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be an “image” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image</td>\n<td>A media object of type image. Captions not supported when used in a media template.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>link</td>\n<td>The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs. Supported file types are image/jpeg, image/png. Max: 5 MB.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>The media object ID. Do not use this field when the message type is set to text.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"image\",\n                \"image\": {\n                    \"link\": \"{{IMAGE_URL}}\",\n                    \"caption\": \"Media Message (Image)\"\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","conversational","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"c5801b74-5449-44e4-8ac1-233ce28d8fe2"},{"name":"Send Conversational WhatsApp Media Message (Document)","id":"0cd6f38d-1a46-4f41-b775-73230c8044ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"document\",\n                \"audio\": {\n                    \"link\": \"{{DOCUMENT_LINK}}\",\n                    \"caption\": \"{{DOCUMENT_DESCRIPTION}}\",\n                    \"filename\": \"{{DOCUMENT_NAME}}\"\n\n                }\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://whatsapp.useinsider.com/v1/conversational/send","description":"<p>The WhatsApp Marketing product provides conversational messages, allowing users to initiate conversations with businesses after the business has sent an initial message. To create a conversational flow, one of the ways is to integrate a bot to reply to users' WhatsApp messages.</p>\n<p>You can send only document content in this message type.</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “document” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image</td>\n<td>A media object of type image. Captions not supported when used in a media template.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>link</td>\n<td>The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs. Supported file types are:<br /><br />- text/plain, <br />    <br />- application/pdf, <br />    <br />- application/vnd.ms-powerpoint, <br />    <br />- application/msword, <br />    <br />- application/vnd.ms-excel,<br />    <br />- application/vnd.openxmlformats-officedocument.wordprocessingml.document,<br />    <br />- application/vnd.openxmlformats-officedocument.presentationml.presentation,<br />    <br />- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet<br />    <br /><br />Max 100 MB.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>The media object ID. Do not use this field when the message type is set to text.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filename</td>\n<td>Name of the file.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"document\",\n                \"audio\": {\n                    \"link\": \"{{DOCUMENT_LINK}}\",\n                    \"caption\": \"{{DOCUMENT_DESCRIPTION}}\",\n                    \"filename\": \"{{DOCUMENT_NAME}}\"\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed, and an authorization error will be returned in the response.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","conversational","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"0cd6f38d-1a46-4f41-b775-73230c8044ee"},{"name":"Send Conversational WhatsApp Media Message (Location)","id":"49b02a46-c4a3-4e73-8c66-8f53ebc57f12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"location\",\n                \"location\": {\n                    \"longitude\": \"11.1111111\",\n                    \"latitude\": \"11.1111111\",\n                    \"name\": \"{{ADDRESS_NAME}}\",\n                    \"address\": \"{{FULL_ADDRESS}}\"\n                }\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://whatsapp.useinsider.com/v1/conversational/send","description":"<p>The WhatsApp Marketing product provides conversational messages, allowing users to initiate conversations with businesses after the business has sent an initial message. To create a conversational flow, one of the ways is to integrate a bot to reply to users' WhatsApp messages. </p>\n<p>You can send media and text content in this message type. </p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be a “location” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>location</td>\n<td>A location object of type location</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>longitude</td>\n<td>Longitude of the location</td>\n<td>URL</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>latitude</td>\n<td>Latitude of the location</td>\n<td>URL</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Name of the location</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>address</td>\n<td>Address of the location. Only displayed if the name is present.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"location\",\n                \"location\": {\n                    \"longitude\": \"11.1111111\",\n                    \"latitude\": \"11.1111111\",\n                    \"name\": \"{{ADDRESS_NAME}}\",\n                    \"address\": \"{{FULL_ADDRESS}}\"\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre><h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","conversational","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"49b02a46-c4a3-4e73-8c66-8f53ebc57f12"},{"name":"Send Conversational WhatsApp Message with Button Reply","id":"dec30b4b-3dfc-4a11-941f-aaa055264af9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"interactive\",\n                \"interactive\": {\n                    \"type\": \"button\",\n                    \"header\": {\n                        \"type\": \"text\",\n                        \"text\": \"HEADER_TEXT\"\n                    },\n                    \"body\": {\n                        \"text\": \"BUTTON_TEXT\"\n                    },\n                    \"action\": {\n                        \"buttons\": [\n                            {\n                                \"type\": \"reply\",\n                                \"reply\": {\n                                    \"id\": \"UNIQUE_BUTTON_ID_1\",\n                                    \"title\": \"BUTTON_TITLE_1\"\n                                }\n                            },\n                            {\n                                \"type\": \"reply\",\n                                \"reply\": {\n                                    \"id\": \"UNIQUE_BUTTON_ID_2\",\n                                    \"title\": \"BUTTON_TITLE_2\"\n                                }\n                            }\n                        ]\n                    }\n                }\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://whatsapp.useinsider.com/v1/conversational/send","description":"<p>The WhatsApp Marketing product provides conversational messages, allowing users to initiate conversations with businesses after the business has sent an initial message. One way to create a conversational flow is to integrate a bot to reply to users' WhatsApp messages.</p>\n<p>You can send media and text content using this message type.</p>\n<p>You can send this message type if the user has sent a message to your number in the last 24 hours.</p>\n<h3 id=\"body-parameters\">Body parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>messages</td>\n<td>All messages are contained in the messages key. You can send multiple messages with a single request.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>Phone number for the person you want to send a message to.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Message object</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be “interactive” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>interactive</td>\n<td>An <a href=\"https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#interactive-object\">interactive object</a>. The components of each interactive object generally follow a consistent pattern: header, body, footer, and action.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type (in interactive)</td>\n<td>Must be a “button” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>header</td>\n<td>-</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>type</td>\n<td>The header type you would like to use. Supported values are:<br /><br />- text: Used for List Messages, Reply Buttons, and Multi-Product Messages.<br />    <br />- video: Used for Reply Buttons.<br />    <br />- image: Used for Reply Buttons.<br />    <br />- document: Used for Reply Buttons.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Text for the header. Formatting allows emojis, but not markdown. Maximum length is 60 characters.</td>\n<td>String</td>\n<td>Yes if the type is <strong>text</strong>.</td>\n</tr>\n<tr>\n<td>image</td>\n<td>Contains the media object for this image</td>\n<td>String</td>\n<td>Yes if the type is <strong>image</strong>.</td>\n</tr>\n<tr>\n<td>link</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using an uploaded media ID. The file types are image/jpeg, and image/png. Max 5 MB.</td>\n<td>String</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using a link.</td>\n<td>URL</td>\n<td>Yes is there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image, document, or video media. Do not use with audio or sticker media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>audio</td>\n<td>-</td>\n<td>Object</td>\n<td>Yes if the type is <strong>audio</strong>.</td>\n</tr>\n<tr>\n<td>link</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using an uploaded media ID. The file types are audio/mp4, audio/mpeg, audio/amr, audio/ogg. Max 16 MB.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using a link.</td>\n<td>URL</td>\n<td>Yes is there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>document</td>\n<td>-</td>\n<td>Object</td>\n<td>Yes is the type is <strong>document</strong>.</td>\n</tr>\n<tr>\n<td>link</td>\n<td>Required when type is audio, document, image, sticker, or video and you are not using an uploaded media ID. The File Types are:<br /><br />- text/plain, <br />    <br />- application/pdf, <br />    <br />- application/vnd.ms-powerpoint, <br />    <br />- application/msword, <br />    <br />- application/vnd.ms-excel,<br />    <br />- application/vnd.openxmlformats-officedocument.wordprocessingml.document,<br />    <br />- application/vnd.openxmlformats-officedocument.presentationml.presentation,<br />    <br />- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet<br />    <br /><br />Max 100 MB.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Required when the type is audio, document, image, sticker, or video and you are not using a link.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image, document, or video media. Do not use with audio or sticker media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filename</td>\n<td>Describes the filename for the specific document. Use only with document media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>video</td>\n<td>-</td>\n<td>Object</td>\n<td>Yes if the type is <strong>video</strong>.</td>\n</tr>\n<tr>\n<td>link</td>\n<td>Required when type is audio, document, image, sticker, or video and you are not using an uploaded media ID. File Types are video/mp4, video/3gp. Max 16 MB.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>id</strong>.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Required when type is audio, document, image, sticker, or video and you are not using a link.</td>\n<td>URL</td>\n<td>Yes if there is no <strong>link</strong>.</td>\n</tr>\n<tr>\n<td>caption</td>\n<td>Describes the specified image, document, or video media. Do not use with audio or sticker media.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>body</td>\n<td>The body object contains the following field: <strong>textstring</strong> – Required if the body is present. The content of the message. Emojis and markdowns are supported. Maximum length: 1024 characters.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>text</td>\n<td>The content of the message.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>action</td>\n<td>-</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>buttons</td>\n<td>You can use Min:1, and Max:3 buttons.</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Must be “reply” for this message type.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>reply</td>\n<td>-</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Id of the button.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Title of the button</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://whatsapp.useinsider.com/v1/conversational/send' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.**************************' \\\n--data '{\n    \"messages\": [\n        {\n            \"phoneNumber\": \"+1**********\",\n            \"message\": {\n                \"type\": \"interactive\",\n                \"interactive\": {\n                    \"type\": \"button\",\n                    \"header\": {\n                        \"type\": \"text\",\n                        \"text\": \"HEADER_TEXT\"\n                    },\n                    \"body\": {\n                        \"text\": \"BUTTON_TEXT\"\n                    },\n                    \"action\": {\n                        \"buttons\": [\n                            {\n                                \"type\": \"reply\",\n                                \"reply\": {\n                                    \"id\": \"UNIQUE_BUTTON_ID_1\",\n                                    \"title\": \"BUTTON_TITLE_1\"\n                                }\n                            },\n                            {\n                                \"type\": \"reply\",\n                                \"reply\": {\n                                    \"id\": \"UNIQUE_BUTTON_ID_2\",\n                                    \"title\": \"BUTTON_TITLE_2\"\n                                }\n                            }\n                        ]\n                    }\n                }\n            }\n        }\n    ]\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<p>One key information will be returned for each message to be sent. This key will be added to all events related to the message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-*************************\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only new WhatsApp messages can be sent via this API. No data can be retrieved.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The rate limit is <strong>10 requests per second</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","conversational","send"],"host":["whatsapp","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"dec30b4b-3dfc-4a11-941f-aaa055264af9"},{"name":"Send Conversational WhatsApp Messages with OAuth 2.0","id":"cea9d131-42d5-4abb-b9be-833a64e90c65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"from\": \"+111111111\",\n  \"messages\": [\n    {\n      \"phone_number\": \"+1234567890\",\n      \"user_id\": \"user-uuid-123\",\n      \"message\": {\n        \"type\": \"text\",\n        \"text\": {\n          \"body\": \"Hello! How can I help you?\",\n          \"preview_url\": false\n        }\n      }\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://gw.useinsider.com/api/wa/v2/conversational/messages/send","description":"<p>WhatsApp Transactional API v2 is a REST API that enables your systems to send conversational messages through the WhatsApp Business Platform.</p>\n<blockquote>\n</blockquote>\n<p>To send conversational WhatsApp messages using <strong>OAuth 2.0</strong>, you must first generate an <strong>OAuth 2.0 credential</strong>. For step-by-step instructions, refer to <a href=\"https://academy.insiderone.com/\">OAuth 2.0 Credentials</a>.</p>\n<blockquote>\n</blockquote>\n<p>Before sending Conversational WhatsApp template messages, make sure you create your template in InOne first. Refer to <a href=\"https://academy.insiderone.com/v1/docs/create-a-whatsapp-business-standard-template-on-inone\">Create a WhatsApp Business Standard Template on InOne</a> for step-by-step guidance.</p>\n<p>Refer to the visual below for an example of how a conversational WhatsApp template message is displayed.  </p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/image-4HMMKA9C.png\" />\n\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>Use the request below to send conversational messages via WhatsApp. In addition to templates, message types such as text and media can be sent.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"from\": \"+111111111\",\n  \"messages\": [\n    {\n      \"phone_number\": \"+1234567890\",\n      \"user_id\": \"user-uuid-123\",\n      \"message\": {\n        \"type\": \"text\",\n        \"text\": {\n          \"body\": \"Hello! How can I help you?\",\n          \"preview_url\": false\n        }\n      }\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<p>This endpoint shares the same parameters as the <a href=\"https://academy.insiderone.com/v1/docs/send-transactional-whatsapp-messages-with-oauth-20\">Transactional WhatsApp Messages with OAuth 2.0</a>. The primary distinction is that conversational message types, such as text, image, video, document, audio, location, and interactive, are available for the <code>message.type</code> field.</p>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>This code indicates that the request has been completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"keys\": [\n        \"whatsapp-660e8400-e29b-41d4-a716-446655440001\"]\n}\n\n</code></pre>\n<h4 id=\"error-codes\">Error Codes</h4>\n<p>These endpoints return the same error codes as the <a href=\"https://academy.insiderone.com/v1/docs/send-transactional-whatsapp-messages-with-oauth-20#sample-responses\">Transactional WhatsApp Messages with OAuth 2.0</a> (2001, 2002, 2003).</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>HTTP Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2001</td>\n<td>400</td>\n<td>The request body could not be decoded.</td>\n</tr>\n<tr>\n<td>2002</td>\n<td>400</td>\n<td>The request body failed validation.</td>\n</tr>\n<tr>\n<td>2003</td>\n<td>400</td>\n<td>The message could not be sent due to a provider error or an internal system issue.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"media-operation-errors\">Media Operation Errors</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>HTTP Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2017</td>\n<td>400</td>\n<td>Provider not found or upload error</td>\n</tr>\n<tr>\n<td>2018</td>\n<td>400</td>\n<td>Error retrieving media information</td>\n</tr>\n<tr>\n<td>2019</td>\n<td>400</td>\n<td>Media download error</td>\n</tr>\n<tr>\n<td>INVALID_FILE</td>\n<td>400</td>\n<td>Invalid file or file could not be read</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"system-errors\">System Errors</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>HTTP Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>503 Service Unavailable</td>\n<td>The system is currently in maintenance mode</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","wa","v2","conversational","messages","send"],"host":["gw","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Sender’s WhatsApp phone number (in E.164 format)</p>\n","type":"text/plain"},"key":"from","value":null},{"disabled":true,"description":{"content":"<p>List of messages to be sent (minimum 1 message)</p>\n","type":"text/plain"},"key":"messages","value":null},{"disabled":true,"description":{"content":"<p>URL shortening settings</p>\n","type":"text/plain"},"key":"url_shortener_config","value":null},{"disabled":true,"description":{"content":"<p>Enable/disable URL shortening</p>\n","type":"text/plain"},"key":"url_shortener_config.status","value":null},{"disabled":true,"description":{"content":"<p>Domain name for shortening</p>\n","type":"text/plain"},"key":"url_shortener_config.domain","value":null},{"disabled":true,"description":{"content":"<p>Custom parameters (key–value map)</p>\n","type":"text/plain"},"key":"unique_args","value":null},{"disabled":true,"description":{"content":"<p>Remove tracking parameters</p>\n","type":"text/plain"},"key":"remove_tracking_params","value":null}],"variable":[]}},"response":[],"_postman_id":"cea9d131-42d5-4abb-b9be-833a64e90c65"},{"name":"Update Conversational WhatsApp Webhook Settings with OAuth 2.0","id":"61ac4b66-fde2-4c49-aa61-71df8f818fd1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://gw.useinsider.com/api/wa/v2/conversational/settings","description":"<p>This endpoint helps you update the webhook URL and other relevant settings for conversational messages.</p>\n<p>The system supports two grant types for OAuth2 authentication:</p>\n<ul>\n<li><p><strong>grant_type</strong>: <code>client_credentials</code></p>\n</li>\n<li><p><strong>grant_type</strong>: <code>refresh_token</code></p>\n</li>\n</ul>\n<h2 id=\"client-credentials-request\">Client Credentials Request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://gw.useinsider.com/api/wa/v2/conversational/settings\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer your_access_token\" \\\n  -d '{\n    \"webhook_url\": \"https://partner.example.com/webhooks/conversational\",\n    \"from\": \"+1234567890\",\n    \"auth_type\": \"oauth2\",\n    \"oauth2\": {\n      \"grant_type\": \"client_credentials\",\n      \"token_url\": \"https://oauth.partner.com/oauth/token\",\n      \"client_id\": \"your_client_id\",\n      \"client_secret\": \"your_client_secret\",\n      \"scopes\": [\n        \"webhook.write\"\n      ],\n      \"expires_in\": 3600\n    }\n  }'\n\n</code></pre>\n<h2 id=\"refresh-token-request\">Refresh Token Request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://gw.useinsider.com/api/wa/v2/conversational/settings\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer your_access_token\" \\\n  -d '{\n    \"webhook_url\": \"https://partner.example.com/webhooks/conversational\",\n    \"from\": \"+1234567890\",\n    \"auth_type\": \"oauth2\",\n    \"oauth2\": {\n      \"grant_type\": \"refresh_token\",\n      \"token_url\": \"https://oauth.partner.com/oauth/token\",\n      \"client_id\": \"your_client_id\",\n      \"client_secret\": \"your_client_secret\",\n      \"refresh_token\": \"your_refresh_token\",\n      \"scopes\": [\n        \"webhook.write\"\n      ],\n      \"expires_in\": 3600\n    }\n  }'\n\n</code></pre>\n<h3 id=\"error-codes\">Error Codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>HTTP Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2010</td>\n<td>400</td>\n<td>The settings request body could not be decoded.</td>\n</tr>\n<tr>\n<td>2011</td>\n<td>400</td>\n<td>The settings request body failed validation.</td>\n</tr>\n<tr>\n<td>2012</td>\n<td>400</td>\n<td>An error occurred while saving the settings.</td>\n</tr>\n<tr>\n<td>2020</td>\n<td>400</td>\n<td>The webhook URL failed validation.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","wa","v2","conversational","settings"],"host":["gw","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"61ac4b66-fde2-4c49-aa61-71df8f818fd1"}],"id":"6e96d4ae-cd24-42fe-ae55-5d3c2d410f0c","description":"<p>The WhatsApp Marketing tool enables interactive messaging, allowing users to engage with businesses after the initial message. To ensure a seamless experience, businesses can integrate a bot to respond to WhatsApp messages. WhatsApp Conversational further enhances this by offering powerful two-way conversational messaging focused on end-to-end shopping experiences.</p>\n<p>Brands and retailers can use templates like product catalogs for browsing, category lists for product discovery, and detailed description cards for completing purchases, providing a comprehensive and engaging shopping experience through WhatsApp.</p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/capislide.png\" />\n\n<p>You can refer to the image below to better understand how the system works:</p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/api-call.png\" />","_postman_id":"6e96d4ae-cd24-42fe-ae55-5d3c2d410f0c"},{"name":"OTP for WhatsApp","item":[{"name":"Create a channel","id":"eb65bec0-0cb5-4d5a-9185-57c3b3ed3939","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"channel\": \"whatsapp\"\n}"},"url":"https://verify.useinsider.com/v1/channel/create","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the WhatsApp channel. In this regard, to send OTP codes, you must create a channel for your brand for once.</p>\n<p>This API key is sensitive and should never be used on the frontend or mobile SDK; it should only be implemented on the backend.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>Channel that you will send the OTP code. It will be WhatsApp.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:whatsapp</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://verify.useinsider.com/v1/channel/create' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************' \\\n--data '{\n    \"channel\": \"whatsapp\"\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"201-created\">201 Created</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"this field must be one of these:whatsapp\",\n            \"field\": \"channel\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"channel already exists\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error-1\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The service is subject to a rate limit of <strong>100 requests per second</strong> to ensure optimal system performance, and clients exceeding this limit will receive an HTTP <strong>429 Too Many Requests</strong> response.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","channel","create"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"eb65bec0-0cb5-4d5a-9185-57c3b3ed3939"},{"name":"Create an OTP Template","id":"5bf76c72-7370-45a0-b289-ca55f2a2a715","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"channel\": \"whatsapp\",\n    \"locale\": \"tr\",\n    \"templateName\": \"otp_template\"\n}","options":{"raw":{"language":"json"}}},"url":"https://verify.useinsider.com/v1/template/create","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the WhatsApp channel. Ensure that the provided template name exists and corresponds to the authentication template name you created through your WhatsApp Business Account.</p>\n<p>After you <a href=\"https://academy.useinsider.com/v1/docs/create-a-channel-whatsapp-otp\">create a channel</a> for your brand, you can create OTP templates.</p>\n<p>This API key is sensitive and should never be used on the frontend or mobile SDK; it should only be implemented on the backend.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>Channel that you will send the OTP code. It will be WhatsApp.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:whatsapp</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>Determines the language/locale in which the OTP code message will be sent.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:pt af sq ar az bn bg ca zh_CN zh_HK zh_TW hr cs da nl en en_GB en_US et fil fi fr ka de el gu ha he hi hu id ga it ja kn kk rw_RW ko ky_KG lo lv lt mk ms ml mr nb fa pl pt_BR pt_PT pa ro ru sr sk sl es es_AR es_ES es_MX sw sv ta te th tr uk ur uz vi zu</td>\n</tr>\n<tr>\n<td>templateName</td>\n<td>The template name that will be inserted</td>\n<td>String</td>\n<td>Yes</td>\n<td>The template has to exist already.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'verify.useinsider.com/v1/template/create' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************' \\\n--data '{\n    \"channel\": \"whatsapp\",\n    \"locale\": \"tr\",\n    \"templateName\": \"otp_template\"\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"202-accepted\">202 Accepted</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"this field must be one of these:whatsapp\",\n            \"field\": \"text\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"409-conflict\">409 Conflict</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"no changes detected\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>For effective usage, create a <strong>dedicated template</strong> for <strong>each language</strong>.</p>\n</li>\n<li><p>The service is subject to a rate limit of <strong>100 requests per second</strong> to ensure optimal system performance, and clients exceeding this limit will receive an HTTP <strong>429 Too Many Requests</strong> response.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","template","create"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"5bf76c72-7370-45a0-b289-ca55f2a2a715"},{"name":"Update OTP Templates","id":"f39f862b-7cf9-4eea-a508-1f741922b12e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"url":"https://verify.useinsider.com/v1/template/list","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the WhatsApp channel.</p>\n<p>After you create a channel for your brand, you can list its templates later.</p>\n<p>This API key is sensitive and should never be used on the frontend or mobile SDK; it should only be implemented on the backend.</p>\n<h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'verify.useinsider.com/v1/template/list' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"templates\": {\n        \"whatsapp\": [\n            {\n                \"locale\": \"en\",\n                \"text\": \"\",\n                \"templateName\": \"sample_otp_template_1\"\n            },\n            {\n                \"locale\": \"tr\",\n                \"text\": \"\",\n                \"templateName\": \"sample_otp_template_2\"\n            }\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The service is subject to a rate limit of <strong>100 requests per second</strong> to ensure optimal system performance, and clients exceeding this limit will receive an HTTP <strong>429 Too Many Requests</strong> response.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","template","list"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"f39f862b-7cf9-4eea-a508-1f741922b12e"},{"name":"List OTP templates","id":"b032e139-a5f7-4872-b55d-2bdf7d692ea1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"url":"https://verify.useinsider.com/v1/template/list","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the WhatsApp channel.</p>\n<p>After you create a channel for your brand, you can list its templates later.</p>\n<p>This API key is sensitive and should never be used on the frontend or mobile SDK; it should only be implemented on the backend.</p>\n<h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'verify.useinsider.com/v1/template/list' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"templates\": {\n        \"whatsapp\": [\n            {\n                \"locale\": \"en\",\n                \"text\": \"\",\n                \"templateName\": \"sample_otp_template_1\"\n            },\n            {\n                \"locale\": \"tr\",\n                \"text\": \"\",\n                \"templateName\": \"sample_otp_template_2\"\n            }\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The service is subject to a rate limit of <strong>100 requests per second</strong> to ensure optimal system performance, and clients exceeding this limit will receive an HTTP <strong>429 Too Many Requests</strong> response.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","template","list"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"b032e139-a5f7-4872-b55d-2bdf7d692ea1"},{"name":"Generate OTP codes","id":"d8b4b4f5-dff5-4b90-88e4-eb574f297d17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"channel\": \"whatsapp\",\n    \"locale\": \"tr\",\n    \"to\": \"+905XXXXXXXXX\",\n    \"ttl\": 600\n}"},"url":"https://verify.useinsider.com/v1/generate","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the WhatsApp channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.</p>\n<p>After you create your channel for your brand and update the templates, you need to perform the generate action for your OTP.</p>\n<p>This API key is sensitive and should never be used on the frontend or mobile SDK; it should only be implemented on the backend.</p>\n<h2 id=\"body-parameters\">Body Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>Channel that you will send the OTP code.</td>\n<td>String</td>\n<td>Yes</td>\n<td>oneof:whatsapp</td>\n</tr>\n<tr>\n<td>to</td>\n<td>Specifies the destination phone number in E.164 format to which the OTP code will be sent.</td>\n<td>String</td>\n<td>Yes</td>\n<td>e164</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>Determines the language/locale in which the OTP code message will be sent.</td>\n<td>String</td>\n<td>No (Default: en)</td>\n<td>oneof:pt af sq ar az bn bg ca zh_CN zh_HK zh_TW hr cs da nl en en_GB en_US et fil fi fr ka de el gu ha he hi hu id ga it ja kn kk rw_RW ko ky_KG lo lv lt mk ms ml mr nb fa pl pt_BR pt_PT pa ro ru sr sk sl es es_AR es_ES es_MX sw sv ta te th tr uk ur uz vi zu</td>\n</tr>\n<tr>\n<td>ttl</td>\n<td>Specifies the Time-To-Live (TTL) duration for the OTP code, i.e., the time window within which the OTP code is valid. Measured in seconds.</td>\n<td>Integer</td>\n<td>No (Default: 180)</td>\n<td>min:60 max:600</td>\n</tr>\n<tr>\n<td>code-length</td>\n<td>Specifies the length of the OTP code to be generated. The code length must be between 4 and 8 digits.</td>\n<td>Integer</td>\n<td>No (Default: 4)</td>\n<td>min:4 max:8</td>\n</tr>\n<tr>\n<td>custom-code</td>\n<td>If provided, allows you to specify a custom OTP code instead of generating one.</td>\n<td>Integer</td>\n<td>No</td>\n<td>min:1000 max:99999999</td>\n</tr>\n<tr>\n<td>max-attempts</td>\n<td>Sets the maximum number of allowed OTP verification attempts. If the verification fails after reaching this limit, further attempts might be denied.</td>\n<td>Integer</td>\n<td>No (Default: 3)</td>\n<td>min:1 max:10</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://verify.useinsider.com/v1/generate' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************' \\\n--data '{\n    \"channel\": \"whatsapp\",\n    \"locale\": \"tr\",\n    \"to\": \"+905XXXXXXXXX\",\n    \"ttl\": 600\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"202-accepted\">202 Accepted</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"key\": \"whatsapp-12345\",\n    \"channel\": \"whatsapp\",\n    \"dateCreated\": \"2023-07-28T14:40:41Z\",\n    \"dateUpdated\": \"2023-07-28T14:40:41Z\",\n    \"locale\": \"en\",\n    \"maxAttempts\": 3,\n    \"ttl\": 180\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"this field is required\",\n            \"field\": \"text\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The service is subject to a rate limit of <strong>100 requests per second</strong> to ensure optimal system performance, and clients exceeding this limit will receive an HTTP <strong>429 Too Many Requests</strong> response.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","generate"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d8b4b4f5-dff5-4b90-88e4-eb574f297d17"},{"name":"Verify OTP codes","id":"ac651391-447f-491b-901b-06b452701243","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"INS.**************************","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"to\": \"+905XXXXXXXXX\",\n    \"code\": 1234\n}"},"url":"https://verify.useinsider.com/v1/check","description":"<p>The Verify API enables you to generate, send, and verify OTP codes for the WhatsApp channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your websites or apps, you can trigger it on login pages, payment pages, and more.</p>\n<p>After you create your channel for your brand and update the templates, you need to perform the verification action for your OTP.</p>\n<p>This API key is sensitive and should never be used on the frontend or mobile SDK; it should only be implemented on the backend.</p>\n<h2 id=\"body-parameters\">Body Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>to</td>\n<td>Specifies the destination phone number in E.164 format to which the OTP code will be sent.</td>\n<td>String</td>\n<td>Yes</td>\n<td>e164</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Represents the OTP code provided for verification. The code length must be between 4 and 8 digits.</td>\n<td>Integer</td>\n<td>No (Default: 4)</td>\n<td>min:4 max:8</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.</p>\n<p>Make sure to replace the sample values in the request header(s) and body where required before sending your request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'verify.useinsider.com/v1/check' \\\n--header 'Content-Type: application/json' \\\n--header 'x-ins-auth-key: INS.************************' \\\n--data '{\n    \"to\": \"+905XXXXXXXXX\",\n    \"code\": 1234\n}'\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"202-accepted\">202 Accepted</h4>\n<p>This response indicates that your request was successfully completed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\"\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid request payload\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"422-unauthorized\">422 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"invalid code\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"unauthorized\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"404-not-found\">404 Not found</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"code not found\",\n            \"field\": \"code\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests\">429 Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"rate limit exceeded\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"429-too-many-requests-1\">429 Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"maximum attempts exceeded\",\n            \"field\": \"code\"\n        }\n    ]\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"message\": \"server error\"\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>The service is subject to a rate limit of <strong>10 requests per minute</strong> to ensure optimal system performance, and clients exceeding this limit will receive an HTTP <strong>429 Too Many Requests</strong> response.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","check"],"host":["verify","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ac651391-447f-491b-901b-06b452701243"}],"id":"bc0cddde-1be4-47b2-b7b2-5b5d201efeae","_postman_id":"bc0cddde-1be4-47b2-b7b2-5b5d201efeae","description":""}],"id":"16e54f61-723c-4698-8149-24a4f3a544d7","_postman_id":"16e54f61-723c-4698-8149-24a4f3a544d7","description":""}],"id":"e18cfc18-442f-47c3-b64c-3371a6e40ab8","description":"<p>Messaging APIs allow you to create and send Email, Web Push, App Push, and SMS campaigns from your back-end without using Insider's panel Inone.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API</strong></th>\n<th><strong>Function</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#e3871fa8-8c1a-4379-b95b-04ed0fd2d90f\">Send transactional emails</a></td>\n<td>You can send targeted ecommerce and personalized one-to-one emails to your users.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#cd3390b7-fb94-47a1-a157-64f231cb7558\">Create email campaigns</a></td>\n<td>You can send email body and subject from your back-end to create email campaigns on Insider platform.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#73e80725-2758-42fd-b35d-79d202251bd2\">Create bulk web pushes</a></td>\n<td>You can send bulk web push notifications from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#3f415a66-cd19-4f9a-97d2-429e98bba97e\">Delete bulk web pushes</a></td>\n<td>You can delete bulk web push notifications from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#c61d9c9f-3ee8-48eb-bec2-9a0644276bb2\">Launch bulk web pushes</a></td>\n<td>You can launch bulk web push notifications from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#6d246a5c-6791-436a-a6ff-a412d698e4f0\">Create targeted web pushes</a></td>\n<td>You can send targeted web push notifications from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#4a17cfcf-bef9-49bb-a80b-083959619218\">Delete targeted web pushes</a></td>\n<td>You can delete targeted web push notifications from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#28d65000-466e-44f2-a1dc-902724cc8b24\">Launch targeted web pushes</a></td>\n<td>You can launch targeted web push notifications from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#92c21142-6606-4c04-9662-2657154b1ff1\">Send bulk app pushes</a></td>\n<td>You can send bulk app pushes to a predefined segment from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#09dc41c6-8deb-4793-9a92-74ae79ad49b4\">Send targeted app pushes</a></td>\n<td>You can send targeted app pushes from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#c029d9a3-ec08-4e45-bdac-c86f26fd1731\">Send advanced app pushes</a></td>\n<td>You can send advanced app pushes from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#f89381ab-ff8b-4097-bc7a-42305a82a423\">Get Message Center data</a></td>\n<td>You can get the app pushes delivered to a user.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"e18cfc18-442f-47c3-b64c-3371a6e40ab8"},{"name":"Catalog APIs","item":[{"name":"Add New Products in a Flat Format","id":"a59b2c74-4b7f-432b-b4c4-b0b300209e0c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"myPartnerName","description":"<p>This is your partner name. Navigate to InOne &gt; Inone Settings &gt; Account Settings to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your Catalog API token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"[\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n        \"brand\": \"Velox\",\n        \"color\": \"White\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"price\": { \"USD\": 129.99 },\n        \"original_price\": { \"USD\": 149.99 },\n        \"in_stock\": 1,\n        \"stock_count\": 50\n        },\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US:newyork\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n        \"brand\": \"Velox\",\n        \"color\": \"White\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"price\": { \"USD\": 119.99 },\n        \"original_price\": { \"USD\": 149.99 },\n        \"in_stock\": 1,\n        \"stock_count\": 12\n        },\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US:losangeles\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n        \"brand\": \"Velox\",\n        \"color\": \"White\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"price\": { \"USD\": 129.99 },\n        \"original_price\": { \"USD\": 149.99 },\n        \"in_stock\": 0,\n        \"stock_count\": 0\n        },\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"pt_BR\",\n        \"name\": \"Velocity Runner Pro - Branco\",\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"category\": [\"Calçados\", \"Corrida\", \"Velox\"],\n        \"brand\": \"Velox\",\n        \"color\": \"White\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"price\": { \"BRL\": 899.90 },\n        \"original_price\": { \"BRL\": 999.90 },\n        \"in_stock\": 1,\n        \"stock_count\": 30\n        }\n        ]","options":{"raw":{"language":"json"}}},"url":"https://catalog.api.useinsider.com/v2/ingest","description":"<p>The Catalog API allows you to insert new products in a flat format into your <a href=\"https://academy.insiderone.com/docs/product-catalog\">product catalog</a>. It creates new product records. If a product with the same item_id + locale already exists, it will be overwritten.</p>\n<h3 id=\"endpoint-and-headers\">Endpoint and Headers</h3>\n<p><strong>POST</strong> <a href=\"https://catalog.api.useinsider.com/v2/ingest\">https://catalog.api.useinsider.com/v2/ingest</a></p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<h4 id=\"default-product-attributes\">Default Product Attributes</h4>\n<p>The following product fields should be sent as parameters in the object, along with their field name and data type, as stated. If any required fields are not sent through the Catalog API, the product is not updated or inserted.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Name</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>item_id</td>\n<td>Unique product identifier. Max 128 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>ISO locale code (e.g., en_US, pt_BR). Max 64 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Product name. Max 512 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Product page URL. Must include protocol (e.g., https://). Max 512 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>Product image URL. Must start with http://, https://, or //.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>price</td>\n<td>Current selling price per currency. e.g., {\"USD\": 100, \"BRL\": 500}.</td>\n<td>Object</td>\n<td>Required for Stock &amp; Revenue Feed Management Type</td>\n</tr>\n<tr>\n<td>original_price</td>\n<td>Original/list price per currency. Same structure as price.</td>\n<td>Object</td>\n<td>Required for Stock &amp; Revenue Feed Management Type</td>\n</tr>\n<tr>\n<td>omnibus_price</td>\n<td>Omnibus directive price per currency. Same structure as price.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>in_stock</td>\n<td>1 = in stock, 0 = out of stock.</td>\n<td>Number</td>\n<td>Required for Stock &amp; Revenue and Availability Feed Management Types</td>\n</tr>\n<tr>\n<td>stock_count</td>\n<td>Available quantity. Must be &gt;= 0.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>item_update_date</td>\n<td>Last update timestamp. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>Required for Published Time Feed Management Type</td>\n</tr>\n<tr>\n<td>item_start_date</td>\n<td>Availability start date. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>Required for Start &amp; End Time Feed Management Type</td>\n</tr>\n<tr>\n<td>item_end_date</td>\n<td>Availability end date. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>Required for Start &amp; End Time Feed Management Type</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Product description. Max 1024 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>brand</td>\n<td>Brand name. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sku</td>\n<td>Stock keeping unit. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>color</td>\n<td>Product color. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>Product size. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>Gender classification. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>category</td>\n<td>Category as an array</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>tags</td>\n<td>Product tags</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupcode</td>\n<td>Product group identifier</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>variants</td>\n<td>Product variants. Max 512 characters per item.</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>rating</td>\n<td>Product rating, 0–10</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>product_attributes</td>\n<td>Custom attributes defined in your account.</td>\n<td>Object {key:value}</td>\n<td>No</td>\n</tr>\n<tr>\n<td>is_status_passive</td>\n<td>1 = passive/hidden in Smart Recommender and Eureka results, 0 = active.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"custom-product-attributes\">Custom Product Attributes</h4>\n<p>Custom Product Attributes allow you to define additional details specific to your business. These attributes enrich your catalog with data that supports your unique use cases, personalization logic, and recommendation filters.</p>\n<p>Before sending Custom Product Attributes in your payload, you must <a href=\"https://academy.insiderone.com/docs/product-attributes-overview#custom-product-attributes\">define</a> them in your account.</p>\n<p>If a <strong>Default Product Attribute</strong> already exists for the information you want to include, use the default one instead of creating a custom one. This keeps your catalog structure consistent.</p>\n<p>Custom attributes are sent inside the product_attributes object:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"product_attributes\": {\n        \"material_type\": \"Leather\",\n        \"season\": \"Winter\",\n        \"eco_friendly\": true,\n        \"collection\": \"Winter Collection 2025\",\n        \"delivery_type\": \"Express\"\n        }\n\n</code></pre>\n<h4 id=\"feed-management-types\">Feed Management Types</h4>\n<p>Your feed management type determines which pricing and stock attributes are required.</p>\n<h5 id=\"stock-and-revenue-based-feed-management-type\">Stock and Revenue Based Feed Management Type</h5>\n<p>The Stock and Revenue Based Feed Management Type is the most common type. It requires pricing and stock information.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"velocity-runner-pro-white\",\n      \"locale\": \"en_US\",\n      \"name\": \"Velocity Runner Pro - White\",\n      \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n      \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n      \"brand\": \"Velox\",\n      \"price\": { \"USD\": 129.99 },\n      \"original_price\": { \"USD\": 149.99 },\n      \"in_stock\": 1\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"availability-based-feed-management-type\">Availability Based Feed Management Type</h5>\n<p>For the Availability Based Feed Management Type, only the stock status is required. Pricing is optional.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"velocity-runner-pro-white\",\n      \"locale\": \"en_US\",\n      \"name\": \"Velocity Runner Pro - White\",\n      \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n      \"in_stock\": 1\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"published-time-based-feed-management-type\">Published Time Based Feed Management Type</h5>\n<p>The Published Time Based Feed Management Type requires an update timestamp instead of pricing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"blog-top-running-shoes-2025\",\n      \"locale\": \"en_US\",\n      \"name\": \"Top 10 Running Shoes for 2025\",\n      \"url\": \"https://www.example-insiderone.com/blog/top-running-shoes-2025\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/blog/running-shoes-2025.jpg\",\n      \"item_update_date\": \"2025-01-15 10:30:00\"\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"start--end-time-based-feed-management-type\">Start &amp; End Time Based Feed Management Type</h5>\n<p>The Start &amp; End Time Based Feed Management Type requires date range attributes for time-bound content.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"promo-summer-clearance-2025\",\n      \"locale\": \"en_US\",\n      \"name\": \"Summer Clearance Sale - Up to 50% Off\",\n      \"url\": \"https://www.example-insiderone.com/campaigns/summer-clearance-2025\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/campaigns/summer-clearance.jpg\",\n      \"item_start_date\": \"2025-06-01 00:00:00\",\n      \"item_end_date\": \"2025-08-31 23:59:59\"\n    }\n  ]'\n\n</code></pre>\n<h4 id=\"product-availability-by-feed-management-type\">Product Availability by Feed Management Type</h4>\n<p>A product is considered <strong>available</strong> based on criteria that vary by feed management type:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Feed Type</th>\n<th>Availability Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Stock &amp; Revenue Based</td>\n<td>in_stock must be 1</td>\n</tr>\n<tr>\n<td>Availability Based</td>\n<td>in_stock must be 1</td>\n</tr>\n<tr>\n<td>Published Time Based</td>\n<td>item_update_date must be within the last 2 days (<em>default 2 days, adjustable in Smart Recommender campaigns)</em></td>\n</tr>\n<tr>\n<td>Start &amp; End Time Based</td>\n<td>item_end_date must not be in the past</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"currencies\">Currencies</h5>\n<p>Pricing attributes accept an object mapping currency codes to amounts. You can include multiple currencies in a single record.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"price\": {\n    \"USD\": 129.99,\n    \"EUR\": 119.99,\n    \"GBP\": 104.99,\n    \"BRL\": 899.90\n  },\n  \"original_price\": {\n    \"USD\": 149.99,\n    \"EUR\": 139.99,\n    \"GBP\": 119.99,\n    \"BRL\": 999.90\n  }\n}\n\n</code></pre>\n<h5 id=\"categories\">Categories</h5>\n<p>The category attribute accepts an array of strings. How the array is interpreted depends on your account's category type, which is configured <a href=\"https://academy.insiderone.com/docs/product-catalog-data-planning\">during onboarding</a>. You must choose one of the two types:</p>\n<ul>\n<li><strong>Hierarchical Category Type</strong></li>\n</ul>\n<p>Use this if your categories follow a parent-child structure, with subcategories nested under broader categories. Each element in the array represents a level in the hierarchy, ordered from broadest to most specific.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"category\": [\"Clothing\", \"Men\", \"Shirts\", \"Casual Shirts\"]\n}\n\n</code></pre>\n<p>This creates the hierarchy: Clothing → Men → Shirts → Casual Shirts.</p>\n<p>The order matters; the first element is the top-level category and each subsequent element is a child of the previous one.</p>\n<ul>\n<li><strong>Flat Category Type</strong></li>\n</ul>\n<p>Use this if your categories are independent and don't follow a parent-child hierarchy. Each element is a standalone category label at the same level.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"category\": [\"Men's Shirts\", \"Women's Dresses\", \"Kids' Shoes\"]\n}\n\n</code></pre>\n<p>In flat mode, all categories are treated equally; there is no implied nesting or ordering relationship between elements.</p>\n<p><strong>Limits:</strong></p>\n<ul>\n<li><p>Combined length of all category elements: max <strong>1024 characters</strong></p>\n</li>\n<li><p>Each element: max <strong>512 characters</strong></p>\n</li>\n</ul>\n<h5 id=\"tags--merchandising\">Tags &amp; Merchandising</h5>\n<p>Tags are used for product grouping and merchandising rules within the Insider One platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"tags\": [\"new-arrival\", \"bestseller\", \"summer-collection\", \"free-shipping\"]\n}\n\n</code></pre>\n<p>You can use tags to:</p>\n<ul>\n<li><p>Create product segments for personalization</p>\n</li>\n<li><p>Trigger merchandising rules</p>\n</li>\n<li><p>Filter products in recommendation widgets</p>\n</li>\n<li><p>Define campaign audiences</p>\n</li>\n</ul>\n<p><strong>Limits:</strong></p>\n<ul>\n<li><p>Combined length of all tags: max <strong>4096 characters</strong></p>\n</li>\n<li><p>Each tag: max <strong>512 characters</strong></p>\n</li>\n</ul>\n<h5 id=\"group-code\">Group Code</h5>\n<p>The groupcode attribute links product variants together as a single product group. Products sharing the same groupcode are treated as variations of the same product (e.g., different sizes or colors).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"item_id\": \"velocity-runner-pro-white\",\n    \"groupcode\": \"velocity-runner-pro\",\n    \"color\": \"White\",\n    \"size\": \"10\"\n  },\n  {\n    \"item_id\": \"velocity-runner-pro-black\",\n    \"groupcode\": \"velocity-runner-pro\",\n    \"color\": \"Black\",\n    \"size\": \"10\"\n  }\n]\n\n</code></pre>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to insert new products into the catalog using a flat format. Each <strong>product</strong> is a separate JSON object with all fields inline. Every <strong>locale/store</strong> combination is a separate object.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n        -H \"Content-Type: application/json\" \\\n        -H \"X-PARTNER-NAME: yourPartnerName\" \\\n        -H \"X-REQUEST-TOKEN: your-api-token\" \\\n        -d '[\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n        \"brand\": \"Velox\",\n        \"color\": \"White\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"price\": { \"USD\": 129.99 },\n        \"original_price\": { \"USD\": 149.99 },\n        \"in_stock\": 1,\n        \"stock_count\": 50\n        },\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US:newyork\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n        \"brand\": \"Velox\",\n        \"color\": \"White\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"price\": { \"USD\": 119.99 },\n        \"original_price\": { \"USD\": 149.99 },\n        \"in_stock\": 1,\n        \"stock_count\": 12\n        },\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US:losangeles\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n        \"brand\": \"Velox\",\n        \"color\": \"White\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"price\": { \"USD\": 129.99 },\n        \"original_price\": { \"USD\": 149.99 },\n        \"in_stock\": 0,\n        \"stock_count\": 0\n        },\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"pt_BR\",\n        \"name\": \"Velocity Runner Pro - Branco\",\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"category\": [\"Calçados\", \"Corrida\", \"Velox\"],\n        \"brand\": \"Velox\",\n        \"color\": \"White\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"price\": { \"BRL\": 899.90 },\n        \"original_price\": { \"BRL\": 999.90 },\n        \"in_stock\": 1,\n        \"stock_count\": 30\n        }\n        ]'\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<p>All ingest endpoints return the same response structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"success\": true,\n        \"message\": {\n        \"valid\": {\n        \"count\": 95\n        },\n        \"invalid\": {\n        \"count\": 5,\n        \"details\": [\n        {\n        \"field\": \"original_price\",\n        \"message\": \"Field is invalidated: 'original_price' is required\",\n        \"count\": 2,\n        \"document_ids\": [\"item-1\", \"item-2\"]\n        },\n        {\n        \"field\": \"url\",\n        \"message\": \"Field is invalidated: 'url' must match pattern\",\n        \"count\": 3,\n        \"document_ids\": [\"item-3\", \"item-4\", \"item-5\"]\n        }\n        ]\n        },\n        \"warnings\": {\n        \"count\": 1,\n        \"details\": [\n        {\n        \"field\": \"image_url\",\n        \"message\": \"Image URL could not be validated\",\n        \"count\": 1,\n        \"document_ids\": [\"item-6\"]\n        }\n        ]\n        },\n        \"invalidRatio\": 0.05\n        }\n        }\n\n</code></pre>\n<blockquote>\n<p>Warnings are informational and do not prevent records from being processed. </p>\n</blockquote>\n<h3 id=\"limitations\">Limitations</h3>\n<p>For all the limits applied, refer to <a href=\"https://academy.insiderone.com/docs/product-catalog-api-introduction#limitations\">Limitations</a>.</p>\n","urlObject":{"protocol":"https","path":["v2","ingest"],"host":["catalog","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"a59b2c74-4b7f-432b-b4c4-b0b300209e0c"},{"name":"Add New Products in a Nested Format","id":"f7f838cf-3525-452a-968a-bdc06718516c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"myPartnerName","description":"<p>This is your partner name. Navigate to InOne &gt; Inone Settings &gt; Account Settings to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your Catalog API token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"[\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"base\": {\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"brand\": \"Velox\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"color\": \"White\"\n        },\n        \"locales\": {\n        \"en_US\": {\n        \"name\": \"Velocity Runner Pro - White\",\n        \"category\": [\n        \"Shoes\",\n        \"Running\",\n        \"Velox\"\n        ],\n        \"price\": {\n        \"USD\": 129.99\n        },\n        \"original_price\": {\n        \"USD\": 149.99\n        },\n        \"stores\": {\n        \"main\": {\n        \"in_stock\": 1,\n        \"stock_count\": 50\n        },\n        \"newyork\": {\n        \"price\": {\n        \"USD\": 119.99\n        },\n        \"in_stock\": 1,\n        \"stock_count\": 12\n        },\n        \"losangeles\": {\n        \"in_stock\": 0,\n        \"stock_count\": 0\n        }\n        }\n        },\n        \"pt_BR\": {\n        \"name\": \"Velocity Runner Pro - Branco\",\n        \"category\": [\n        \"Calçados\",\n        \"Corrida\",\n        \"Velox\"\n        ],\n        \"price\": {\n        \"BRL\": 899.90\n        },\n        \"original_price\": {\n        \"BRL\": 999.90\n        },\n        \"stores\": {\n        \"main\": {\n        \"in_stock\": 1,\n        \"stock_count\": 30\n        }\n        }\n        }\n        }\n        }\n        ]","options":{"raw":{"language":"json"}}},"url":"https://catalog.api.useinsider.com/v2/ingest/nested","description":"<p>The Catalog API allows you to insert new items into your <a href=\"https://academy.insiderone.com/docs/product-catalog\">product catalog</a> in a nested format. It creates new product records. If a product with the same item_id + locale already exists, it will be overwritten.</p>\n<h3 id=\"endpoint-and-headers\">Endpoint and Headers</h3>\n<p><strong>POST</strong> <a href=\"https://catalog.api.useinsider.com/v2/ingest\">https://catalog.api.useinsider.com/v2/ingest/nested</a></p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<h4 id=\"default-product-attributes\">Default Product Attributes</h4>\n<p>The following product fields should be sent as parameters in the object, along with their field name and data type, as stated. If any required fields are not sent through the Catalog API, the product is not updated or inserted.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Name</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>item_id</td>\n<td>Unique product identifier. Max 128 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>ISO locale code (e.g., en_US, pt_BR). Max 64 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Product name. Max 512 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Product page URL. Must include protocol (e.g., https://). Max 512 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>Product image URL. Must start with http://, https://, or //.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>price</td>\n<td>Current selling price per currency. e.g., {\"USD\": 100, \"BRL\": 500}.</td>\n<td>Object</td>\n<td>Required for Stock &amp; Revenue Feed Management Type</td>\n</tr>\n<tr>\n<td>original_price</td>\n<td>Original/list price per currency. Same structure as price.</td>\n<td>Object</td>\n<td>Required for Stock &amp; Revenue Feed Management Type</td>\n</tr>\n<tr>\n<td>omnibus_price</td>\n<td>Omnibus directive price per currency. Same structure as price.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>in_stock</td>\n<td>1 = in stock, 0 = out of stock.</td>\n<td>Number</td>\n<td>Required for Stock &amp; Revenue and Availability Feed Management Types</td>\n</tr>\n<tr>\n<td>stock_count</td>\n<td>Available quantity. Must be &gt;= 0.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>item_update_date</td>\n<td>Last update timestamp. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>Required for Published Time Feed Management Type</td>\n</tr>\n<tr>\n<td>item_start_date</td>\n<td>Availability start date. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>Required for Start &amp; End Time Feed Management Type</td>\n</tr>\n<tr>\n<td>item_end_date</td>\n<td>Availability end date. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>Required for Start &amp; End Time Feed Management Type</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Product description. Max 1024 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>brand</td>\n<td>Brand name. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sku</td>\n<td>Stock keeping unit. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>color</td>\n<td>Product color. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>Product size. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>Gender classification. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>category</td>\n<td>Category as an array</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>tags</td>\n<td>Product tags</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupcode</td>\n<td>Product group identifier</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>variants</td>\n<td>Product variants. Max 512 characters per item.</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>rating</td>\n<td>Product rating, 0–10</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>product_attributes</td>\n<td>Custom attributes defined in your account.</td>\n<td>Object {key:value}</td>\n<td>No</td>\n</tr>\n<tr>\n<td>is_status_passive</td>\n<td>1 = passive/hidden in Smart Recommender and Eureka results, 0 = active.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"custom-product-attributes\">Custom Product Attributes</h4>\n<p>Custom Product Attributes allow you to define additional details specific to your business. These attributes enrich your catalog with data that supports your unique use cases, personalization logic, and recommendation filters.</p>\n<p>Before sending Custom Product Attributes in your payload, you must <a href=\"https://academy.insiderone.com/docs/product-attributes-overview#custom-product-attributes\">define</a> them in your account.</p>\n<p>If a <strong>Default Product Attribute</strong> already exists for the information you want to include, use the default one instead of creating a custom one. This keeps your catalog structure consistent.</p>\n<p>Custom attributes are sent inside the product_attributes object:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"product_attributes\": {\n        \"material_type\": \"Leather\",\n        \"season\": \"Winter\",\n        \"eco_friendly\": true,\n        \"collection\": \"Winter Collection 2025\",\n        \"delivery_type\": \"Express\"\n        }\n\n</code></pre>\n<h4 id=\"feed-management-types\">Feed Management Types</h4>\n<p>Your feed management type determines which pricing and stock attributes are required.</p>\n<h5 id=\"stock-and-revenue-based-feed-management-type\">Stock and Revenue Based Feed Management Type</h5>\n<p>The Stock and Revenue Based Feed Management Type is the most common type. It requires pricing and stock information.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"velocity-runner-pro-white\",\n      \"locale\": \"en_US\",\n      \"name\": \"Velocity Runner Pro - White\",\n      \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n      \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n      \"brand\": \"Velox\",\n      \"price\": { \"USD\": 129.99 },\n      \"original_price\": { \"USD\": 149.99 },\n      \"in_stock\": 1\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"availability-based-feed-management-type\">Availability Based Feed Management Type</h5>\n<p>For the Availability Based Feed Management Type, only the stock status is required. Pricing is optional.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"velocity-runner-pro-white\",\n      \"locale\": \"en_US\",\n      \"name\": \"Velocity Runner Pro - White\",\n      \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n      \"in_stock\": 1\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"published-time-based-feed-management-type\">Published Time Based Feed Management Type</h5>\n<p>The Published Time Based Feed Management Type requires an update timestamp instead of pricing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"blog-top-running-shoes-2025\",\n      \"locale\": \"en_US\",\n      \"name\": \"Top 10 Running Shoes for 2025\",\n      \"url\": \"https://www.example-insiderone.com/blog/top-running-shoes-2025\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/blog/running-shoes-2025.jpg\",\n      \"item_update_date\": \"2025-01-15 10:30:00\"\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"start--end-time-based-feed-management-type\">Start &amp; End Time Based Feed Management Type</h5>\n<p>The Start &amp; End Time Based Feed Management Type requires date range attributes for time-bound content.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"promo-summer-clearance-2025\",\n      \"locale\": \"en_US\",\n      \"name\": \"Summer Clearance Sale - Up to 50% Off\",\n      \"url\": \"https://www.example-insiderone.com/campaigns/summer-clearance-2025\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/campaigns/summer-clearance.jpg\",\n      \"item_start_date\": \"2025-06-01 00:00:00\",\n      \"item_end_date\": \"2025-08-31 23:59:59\"\n    }\n  ]'\n\n</code></pre>\n<h4 id=\"product-availability-by-feed-management-type\">Product Availability by Feed Management Type</h4>\n<p>A product is considered <strong>available</strong> based on criteria that vary by feed management type:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Feed Type</th>\n<th>Availability Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Stock &amp; Revenue Based</td>\n<td>in_stock must be 1</td>\n</tr>\n<tr>\n<td>Availability Based</td>\n<td>in_stock must be 1</td>\n</tr>\n<tr>\n<td>Published Time Based</td>\n<td>item_update_date must be within the last 2 days (<em>default 2 days, adjustable in Smart Recommender campaigns)</em></td>\n</tr>\n<tr>\n<td>Start &amp; End Time Based</td>\n<td>item_end_date must not be in the past</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"currencies\">Currencies</h5>\n<p>Pricing attributes accept an object mapping currency codes to amounts. You can include multiple currencies in a single record.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"price\": {\n    \"USD\": 129.99,\n    \"EUR\": 119.99,\n    \"GBP\": 104.99,\n    \"BRL\": 899.90\n  },\n  \"original_price\": {\n    \"USD\": 149.99,\n    \"EUR\": 139.99,\n    \"GBP\": 119.99,\n    \"BRL\": 999.90\n  }\n}\n\n</code></pre>\n<h5 id=\"categories\">Categories</h5>\n<p>The category attribute accepts an array of strings. How the array is interpreted depends on your account's category type, which is configured <a href=\"https://academy.insiderone.com/docs/product-catalog-data-planning\">during onboarding</a>. You must choose one of the two types:</p>\n<ul>\n<li><strong>Hierarchical Category Type</strong></li>\n</ul>\n<p>Use this if your categories follow a parent-child structure, with subcategories nested under broader categories. Each element in the array represents a level in the hierarchy, ordered from broadest to most specific.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"category\": [\"Clothing\", \"Men\", \"Shirts\", \"Casual Shirts\"]\n}\n\n</code></pre>\n<p>This creates the hierarchy: Clothing → Men → Shirts → Casual Shirts.</p>\n<p>The order matters; the first element is the top-level category and each subsequent element is a child of the previous one.</p>\n<ul>\n<li><strong>Flat Category Type</strong></li>\n</ul>\n<p>Use this if your categories are independent and don't follow a parent-child hierarchy. Each element is a standalone category label at the same level.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"category\": [\"Men's Shirts\", \"Women's Dresses\", \"Kids' Shoes\"]\n}\n\n</code></pre>\n<p>In flat mode, all categories are treated equally; there is no implied nesting or ordering relationship between elements.</p>\n<p><strong>Limits:</strong></p>\n<ul>\n<li><p>Combined length of all category elements: max <strong>1024 characters</strong></p>\n</li>\n<li><p>Each element: max <strong>512 characters</strong></p>\n</li>\n</ul>\n<h5 id=\"tags--merchandising\">Tags &amp; Merchandising</h5>\n<p>Tags are used for product grouping and merchandising rules within the Insider One platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"tags\": [\"new-arrival\", \"bestseller\", \"summer-collection\", \"free-shipping\"]\n}\n\n</code></pre>\n<p>You can use tagsto:</p>\n<ul>\n<li><p>Create product segments for personalization</p>\n</li>\n<li><p>Trigger merchandising rules</p>\n</li>\n<li><p>Filter products in recommendation widgets</p>\n</li>\n<li><p>Define campaign audiences</p>\n</li>\n</ul>\n<p><strong>Limits:</strong></p>\n<ul>\n<li><p>Combined length of all tags: max <strong>4096 characters</strong></p>\n</li>\n<li><p>Each tag: max <strong>512 characters</strong></p>\n</li>\n</ul>\n<h5 id=\"group-code\">Group Code</h5>\n<p>The groupcode attribute links product variants together as a single product group. Products sharing the same groupcode are treated as variations of the same product (e.g., different sizes or colors).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"item_id\": \"velocity-runner-pro-white\",\n    \"groupcode\": \"velocity-runner-pro\",\n    \"color\": \"White\",\n    \"size\": \"10\"\n  },\n  {\n    \"item_id\": \"velocity-runner-pro-black\",\n    \"groupcode\": \"velocity-runner-pro\",\n    \"color\": \"Black\",\n    \"size\": \"10\"\n  }\n]\n\n</code></pre>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to insert new products using a nested format. Shared fields go in base, locale-specific fields go in locales, and store overrides go in stores.</p>\n<p>Use nested format when you have multiple locales or stores per product. Shared fields like url, image_url, and brand are defined once and inherited by all locales/stores, reducing payload size and repetition.</p>\n<p>The following example is equivalent to the <a href=\"https://academy.insiderone.com/v1/docs/add-new-products-flat-format\">flat format</a>: the same product, locales, and stores, but expressed as a single nested object instead of 4 separate records:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --request POST \"https://catalog.api.useinsider.com/v2/ingest/nested\" \\\n        --header \"Content-Type: application/json\" \\\n        --header \"X-PARTNER-NAME: yourPartnerName\" \\\n        --header \"X-REQUEST-TOKEN: your-api-token\" \\\n        --data '[\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"base\": {\n        \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n        \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n        \"brand\": \"Velox\",\n        \"groupcode\": \"velocity-runner-pro\",\n        \"color\": \"White\"\n        },\n        \"locales\": {\n        \"en_US\": {\n        \"name\": \"Velocity Runner Pro - White\",\n        \"category\": [\n        \"Shoes\",\n        \"Running\",\n        \"Velox\"\n        ],\n        \"price\": {\n        \"USD\": 129.99\n        },\n        \"original_price\": {\n        \"USD\": 149.99\n        },\n        \"stores\": {\n        \"main\": {\n        \"in_stock\": 1,\n        \"stock_count\": 50\n        },\n        \"newyork\": {\n        \"price\": {\n        \"USD\": 119.99\n        },\n        \"in_stock\": 1,\n        \"stock_count\": 12\n        },\n        \"losangeles\": {\n        \"in_stock\": 0,\n        \"stock_count\": 0\n        }\n        }\n        },\n        \"pt_BR\": {\n        \"name\": \"Velocity Runner Pro - Branco\",\n        \"category\": [\n        \"Calçados\",\n        \"Corrida\",\n        \"Velox\"\n        ],\n        \"price\": {\n        \"BRL\": 899.90\n        },\n        \"original_price\": {\n        \"BRL\": 999.90\n        },\n        \"stores\": {\n        \"main\": {\n        \"in_stock\": 1,\n        \"stock_count\": 30\n        }\n        }\n        }\n        }\n        }\n        ]'\n\n</code></pre>\n<h4 id=\"understanding-the-field-inheritance\">Understanding the field inheritance</h4>\n<p>In nested format, the same field can be defined at multiple levels (base, locale, store). The Catalog API merges these into a final record using this priority:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>store fields &gt; locale fields &gt; base fields\n\n</code></pre><p>This allows you to define shared values once in <strong>the base</strong> and only override the differences at each level.</p>\n<p><strong>Example</strong>: In the request above, en_US defines price: USD 129.99 at the locale level. The newyork store overrides this with price: USD 119.99, while losangeles inherits the locale price since it doesn't define its own:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>locale</th>\n<th>name</th>\n<th>price</th>\n<th>in_stock</th>\n<th>stock_count</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>en_US</td>\n<td>Velocity Runner Pro - White</td>\n<td>USD 129.99</td>\n<td>1</td>\n<td>50</td>\n</tr>\n<tr>\n<td>en_US:newyork</td>\n<td>Velocity Runner Pro - White</td>\n<td>USD 119.99 (overridden)</td>\n<td>1</td>\n<td>12</td>\n</tr>\n<tr>\n<td>en_US:losangeles</td>\n<td>Velocity Runner Pro - White</td>\n<td>USD 129.99 (inherited)</td>\n<td>0</td>\n<td>0</td>\n</tr>\n<tr>\n<td>pt_BR</td>\n<td>Velocity Runner Pro - Branco</td>\n<td>BRL 899.90</td>\n<td>1</td>\n<td>30</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"restrictions\">Restrictions</h4>\n<h5 id=\"store-attributes\">Store Attributes</h5>\n<p>In the nested payload structure, fields can be defined at three levels:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>base → Shared across all locales and stores\n        locales → Locale-specific (name, category, etc.)\n        └─ stores → Store-specific overrides (pricing and stock only)\n\n</code></pre><p>Only the following fields are allowed at the store level:</p>\n<ul>\n<li><p>price</p>\n</li>\n<li><p>original_price</p>\n</li>\n<li><p>omnibus_price</p>\n</li>\n<li><p>in_stock</p>\n</li>\n<li><p>stock_count</p>\n</li>\n</ul>\n<p>Including any other field at the store level returns a <strong>400</strong> error.</p>\n<p><strong>Example</strong>: A valid nested payload with store-level overrides:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"item_id\": \"SKU-123\",\n        \"base\": {\n        \"url\": \"https://example.com/product/SKU-123\",\n        \"image_url\": \"https://cdn.example.com/SKU-123.jpg\",\n        \"brand\": \"Acme\"\n        },\n        \"locales\": {\n        \"en_US\": {\n        \"name\": \"Example Product\",\n        \"category\": [\"Electronics\"],\n        \"price\": { \"USD\": 99.99 },\n        \"original_price\": { \"USD\": 119.99 },\n        \"in_stock\": 1,\n        \"stores\": {\n        \"main\": {\n        \"stock_count\": 100\n        },\n        \"outlet\": {\n        \"price\": { \"USD\": 79.99 },\n        \"in_stock\": 1,\n        \"stock_count\": 25\n        }\n        }\n        }\n        }\n        }\n\n</code></pre>\n<p>This produces two records:</p>\n<ul>\n<li><p>en_US with price USD 99.99 and stock_count 100</p>\n</li>\n<li><p>en_US:outlet with price USD 79.99 and stock_count 25</p>\n</li>\n</ul>\n<h5 id=\"main-store\">Main Store</h5>\n<p>The main key is a reserved store identifier that represents the default/locale-level record. Unlike other store keys, it does not append a suffix to the locale string. For example, \"main\" under en_US produces a record with locale en_US, while \"newyork\" produces en_US:newyork.</p>\n<blockquote>\n<p>&lt;p &gt;This is useful when you want to define a base price/stock for the locale itself alongside store-specific overrides. If you use main without any other stores, the result is the same as not using stores at all.&lt;/p&gt; </p>\n</blockquote>\n<h3 id=\"sample-response\">Sample Response</h3>\n<p>All ingest endpoints return the same response structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"success\": true,\n        \"message\": {\n        \"valid\": {\n        \"count\": 95\n        },\n        \"invalid\": {\n        \"count\": 5,\n        \"details\": [\n        {\n        \"field\": \"original_price\",\n        \"message\": \"Field is invalidated: 'original_price' is required\",\n        \"count\": 2,\n        \"document_ids\": [\"item-1\", \"item-2\"]\n        },\n        {\n        \"field\": \"url\",\n        \"message\": \"Field is invalidated: 'url' must match pattern\",\n        \"count\": 3,\n        \"document_ids\": [\"item-3\", \"item-4\", \"item-5\"]\n        }\n        ]\n        },\n        \"warnings\": {\n        \"count\": 1,\n        \"details\": [\n        {\n        \"field\": \"image_url\",\n        \"message\": \"Image URL could not be validated\",\n        \"count\": 1,\n        \"document_ids\": [\"item-6\"]\n        }\n        ]\n        },\n        \"invalidRatio\": 0.05\n        }\n        }\n\n</code></pre>\n<p>Warnings are informational and do not prevent records from being processed.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>For all the limits applied, refer to <a href=\"https://academy.insiderone.com/docs/product-catalog-api-introduction#limitations\">Limitations</a>.</p>\n","urlObject":{"protocol":"https","path":["v2","ingest","nested"],"host":["catalog","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"f7f838cf-3525-452a-968a-bdc06718516c"},{"name":"Update Existing Products in a Flat Format","id":"12f60b5c-f7a7-46de-a1d9-90d1f22cdead","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"myPartnerName","description":"<p>This is your partner name. Navigate to InOne &gt; Inone Settings &gt; Account Settings to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your Catalog API token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"[\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US\",\n        \"price\": { \"USD\": 109.99 },\n        \"in_stock\": 0\n        }\n        ]","options":{"raw":{"language":"json"}}},"url":"https://catalog.api.useinsider.com/v2/update","description":"<p>The Catalog API allows you to update existing products in your <a href=\"https://academy.insiderone.com/docs/product-catalog\">product catalog</a>. You can send only the fields you want to change, and it supports partial updates. You can send only the fields you want to change, or send all fields if that's easier for your integration. Both approaches work.</p>\n<h3 id=\"endpoint-and-headers\">Endpoint and Headers</h3>\n<p><strong>POST</strong> <a href=\"https://catalog.api.useinsider.com/v2/ingest\">https://catalog.api.useinsider.com/v2/update</a></p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<h4 id=\"default-product-attributes\">Default Product Attributes</h4>\n<p>The following product fields should be sent as parameters in the object, along with their field name and data type, as stated. If any required fields are not sent through the Catalog API, the product is not updated or inserted.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Name</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>item_id</td>\n<td>Unique product identifier. Max 128 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>ISO locale code (e.g., en_US, pt_BR). Max 64 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Product name. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Product page URL. Must include protocol (e.g., https://). Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>Product image URL. Must start with http://, https://, or //.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>price</td>\n<td>Current selling price per currency. e.g., {\"USD\": 100, \"BRL\": 500}.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>original_price</td>\n<td>Original/list price per currency. Same structure as price.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>omnibus_price</td>\n<td>Omnibus directive price per currency. Same structure as price.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>in_stock</td>\n<td>1 = in stock, 0 = out of stock.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>stock_count</td>\n<td>Available quantity. Must be &gt;= 0.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>item_update_date</td>\n<td>Last update timestamp. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>item_start_date</td>\n<td>Availability start date. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>item_end_date</td>\n<td>Availability end date. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Product description. Max 1024 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>brand</td>\n<td>Brand name. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sku</td>\n<td>Stock keeping unit. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>color</td>\n<td>Product color. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>Product size. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>Gender classification. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>category</td>\n<td>Category as an array</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>tags</td>\n<td>Product tags</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupcode</td>\n<td>Product group identifier</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>variants</td>\n<td>Product variants. Max 512 characters per item.</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>rating</td>\n<td>Product rating, 0–10</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>product_attributes</td>\n<td>Custom attributes defined in your account.</td>\n<td>Object {key:value}</td>\n<td>No</td>\n</tr>\n<tr>\n<td>is_status_passive</td>\n<td>1 = passive/hidden in Smart Recommender and Eureka results, 0 = active.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"custom-product-attributes\">Custom Product Attributes</h4>\n<p>Custom Product Attributes allow you to define additional details specific to your business. These attributes enrich your catalog with data that supports your unique use cases, personalization logic, and recommendation filters.</p>\n<p>Before sending Custom Product Attributes in your payload, you must <a href=\"https://academy.insiderone.com/docs/product-attributes-overview#custom-product-attributes\">define</a> them in your account.</p>\n<p>If a <strong>Default Product Attribute</strong> already exists for the information you want to include, use the default one instead of creating a custom one. This keeps your catalog structure consistent.</p>\n<p>Custom attributes are sent inside the product_attributes object:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"product_attributes\": {\n        \"material_type\": \"Leather\",\n        \"season\": \"Winter\",\n        \"eco_friendly\": true,\n        \"collection\": \"Winter Collection 2025\",\n        \"delivery_type\": \"Express\"\n        }\n\n</code></pre>\n<h4 id=\"feed-management-types\">Feed Management Types</h4>\n<p>Your feed management type determines which pricing and stock attributes are required.</p>\n<h5 id=\"stock-and-revenue-based-feed-management-type\">Stock and Revenue Based Feed Management Type</h5>\n<p>The Stock and Revenue Based Feed Management Type is the most common type. It requires pricing and stock information.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"velocity-runner-pro-white\",\n      \"locale\": \"en_US\",\n      \"name\": \"Velocity Runner Pro - White\",\n      \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n      \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n      \"brand\": \"Velox\",\n      \"price\": { \"USD\": 129.99 },\n      \"original_price\": { \"USD\": 149.99 },\n      \"in_stock\": 1\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"availability-based-feed-management-type\">Availability Based Feed Management Type</h5>\n<p>For the Availability Based Feed Management Type, only the stock status is required. Pricing is optional.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"velocity-runner-pro-white\",\n      \"locale\": \"en_US\",\n      \"name\": \"Velocity Runner Pro - White\",\n      \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n      \"in_stock\": 1\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"published-time-based-feed-management-type\">Published Time Based Feed Management Type</h5>\n<p>The Published Time Based Feed Management Type requires an update timestamp instead of pricing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"blog-top-running-shoes-2025\",\n      \"locale\": \"en_US\",\n      \"name\": \"Top 10 Running Shoes for 2025\",\n      \"url\": \"https://www.example-insiderone.com/blog/top-running-shoes-2025\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/blog/running-shoes-2025.jpg\",\n      \"item_update_date\": \"2025-01-15 10:30:00\"\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"start--end-time-based-feed-management-type\">Start &amp; End Time Based Feed Management Type</h5>\n<p>The Start &amp; End Time Based Feed Management Type requires date range attributes for time-bound content.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"promo-summer-clearance-2025\",\n      \"locale\": \"en_US\",\n      \"name\": \"Summer Clearance Sale - Up to 50% Off\",\n      \"url\": \"https://www.example-insiderone.com/campaigns/summer-clearance-2025\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/campaigns/summer-clearance.jpg\",\n      \"item_start_date\": \"2025-06-01 00:00:00\",\n      \"item_end_date\": \"2025-08-31 23:59:59\"\n    }\n  ]'\n\n</code></pre>\n<h4 id=\"product-availability-by-feed-management-type\">Product Availability by Feed Management Type</h4>\n<p>A product is considered <strong>available</strong> based on criteria that vary by feed management type:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Feed Type</th>\n<th>Availability Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Stock &amp; Revenue Based</td>\n<td>in_stock must be 1</td>\n</tr>\n<tr>\n<td>Availability Based</td>\n<td>in_stock must be 1</td>\n</tr>\n<tr>\n<td>Published Time Based</td>\n<td>item_update_date must be within the last 2 days (<em>default 2 days, adjustable in Smart Recommender campaigns)</em></td>\n</tr>\n<tr>\n<td>Start &amp; End Time Based</td>\n<td>item_end_date must not be in the past</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"currencies\">Currencies</h5>\n<p>Pricing attributes accept an object mapping currency codes to amounts. You can include multiple currencies in a single record.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"price\": {\n    \"USD\": 129.99,\n    \"EUR\": 119.99,\n    \"GBP\": 104.99,\n    \"BRL\": 899.90\n  },\n  \"original_price\": {\n    \"USD\": 149.99,\n    \"EUR\": 139.99,\n    \"GBP\": 119.99,\n    \"BRL\": 999.90\n  }\n}\n\n</code></pre>\n<h5 id=\"categories\">Categories</h5>\n<p>The category attribute accepts an array of strings. How the array is interpreted depends on your account's category type, which is configured <a href=\"https://academy.insiderone.com/docs/product-catalog-data-planning\">during onboarding</a>. You must choose one of the two types:</p>\n<ul>\n<li><strong>Hierarchical Category Type</strong></li>\n</ul>\n<p>Use this if your categories follow a parent-child structure, with subcategories nested under broader categories. Each element in the array represents a level in the hierarchy, ordered from broadest to most specific.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"category\": [\"Clothing\", \"Men\", \"Shirts\", \"Casual Shirts\"]\n}\n\n</code></pre>\n<p>This creates the hierarchy: Clothing → Men → Shirts → Casual Shirts.</p>\n<p>The order matters; the first element is the top-level category and each subsequent element is a child of the previous one.</p>\n<ul>\n<li><strong>Flat Category Type</strong></li>\n</ul>\n<p>Use this if your categories are independent and don't follow a parent-child hierarchy. Each element is a standalone category label at the same level.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"category\": [\"Men's Shirts\", \"Women's Dresses\", \"Kids' Shoes\"]\n}\n\n</code></pre>\n<p>In flat mode, all categories are treated equally; there is no implied nesting or ordering relationship between elements.</p>\n<p><strong>Limits:</strong></p>\n<ul>\n<li><p>Combined length of all category elements: max <strong>1024 characters</strong></p>\n</li>\n<li><p>Each element: max <strong>512 characters</strong></p>\n</li>\n</ul>\n<h5 id=\"tags--merchandising\">Tags &amp; Merchandising</h5>\n<p>Tags are used for product grouping and merchandising rules within the Insider One platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"tags\": [\"new-arrival\", \"bestseller\", \"summer-collection\", \"free-shipping\"]\n}\n\n</code></pre>\n<p>You can use tags to:</p>\n<ul>\n<li><p>Create product segments for personalization</p>\n</li>\n<li><p>Trigger merchandising rules</p>\n</li>\n<li><p>Filter products in recommendation widgets</p>\n</li>\n<li><p>Define campaign audiences</p>\n</li>\n</ul>\n<p><strong>Limits:</strong></p>\n<ul>\n<li><p>Combined length of all tags: max <strong>4096 characters</strong></p>\n</li>\n<li><p>Each tag: max <strong>512 characters</strong></p>\n</li>\n</ul>\n<h5 id=\"group-code\">Group Code</h5>\n<p>The groupcode attribute links product variants together as a single product group. Products sharing the same groupcode are treated as variations of the same product (e.g., different sizes or colors).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"item_id\": \"velocity-runner-pro-white\",\n    \"groupcode\": \"velocity-runner-pro\",\n    \"color\": \"White\",\n    \"size\": \"10\"\n  },\n  {\n    \"item_id\": \"velocity-runner-pro-black\",\n    \"groupcode\": \"velocity-runner-pro\",\n    \"color\": \"Black\",\n    \"size\": \"10\"\n  }\n]\n\n</code></pre>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to insert new products into the catalog using a flat format. Each <strong>product</strong> is a separate JSON object with all fields inline. Every <strong>locale/store</strong> combination is a separate object.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/update\" \\\n        -H \"Content-Type: application/json\" \\\n        -H \"X-PARTNER-NAME: your-partner-name\" \\\n        -H \"X-REQUEST-TOKEN: your-api-token\" \\\n        -d '[\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US\",\n        \"price\": { \"USD\": 109.99 },\n        \"in_stock\": 0\n        }\n        ]'\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<p>All ingest endpoints return the same response structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"success\": true,\n        \"message\": {\n        \"valid\": {\n        \"count\": 95\n        },\n        \"invalid\": {\n        \"count\": 5,\n        \"details\": [\n        {\n        \"field\": \"original_price\",\n        \"message\": \"Field is invalidated: 'original_price' is required\",\n        \"count\": 2,\n        \"document_ids\": [\"item-1\", \"item-2\"]\n        },\n        {\n        \"field\": \"url\",\n        \"message\": \"Field is invalidated: 'url' must match pattern\",\n        \"count\": 3,\n        \"document_ids\": [\"item-3\", \"item-4\", \"item-5\"]\n        }\n        ]\n        },\n        \"warnings\": {\n        \"count\": 1,\n        \"details\": [\n        {\n        \"field\": \"image_url\",\n        \"message\": \"Image URL could not be validated\",\n        \"count\": 1,\n        \"document_ids\": [\"item-6\"]\n        }\n        ]\n        },\n        \"invalidRatio\": 0.05\n        }\n        }\n\n</code></pre>\n<blockquote>\n<p>Warnings are informational and do not prevent records from being processed. </p>\n</blockquote>\n<h3 id=\"limitations\">Limitations</h3>\n<p>For all the limits applied, refer to <a href=\"https://academy.insiderone.com/docs/product-catalog-api-introduction#limitations\">Limitations</a>.</p>\n","urlObject":{"protocol":"https","path":["v2","update"],"host":["catalog","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"12f60b5c-f7a7-46de-a1d9-90d1f22cdead"},{"name":"Update Existing Products in a Nested Format","id":"ed214937-3717-4182-b082-5be9573acf12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"myPartnerName","description":"<p>This is your partner name. Navigate to InOne &gt; Inone Settings &gt; Account Settings to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your Catalog API token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"[\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locales\": {\n        \"en_US\": {\n        \"price\": { \"USD\": 109.99 },\n        \"stores\": {\n        \"newyork\": {\n        \"in_stock\": 0,\n        \"stock_count\": 0\n        }\n        }\n        }\n        }\n        }\n        ]","options":{"raw":{"language":"json"}}},"url":"https://catalog.api.useinsider.com/v2/update/nested","description":"<p>The Catalog API allows you to update existing products in your <a href=\"https://academy.insiderone.com/docs/product-catalog\">product catalog</a> using a nested format. You can send only the fields you want to change, and it supports partial updates. You can send only the fields you want to change, or send all fields if that's easier for your integration. Both approaches work.</p>\n<h3 id=\"endpoint-and-headers\">Endpoint and Headers</h3>\n<p><strong>POST</strong> <a href=\"https://catalog.api.useinsider.com/v2/ingest\">https://catalog.api.useinsider.com/v2/update/nested</a></p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<h4 id=\"default-product-attributes\">Default Product Attributes</h4>\n<p>The following product fields should be sent as parameters in the object, along with their field name and data type, as stated. If any required fields are not sent through the Catalog API, the product is not updated or inserted.</p>\n<p>The following product fields should be sent as parameters in the object, along with their field name and data type, as stated. If any required fields are not sent through the Catalog API, the product is not updated or inserted.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Name</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>item_id</td>\n<td>Unique product identifier. Max 128 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>ISO locale code (e.g., en_US, pt_BR). Max 64 characters.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Product name. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Product page URL. Must include protocol (e.g., https://). Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>Product image URL. Must start with http://, https://, or //.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>price</td>\n<td>Current selling price per currency. e.g., {\"USD\": 100, \"BRL\": 500}.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>original_price</td>\n<td>Original/list price per currency. Same structure as price.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>omnibus_price</td>\n<td>Omnibus directive price per currency. Same structure as price.</td>\n<td>Object</td>\n<td>No</td>\n</tr>\n<tr>\n<td>in_stock</td>\n<td>1 = in stock, 0 = out of stock.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>stock_count</td>\n<td>Available quantity. Must be &gt;= 0.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>item_update_date</td>\n<td>Last update timestamp. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>item_start_date</td>\n<td>Availability start date. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>item_end_date</td>\n<td>Availability end date. Format: YYYY-MM-DD hh:mm:ss</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Product description. Max 1024 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>brand</td>\n<td>Brand name. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>sku</td>\n<td>Stock keeping unit. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>color</td>\n<td>Product color. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>Product size. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>Gender classification. Max 512 characters.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>category</td>\n<td>Category as an array</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>tags</td>\n<td>Product tags</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupcode</td>\n<td>Product group identifier</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>variants</td>\n<td>Product variants. Max 512 characters per item.</td>\n<td>String[]</td>\n<td>No</td>\n</tr>\n<tr>\n<td>rating</td>\n<td>Product rating, 0–10</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n<tr>\n<td>product_attributes</td>\n<td>Custom attributes defined in your account.</td>\n<td>Object {key:value}</td>\n<td>No</td>\n</tr>\n<tr>\n<td>is_status_passive</td>\n<td>1 = passive/hidden in Smart Recommender and Eureka results, 0 = active.</td>\n<td>Number</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"custom-product-attributes\">Custom Product Attributes</h4>\n<p>Custom Product Attributes allow you to define additional details specific to your business. These attributes enrich your catalog with data that supports your unique use cases, personalization logic, and recommendation filters.</p>\n<p>Before sending Custom Product Attributes in your payload, you must <a href=\"https://academy.insiderone.com/docs/product-attributes-overview#custom-product-attributes\">define</a> them in your account.</p>\n<p>If a <strong>Default Product Attribute</strong> already exists for the information you want to include, use the default one instead of creating a custom one. This keeps your catalog structure consistent.</p>\n<p>Custom attributes are sent inside the product_attributes object:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locale\": \"en_US\",\n        \"name\": \"Velocity Runner Pro - White\",\n        \"product_attributes\": {\n        \"material_type\": \"Leather\",\n        \"season\": \"Winter\",\n        \"eco_friendly\": true,\n        \"collection\": \"Winter Collection 2025\",\n        \"delivery_type\": \"Express\"\n        }\n\n</code></pre>\n<h4 id=\"feed-management-types\">Feed Management Types</h4>\n<p>Your feed management type determines which pricing and stock attributes are required.</p>\n<h5 id=\"stock-and-revenue-based-feed-management-type\">Stock and Revenue Based Feed Management Type</h5>\n<p>The Stock and Revenue Based Feed Management Type is the most common type. It requires pricing and stock information.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"velocity-runner-pro-white\",\n      \"locale\": \"en_US\",\n      \"name\": \"Velocity Runner Pro - White\",\n      \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n      \"category\": [\"Shoes\", \"Running\", \"Velox\"],\n      \"brand\": \"Velox\",\n      \"price\": { \"USD\": 129.99 },\n      \"original_price\": { \"USD\": 149.99 },\n      \"in_stock\": 1\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"availability-based-feed-management-type\">Availability Based Feed Management Type</h5>\n<p>For the Availability Based Feed Management Type, only the stock status is required. Pricing is optional.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"velocity-runner-pro-white\",\n      \"locale\": \"en_US\",\n      \"name\": \"Velocity Runner Pro - White\",\n      \"url\": \"https://www.example-insiderone.com/shoes/velocity-runner-pro-white\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/velocity-runner-pro-white.jpg\",\n      \"in_stock\": 1\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"published-time-based-feed-management-type\">Published Time Based Feed Management Type</h5>\n<p>The Published Time Based Feed Management Type requires an update timestamp instead of pricing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"blog-top-running-shoes-2025\",\n      \"locale\": \"en_US\",\n      \"name\": \"Top 10 Running Shoes for 2025\",\n      \"url\": \"https://www.example-insiderone.com/blog/top-running-shoes-2025\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/blog/running-shoes-2025.jpg\",\n      \"item_update_date\": \"2025-01-15 10:30:00\"\n    }\n  ]'\n\n</code></pre>\n<h5 id=\"start--end-time-based-feed-management-type\">Start &amp; End Time Based Feed Management Type</h5>\n<p>The Start &amp; End Time Based Feed Management Type requires date range attributes for time-bound content.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/ingest\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '[\n    {\n      \"item_id\": \"promo-summer-clearance-2025\",\n      \"locale\": \"en_US\",\n      \"name\": \"Summer Clearance Sale - Up to 50% Off\",\n      \"url\": \"https://www.example-insiderone.com/campaigns/summer-clearance-2025\",\n      \"image_url\": \"https://cdn.example-insiderone.com/images/campaigns/summer-clearance.jpg\",\n      \"item_start_date\": \"2025-06-01 00:00:00\",\n      \"item_end_date\": \"2025-08-31 23:59:59\"\n    }\n  ]'\n\n</code></pre>\n<h4 id=\"product-availability-by-feed-management-type\">Product Availability by Feed Management Type</h4>\n<p>A product is considered <strong>available</strong> based on criteria that vary by feed management type:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Feed Type</th>\n<th>Availability Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Stock &amp; Revenue Based</td>\n<td>in_stock must be 1</td>\n</tr>\n<tr>\n<td>Availability Based</td>\n<td>in_stock must be 1</td>\n</tr>\n<tr>\n<td>Published Time Based</td>\n<td>item_update_date must be within the last 2 days (<em>default 2 days, adjustable in Smart Recommender campaigns)</em></td>\n</tr>\n<tr>\n<td>Start &amp; End Time Based</td>\n<td>item_end_date must not be in the past</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"currencies\">Currencies</h5>\n<p>Pricing attributes accept an object mapping currency codes to amounts. You can include multiple currencies in a single record.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"price\": {\n    \"USD\": 129.99,\n    \"EUR\": 119.99,\n    \"GBP\": 104.99,\n    \"BRL\": 899.90\n  },\n  \"original_price\": {\n    \"USD\": 149.99,\n    \"EUR\": 139.99,\n    \"GBP\": 119.99,\n    \"BRL\": 999.90\n  }\n}\n\n</code></pre>\n<h5 id=\"categories\">Categories</h5>\n<p>The category attribute accepts an array of strings. How the array is interpreted depends on your account's category type, which is configured <a href=\"https://academy.insiderone.com/docs/product-catalog-data-planning\">during onboarding</a>. You must choose one of the two types:</p>\n<ul>\n<li><strong>Hierarchical Category Type</strong></li>\n</ul>\n<p>Use this if your categories follow a parent-child structure, with subcategories nested under broader categories. Each element in the array represents a level in the hierarchy, ordered from broadest to most specific.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"category\": [\"Clothing\", \"Men\", \"Shirts\", \"Casual Shirts\"]\n}\n\n</code></pre>\n<p>This creates the hierarchy: Clothing → Men → Shirts → Casual Shirts.</p>\n<p>The order matters; the first element is the top-level category and each subsequent element is a child of the previous one.</p>\n<ul>\n<li><strong>Flat Category Type</strong></li>\n</ul>\n<p>Use this if your categories are independent and don't follow a parent-child hierarchy. Each element is a standalone category label at the same level.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"category\": [\"Men's Shirts\", \"Women's Dresses\", \"Kids' Shoes\"]\n}\n\n</code></pre>\n<p>In flat mode, all categories are treated equally; there is no implied nesting or ordering relationship between elements.</p>\n<p><strong>Limits:</strong></p>\n<ul>\n<li><p>Combined length of all category elements: max <strong>1024 characters</strong></p>\n</li>\n<li><p>Each element: max <strong>512 characters</strong></p>\n</li>\n</ul>\n<h5 id=\"tags--merchandising\">Tags &amp; Merchandising</h5>\n<p>Tags are used for product grouping and merchandising rules within the Insider One platform.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"tags\": [\"new-arrival\", \"bestseller\", \"summer-collection\", \"free-shipping\"]\n}\n\n</code></pre>\n<p>You can use tags to:</p>\n<ul>\n<li><p>Create product segments for personalization</p>\n</li>\n<li><p>Trigger merchandising rules</p>\n</li>\n<li><p>Filter products in recommendation widgets</p>\n</li>\n<li><p>Define campaign audiences</p>\n</li>\n</ul>\n<p><strong>Limits:</strong></p>\n<ul>\n<li><p>Combined length of all tags: max <strong>4096 characters</strong></p>\n</li>\n<li><p>Each tag: max <strong>512 characters</strong></p>\n</li>\n</ul>\n<h5 id=\"group-code\">Group Code</h5>\n<p>The groupcode attribute links product variants together as a single product group. Products sharing the same groupcode are treated as variations of the same product (e.g., different sizes or colors).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"item_id\": \"velocity-runner-pro-white\",\n    \"groupcode\": \"velocity-runner-pro\",\n    \"color\": \"White\",\n    \"size\": \"10\"\n  },\n  {\n    \"item_id\": \"velocity-runner-pro-black\",\n    \"groupcode\": \"velocity-runner-pro\",\n    \"color\": \"Black\",\n    \"size\": \"10\"\n  }\n]\n\n</code></pre>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to update products in the product catalog using a nested format. Each product is a separate JSON object with all fields inline.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/update/nested\" \\\n        -H \"Content-Type: application/json\" \\\n        -H \"X-PARTNER-NAME: yourPartnerName\" \\\n        -H \"X-REQUEST-TOKEN: your-api-token\" \\\n        -d '[\n        {\n        \"item_id\": \"velocity-runner-pro-white\",\n        \"locales\": {\n        \"en_US\": {\n        \"price\": { \"USD\": 109.99 },\n        \"stores\": {\n        \"newyork\": {\n        \"in_stock\": 0,\n        \"stock_count\": 0\n        }\n        }\n        }\n        }\n        }\n        ]'\n\n</code></pre>\n<h4 id=\"understanding-the-field-inheritance\">Understanding the field inheritance</h4>\n<p>In nested format, the same field can be defined at multiple levels (base, locale, store). The Catalog API merges these into a final record using this priority:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>store fields &gt; locale fields &gt; base fields\n\n</code></pre><p>This allows you to define shared values once in <strong>the base</strong> and only override the differences at each level.</p>\n<p><strong>Example</strong>: In the request above, en_US defines price: USD 129.99 at the locale level. The newyork store overrides this with price: USD 119.99, while losangeles inherits the locale price since it doesn't define its own:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>locale</th>\n<th>name</th>\n<th>price</th>\n<th>in_stock</th>\n<th>stock_count</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>en_US</td>\n<td>Velocity Runner Pro - White</td>\n<td>USD 129.99</td>\n<td>1</td>\n<td>50</td>\n</tr>\n<tr>\n<td>en_US:newyork</td>\n<td>Velocity Runner Pro - White</td>\n<td>USD 119.99 (overridden)</td>\n<td>1</td>\n<td>12</td>\n</tr>\n<tr>\n<td>en_US:losangeles</td>\n<td>Velocity Runner Pro - White</td>\n<td>USD 129.99 (inherited)</td>\n<td>0</td>\n<td>0</td>\n</tr>\n<tr>\n<td>pt_BR</td>\n<td>Velocity Runner Pro - Branco</td>\n<td>BRL 899.90</td>\n<td>1</td>\n<td>30</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"restrictions\">Restrictions</h4>\n<h5 id=\"store-attributes\">Store Attributes</h5>\n<p>In the nested payload structure, fields can be defined at three levels:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>base → Shared across all locales and stores\n        locales → Locale-specific (name, category, etc.)\n        └─ stores → Store-specific overrides (pricing and stock only)\n\n</code></pre><p>Only the following fields are allowed at the store level:</p>\n<ul>\n<li><p>price</p>\n</li>\n<li><p>original_price</p>\n</li>\n<li><p>omnibus_price</p>\n</li>\n<li><p>in_stock</p>\n</li>\n<li><p>stock_count</p>\n</li>\n</ul>\n<p>Including any other field at the store level returns a <strong>400</strong> error.</p>\n<p><strong>Example</strong>: A valid nested payload with store-level overrides:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"item_id\": \"SKU-123\",\n        \"base\": {\n        \"url\": \"https://example.com/product/SKU-123\",\n        \"image_url\": \"https://cdn.example.com/SKU-123.jpg\",\n        \"brand\": \"Acme\"\n        },\n        \"locales\": {\n        \"en_US\": {\n        \"name\": \"Example Product\",\n        \"category\": [\"Electronics\"],\n        \"price\": { \"USD\": 99.99 },\n        \"original_price\": { \"USD\": 119.99 },\n        \"in_stock\": 1,\n        \"stores\": {\n        \"main\": {\n        \"stock_count\": 100\n        },\n        \"outlet\": {\n        \"price\": { \"USD\": 79.99 },\n        \"in_stock\": 1,\n        \"stock_count\": 25\n        }\n        }\n        }\n        }\n        }\n\n</code></pre>\n<p>This produces two records:</p>\n<ul>\n<li><p>en_US with price USD 99.99 and stock_count 100</p>\n</li>\n<li><p>en_US:outlet with price USD 79.99 and stock_count 25</p>\n</li>\n</ul>\n<h5 id=\"main-store\">Main Store</h5>\n<p>The main key is a reserved store identifier that represents the default/locale-level record. Unlike other store keys, it does not append a suffix to the locale string. For example, \"main\" under en_US produces a record with locale en_US, while \"newyork\" produces en_US:newyork.</p>\n<blockquote>\n<p>This is useful when you want to define a base price/stock for the locale itself alongside store-specific overrides. If you use main without any other stores, the result is the same as not using stores at all. </p>\n</blockquote>\n<h3 id=\"limitations\">Limitations</h3>\n<p>For all the limits applied, refer to <a href=\"https://academy.insiderone.com/docs/product-catalog-api-introduction#limitations\">Limitations</a>.</p>\n","urlObject":{"protocol":"https","path":["v2","update","nested"],"host":["catalog","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ed214937-3717-4182-b082-5be9573acf12"},{"name":"Create Locale Configurations","id":"3333a8a0-150a-4166-86f2-21393717e2ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"myParterName","description":"<p>This is your partner name. Navigate to InOne &gt; Inone Settings &gt; Account Settings to copy your partner name. The partner name should be lowercase.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your Catalog API token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n      \"locales\": [\n        { \"language_country_code\": \"en_US\", \"store_id\": \"Main\" },\n        { \"language_country_code\": \"pt_BR\", \"store_id\": \"SaoPaulo\" }\n      ]\n    }\n  }","options":{"raw":{"language":"json"}}},"url":"https://catalog.api.useinsider.com/v2/locales/batch","description":"<p>The Catalog API allows you to create locale configurations. For larger or more complex setups, the Create Locale endpoint enables faster and more scalable locale management.</p>\n<p>Refer to <a href=\"https://academy.insiderone.com/docs/product-catalog-api-introduction#locale\">Locales</a> for further information.</p>\n<h3 id=\"endpoint-and-headers\">Endpoint and Headers</h3>\n<blockquote>\n</blockquote>\n<p><strong>POST</strong> <a href=\"https://catalog.api.useinsider.com/v2/locales/batch\">https://catalog.api.useinsider.com/v2/locales/batch</a></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-PARTNER-NAME</td>\n<td>myParterName</td>\n<td>This is your partner name. Navigate to <strong>InOne</strong> &gt; <strong>Inone Settings</strong> &gt; <a href=\"https://academy.insiderone.com/docs/inone-account-settings\"><b>Account Settings</b></a> to copy your partner name. The partner name should be lowercase.</td>\n</tr>\n<tr>\n<td>X-REQUEST-TOKEN</td>\n<td>1a2b3c4d5e6f</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your Catalog API token.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to create locale configurations:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X POST \"https://catalog.api.useinsider.com/v2/locales/batch\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-PARTNER-NAME: your-partner-name\" \\\n  -H \"X-REQUEST-TOKEN: your-api-token\" \\\n  -d '{\n    \"data\": {\n      \"locales\": [\n        { \"language_country_code\": \"en_US\", \"store_id\": \"Main\" },\n        { \"language_country_code\": \"pt_BR\", \"store_id\": \"SaoPaulo\" }\n      ]\n    }\n  }'\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true, \n  \"created_locale_count\": 1\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<p>For all the limits applied, refer to <a href=\"https://academy.insiderone.com/docs/product-catalog-api-introduction#limitations\">Limitations</a>.</p>\n","urlObject":{"protocol":"https","path":["v2","locales","batch"],"host":["catalog","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"3333a8a0-150a-4166-86f2-21393717e2ea"}],"id":"a73c6655-4bce-43ed-9046-3e0038604a6b","description":"<p>The Catalog API enables you to send your product catalog data to the Insider One platform. You can ingest new products, update existing ones, and manage locale configurations through a set of REST endpoints.</p>\n<p>Product data powers Insider One's personalization, recommendation, and merchandising features. Keeping your catalog up to date ensures accurate product information across all Insider One powered experiences on your website, app, and messaging channels.</p>\n<p>The Catalog API has five different endpoints with different functions:</p>\n<ul>\n<li><p><a href=\"https://academy.insiderone.com/v1/docs/add-new-products-in-a-flat-format\">POST /v2/ingest</a> to add new products in a flat format</p>\n</li>\n<li><p><a href=\"https://academy.insiderone.com/v1/docs/add-new-products-nested-format\">POST /v2/ingest/nested </a> to add new products in a nested format</p>\n</li>\n<li><p><a href=\"https://academy.insiderone.com/v1/docs/update-existing-products-in-a-flat-format\">POST /v2/update</a> to update existing products in a flat format</p>\n</li>\n<li><p><a href=\"https://academy.insiderone.com/v1/docs/update-existing-products-in-a-nested-format\">POST /v2/update/nested</a> to update existing products (nested format)</p>\n</li>\n<li><p><a href=\"https://academy.insiderone.com/v1/docs/create-locale-configurations\">POST /v2/locales/batch</a> to create locale configurations</p>\n</li>\n</ul>\n<blockquote>\n</blockquote>\n<p>Ingest vs Update:</p>\n<ul>\n<li><p><strong>Ingest</strong> creates new product records. If a product with the same item_id + locale already exists, it will be overwritten.</p>\n</li>\n<li><p><strong>Update</strong> modifies existing products. You can send only the fields you want to change (partial update).</p>\n</li>\n</ul>\n<p>The key concepts while using the Catalog API are:</p>\n<h2 id=\"locale\">Locale</h2>\n<p>A <a href=\"https://academy.insiderone.com/v1/docs/locales-and-stores\"><b>locale</b></a> identifies the market context for your product data. It combines a language/country code with an optional store identifier, enabling you to serve localized content and region-specific pricing to different markets.</p>\n<p>Products can exist in multiple locales simultaneously. Each locale maintains its own product name, description, pricing, categories, and stock data, allowing you to manage a global catalog from a single integration.</p>\n<blockquote>\n<p>&lt;p &gt;The locale value in your API payload must exactly match a locale defined in your account. Payloads with undefined locales will not be ingested.&lt;/p&gt; </p>\n</blockquote>\n<h3 id=\"language-and-country-code\">Language and Country Code</h3>\n<p>The base locale follows the ISO standard format {language}_{COUNTRY} (e.g., en_US, pt_BR, de_DE). It determines the language of your product names/descriptions and the country context of your catalog.</p>\n<p>When using stores, the locale value is extended with a store suffix: {locale}:{store} (e.g., en_US:newyork).</p>\n<h3 id=\"store\">Store</h3>\n<p>A <strong>store</strong> sits under a locale and represents a specific warehouse, retail branch, delivery hub, or virtual storefront within that locale. Stores enable inventory segmentation; prices, availability, and stock can differ by store.</p>\n<p>Store-level data is limited to pricing and stock fields only (price, original_price, omnibus_price, in_stock, stock_count). All other product attributes (name, category, image, etc.) are defined at the locale level and shared across stores.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Example</th>\n<th>Locale</th>\n<th>Stores</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Grocery chain (US)</td>\n<td>en_US</td>\n<td>en_US:east_coast, en_US:west_coast</td>\n<td>Separate warehouses, price zones</td>\n</tr>\n<tr>\n<td>Fashion retailer (EMEA)</td>\n<td>en_GB, fr_FR, de_DE</td>\n<td>No stores</td>\n<td>Language-only personalization</td>\n</tr>\n<tr>\n<td>Electronics store (Brazil)</td>\n<td>pt_BR</td>\n<td>pt_BR:saopaulo, pt_BR:riodejaneiro</td>\n<td>Regional stock and pricing</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"managing-locales\">Managing Locales</h3>\n<p>You can <a href=\"https://academy.insiderone.com/v1/docs/locales-and-stores\">create and manage locales</a> through the Insider One’s InOne panel.</p>\n<p>Alternatively, you can create locales in bulk via the Catalog API using the Create Locale API.</p>\n<ul>\n<li><p>For stores with a small number of locales, creating locales through the InOne panel is quick and straightforward.</p>\n</li>\n<li><p>For larger or more complex setups, the Create Locale API enables faster and more scalable locale management.</p>\n</li>\n</ul>\n<h2 id=\"feed-management-type\">Feed Management Type</h2>\n<p>Your account is configured with a <a href=\"https://academy.insiderone.com/docs/product-catalog-feed-types\">Feed Management Type</a> that determines which pricing/stock fields are required in your product payloads.</p>\n<p>Every Ingest request requires core product fields (item_id, locale, name, url, image_url). Based on your Feed Management Type, some fields are added as required fields on top of these:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Type</th>\n<th>Additional Required Fields</th>\n<th>Use Case</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Stock &amp; Revenue Based</td>\n<td>price, original_price, in_stock</td>\n<td>Standard ecommerce catalogs with pricing and inventory</td>\n</tr>\n<tr>\n<td>Availability Based</td>\n<td>in_stock</td>\n<td>Catalogs where pricing is not tracked</td>\n</tr>\n<tr>\n<td>Published Time Based</td>\n<td>item_update_date</td>\n<td>Content feeds ordered by publication date</td>\n</tr>\n<tr>\n<td>Start &amp; End Time Based</td>\n<td>item_start_date, item_end_date</td>\n<td>Time-bound promotions or campaigns</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n</blockquote>\n<p>Your feed management type is selected during the <a href=\"https://academy.insiderone.com/docs/product-catalog-data-planning\">onboarding process</a>. If you are unsure which type applies to your integration, check your Catalog Settings or contact the Insider One team.</p>\n<h2 id=\"limitations\">Limitations</h2>\n<p>The Catalog API enforces limits on request size, field lengths, and field values to ensure data quality and system stability. Records that exceed these limits will be rejected or reported as invalid in the response.</p>\n<h3 id=\"request--rate-limits\">Request &amp; Rate Limits</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Limit</th>\n<th>Value</th>\n<th>Details</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Maximum records per request</td>\n<td>10,000</td>\n<td>Exceeding returns 400</td>\n</tr>\n<tr>\n<td>Maximum request body size</td>\n<td>5 MB</td>\n<td>Exceeding returns 400</td>\n</tr>\n<tr>\n<td>Maximum single record size</td>\n<td>512 KB</td>\n<td>Oversized record is marked invalid; other records are not affected.</td>\n</tr>\n<tr>\n<td>Rate limit (per account)</td>\n<td>60 requests/minute</td>\n<td>Rolling window. Exceeding returns 429</td>\n</tr>\n</tbody>\n</table>\n</div><p>Each Catalog API call counts as <strong>one request</strong> regardless of how many records it contains. To maximize throughput, batch as many records as possible per request (up to 10,000) rather than sending many small requests.</p>\n<p><strong>Example</strong>: If you send <strong>60 requests within a 1-minute</strong> window, subsequent requests will be rejected with <strong>429 Too Many Requests</strong> until the oldest requests fall outside the window.</p>\n<h3 id=\"field-length-limits\">Field Length Limits</h3>\n<p>Fields that exceed the maximum length will cause the individual record to be marked as invalid. Other records in the same request are not affected.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Max Lenght</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>item_id</td>\n<td>128 characters</td>\n</tr>\n<tr>\n<td>name</td>\n<td>512 characters</td>\n</tr>\n<tr>\n<td>url</td>\n<td>512 characters</td>\n</tr>\n<tr>\n<td>description</td>\n<td>1024 characters</td>\n</tr>\n<tr>\n<td>brand, sku, color, size, gender</td>\n<td>512 characters each</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>64 characters</td>\n</tr>\n<tr>\n<td>category (combined)</td>\n<td>1024 characters</td>\n</tr>\n<tr>\n<td>tags (combined)</td>\n<td>4096 characters</td>\n</tr>\n<tr>\n<td>variants (each)</td>\n<td>512 characters</td>\n</tr>\n<tr>\n<td>product_attributes values</td>\n<td>512 characters per value</td>\n</tr>\n<tr>\n<td>product_attributes arrays</td>\n<td>1024 characters combined</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"value-constraints\">Value Constraints</h3>\n<p>The following constraints are enforced during validation. Records that violate these rules will be marked as invalid in the response with a corresponding error detail.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Constraint</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>item_id, locale</td>\n<td>Cannot be undefined, unknown, null, or empty</td>\n</tr>\n<tr>\n<td>in_stock</td>\n<td>Must be 0 or 1</td>\n</tr>\n<tr>\n<td>stock_count</td>\n<td>Must be &gt;= 0</td>\n</tr>\n<tr>\n<td>rating</td>\n<td>Must be 0–10</td>\n</tr>\n<tr>\n<td>price, original_price amounts</td>\n<td>Must be &gt;= 0</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Must include protocol (https://...)</td>\n</tr>\n<tr>\n<td>image_url</td>\n<td>Must start with http://, https://, or //</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"usage-notes\">Usage Notes</h3>\n<ul>\n<li><p>When updating products, price and original_price must be sent together if either is included.</p>\n</li>\n<li><p>For updates with present=true, products not found in the catalog will be reported as errors.</p>\n</li>\n</ul>\n<h3 id=\"locale-limits\">Locale Limits</h3>\n<ul>\n<li><p>Maximum <strong>1000</strong> locales can be created.</p>\n</li>\n<li><p>Maximum <strong>64</strong> characters for locale + store key combined</p>\n</li>\n</ul>\n<blockquote>\n<p>&lt;p &gt;The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider One team — we can adjust it to fit your needs.&lt;/p&gt; </p>\n</blockquote>\n<h2 id=\"error-handling\">Error Handling</h2>\n<p>The Catalog API distinguishes between request-level and record-level errors:</p>\n<ul>\n<li><p><strong>Request-level errors (4xx)</strong> mean the entire request was rejected; no records were processed. These occur for authentication failures, malformed JSON, or exceeding request size/count limits.</p>\n</li>\n<li><p><strong>Record-level errors</strong> are returned inside a <strong>200</strong> response. Even if every record in your payload is invalid, the API still returns <strong>200</strong>. You must always check the response body to determine how many records were accepted and how many failed.</p>\n</li>\n</ul>\n<h3 id=\"http-status-codes\">HTTP Status Codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Request processed. Check response body for individual record results.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Invalid request (malformed JSON, limit exceeded, invalid fields).</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Authentication failed. Invalid token or partner name.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden. API integration not active or IP not allowed.</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Rate limit exceeded.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal server error.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"common-error-messages\">Common Error Messages</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error</th>\n<th>Status</th>\n<th>Cause</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Maximum allowed record count is exceeded.</td>\n<td>400</td>\n<td>More than 10,000 records in request</td>\n</tr>\n<tr>\n<td>Maximum allowed request size is exceeded.</td>\n<td>400</td>\n<td>Request body larger than 5 MB</td>\n</tr>\n<tr>\n<td>Request data is not in valid JSON format.</td>\n<td>400</td>\n<td>Malformed JSON body</td>\n</tr>\n<tr>\n<td>Unknown field in nested payload: \"\"</td>\n<td>400</td>\n<td>Field not recognized in nested payload structure</td>\n</tr>\n<tr>\n<td>Partner does not have necessary integration settings for Catalog API.</td>\n<td>403</td>\n<td>API integration not enabled for your account</td>\n</tr>\n<tr>\n<td>Partner token authentication is unsuccessful.</td>\n<td>401</td>\n<td>Invalid token</td>\n</tr>\n<tr>\n<td>IP is not allowed.</td>\n<td>403</td>\n<td>Request from unauthorized IP address</td>\n</tr>\n<tr>\n<td>No locales sent in payload</td>\n<td>400</td>\n<td>Empty locales array in /v2/locales</td>\n</tr>\n<tr>\n<td>Record size limit is exceeded.</td>\n<td>200</td>\n<td>Single record exceeds 512 KB. The request succeeds but the oversized record is reported as invalid in the response body. Other records are not affected.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"a73c6655-4bce-43ed-9046-3e0038604a6b"},{"name":"Recommendations","item":[{"name":"Algorithm Descriptions","item":[{"name":"Chef","id":"bb847166-d404-4aff-a05f-4885286452f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/chef","description":"<p>Chef is an automated recommendation algorithm that automatically identifies the best mixed strategy by testing the most popular items, top sellers, user-based, highest-discounted, new arrivals, and trending items algorithms to improve conversion rates. In a mixed strategy, you manually choose an algorithm for each slot. Chef, instead, chooses the best combination by automatically evaluating the algorithms' performance.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/chef\">https://recommendation.api.useinsider.com/v2/chef</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier, which is assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Language or region of the site.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>It is the requested platform. Its value can be web and app. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Shows products with the specified currency.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>testUser</td>\n<td>User identifier, which is assigned by Insider One.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false, true or 0, 1</td>\n<td>Makes affinities affect the products of the response. The default is false.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[\"Tops\",\"Shirts\"]</td>\n<td>Category filter of the products</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>true</td>\n<td>Shows variant products under the products of the response.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>10</td>\n<td>How many viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>10</td>\n<td>How many purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>country</td>\n<td>Italy</td>\n<td>Requested country information</td>\n<td>String</td>\n<td>No (Only for Location Based Top Sellers usage in Mixed Strategy)</td>\n</tr>\n<tr>\n<td>city</td>\n<td>Milan</td>\n<td>Requested city information</td>\n<td>String</td>\n<td>No (Only for Location Based Top Sellers usage in Mixed Strategy)</td>\n</tr>\n<tr>\n<td>dayLimit</td>\n<td>7</td>\n<td>Threshold last update day value for Publisher partners The default is 2 days.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ulv</td>\n<td>true, false</td>\n<td>Enables User Last Visit to affect recommendation results</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below shows a request to Chef, an automated recommendation strategy that picks the best-performing mix (popular items, top sellers, user-based, highest-discounted, new arrivals, trending, etc.) per slot—no manual algorithm selection required.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/chef?partnerName={PartnerName}&amp;locale={Locale}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"success\": true,\n        \"total\": 16,\n        \"types\": {\n        \"mpop\": 14,\n        \"mvop\": 2\n        },\n        \"data\": [\n        \"ABC1234\",\n        \"ABC1243\",\n        \"ABC1234\",\n        \"ABC1235\",\n        \"ABC1237\",\n        \"ABC1230\",\n        \"ABC1263\",\n        \"ABC1209\",\n        \"ABC1256\",\n        \"CBA1234\",\n        \"CBA1233\",\n        \"CBA1236\",\n        \"CBA1239\",\n        \"CBA1221\",\n        \"CBA1209\",\n        \"CBA1247\"\n        ]\n        }\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>The Chef algorithm doesn't have a specific fallback mechanism; instead, fallback algorithms are determined by the individual algorithms selected by Chef.</p>\n","urlObject":{"protocol":"https","path":["v2","chef"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"bb847166-d404-4aff-a05f-4885286452f9"},{"name":"Complementary Products","id":"1b6352a7-febd-45bc-a661-fdd7a5f51ce9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/complementary","description":"<p>The Complementary Products algorithm represents a different approach compared to Collaborative Algorithms, which are typically used to complement product recommendations. It is particularly effective on <strong>product pages</strong> and <strong>cart pages</strong>.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/complementary\">https://recommendation.api.useinsider.com/v2/complementary</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC0123</td>\n<td>Base product ID</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier, which is assigned by Insider One</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days should viewed products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>100</td>\n<td>How many viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days should purchased products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>How many purchased products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Makes affinities affect the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Complementary Products, the algorithm that suggests items frequently bought or viewed together with the anchor product.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/complementary?partnerName={PartnerName}&amp;locale={Locale}&amp;productId={ProductId}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"success\": true,\n        \"total\": 5,\n        \"types\": {\n        \"cp\": 5\n        },\n        \"data\": [\n        \"ABC321Z8\",\n        \"ABC312Z8\",\n        \"ABC123Z8\",\n        \"ABC234Z8\",\n        \"ABC345Z8\"\n        ]\n        }\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products from <strong>Complementary Products</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li><p>Purchased Together</p>\n</li>\n<li><p>Top Sellers of Category</p>\n</li>\n<li><p>Top Sellers</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","complementary"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"1b6352a7-febd-45bc-a661-fdd7a5f51ce9"},{"name":"Highest Discounted Products","id":"e665443c-9e05-4f71-840c-897c016a56ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/highest-discounted","description":"<p>The Highest Discounted Products algorithm recommends products based on their discount ratios, prioritizing those with higher discounts. It calculates the discount ratio for each product using the original and discounted prices. Recommended products will be sorted from highest to lowest discount for the given size. For each currency type, the discount ratio is calculated separately. This type of algorithm works best on <strong>main and category pages</strong>.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/highest-discounted\">https://recommendation.api.useinsider.com/v2/highest-discounted</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of the requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier which is assigned by Insider One</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false, true, or 1, 0</td>\n<td>Makes affinities affect products of the response. The default is false.</td>\n<td>Boolean</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>10</td>\n<td>How many viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>10</td>\n<td>How many purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>If you want to get top sellers products from the category or categories you want, specify either <strong>categoryList</strong> or <strong>category</strong> and <strong>subCategory</strong>.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request for the Highest Discounted Products; the algorithm recommends products based on their discount ratios, prioritizing those with higher discounts.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/highest-discounted?partnerName={Partner Name}&amp;locale={Locale}&amp;size=5¤cy={Currency}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n        \"success\": true,\n        \"total\": 5,\n        \"types\": {\n        \"hdop\": 5\n        },\n        \"data\": [\n        \"AB76543\",\n        \"AB54321\",\n        \"YZ76543\",\n        \"AB49876\",\n        \"AB01234\"\n        ]\n        }\n\n</code></pre><h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products from the <strong>Highest Discounted Products</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li>Highest discounted products of the category without excluding the right-most item in the categoryList</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","highest-discounted"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"e665443c-9e05-4f71-840c-897c016a56ec"},{"name":"Manual Merchandising","id":"c73b16d5-bbc9-4234-84f9-cb8670aba821","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/manual-merchandising","description":"<p>The Manual Merchandising algorithm retrieves product details manually specified and returns only in-stock products. It enables you to showcase specific products or content (e.g., for special days) from a list specified in the campaign configuration. In addition, only in-stock products will be displayed in the recommendation widget. This type of algorithm can be used on all page types to promote specific products.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/manual-merchandising\">https://recommendation.api.useinsider.com/v2/manual-merchandising</a></p>\n<p>You need to write Product IDs as comma-separated in the productId parameter, such as <em>productId=ed061306,287a4a89,8f0db743,69de9b05</em></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC1234</td>\n<td>The ID of the product whose complementary is requested</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>testUser</td>\n<td>User identifier which is assigned by Insider One</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false, true or 0, 1</td>\n<td>Makes affinities affect products of the response. The default is false.</td>\n<td>Boolean</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>10</td>\n<td>How many viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>10</td>\n<td>How many purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>includeOutOfStockItems</td>\n<td>False, true, 0, or 1</td>\n<td>Boolean flag to decide if out of stock products given in endpoint parameter should return in API response. The default is <em>false</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to the Manual Merchandising algorithm:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/manual-merchandising?partnerName={Partner Name}&amp;locale={Locale}&amp;productId=ABC12345,XYZ12345\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 2,\n    \"types\": {\n        \"mm\": 2\n    },\n    \"data\": [\n        \"ABC12345\",\n        \"XYZ12345\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>There is no fallback algorithm for this recommendation type, as only requested items are recommended.</p>\n","urlObject":{"protocol":"https","path":["v2","manual-merchandising"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"c73b16d5-bbc9-4234-84f9-cb8670aba821"},{"name":"Mixed Strategy","id":"f433ab29-d1d6-4461-924b-c3e2b2dfdadc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/mixed","description":"<p>The Mixed Strategy algorithm creates a customized, mixed recommendation strategy that combines different recommendation types. It is a way to use different algorithms for each slot in the Recommendation Widget. The mixed strategy allows you to use multiple algorithms in a single recommendation widget on your website. It works best on the <strong>main and category pages</strong>.</p>\n<p>The duplicated items are automatically removed by the Mixed Strategy algorithm.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/mixed\">https://recommendation.api.useinsider.com/v2/mixed</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>strategy</td>\n<td>[{\"recommendationType\":\"rvp\",\"size\":1}, {\"recommendationType\":\"ub\",\"size\":2}]</td>\n<td>List of strategies.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>testUser</td>\n<td>User ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false, true, or 0, 1</td>\n<td>Makes affinities affect the products of the response. The default is <em>false</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>10</td>\n<td>How many viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>10</td>\n<td>How many purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>country</td>\n<td>Germany</td>\n<td>Requested country information</td>\n<td>String</td>\n<td>No (Only for Location Based Top Sellers usage in Mixed Strategy)</td>\n</tr>\n<tr>\n<td>city</td>\n<td>Hamburg</td>\n<td>Requested city information</td>\n<td>String</td>\n<td>No (Only for Location Based Top Sellers usage in Mixed Strategy)</td>\n</tr>\n<tr>\n<td>dayLimit</td>\n<td>7</td>\n<td>Threshold last update day value for Publisher partners (The default is 2 days.)</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ulv</td>\n<td>true, false</td>\n<td>Enables User Last Visit to affect the recommendation results</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>You need to add the necessary query parameters for the strategy or strategies you are using.</p>\n<h3 id=\"strategy\">Strategy</h3>\n<p>Strategy is used to specify the desired recommendation types and sizes. Strategies are given within an array. Each strategy is an object that contains the keys <strong>recommendationType</strong> and <strong>size</strong>. <strong>recommendationType</strong> indicates the type of recommendation required, while <strong>size</strong> specifies the quantity needed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"recommendationType\": \"ub\",\n        \"size\": 2\n    },\n    {\n        \"recommendationType\": \"btb\",\n        \"size\": 2\n    },\n    ...\n]\n\n</code></pre>\n<h4 id=\"list-of-strategies\">List of Strategies</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Algorithm</th>\n<th>Abbreviation</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Chef</td>\n<td>chef</td>\n</tr>\n<tr>\n<td>Complementary Products</td>\n<td>cp</td>\n</tr>\n<tr>\n<td>Highest Discounted</td>\n<td>hdop</td>\n</tr>\n<tr>\n<td>Highest Discounted of Category</td>\n<td>hdoc</td>\n</tr>\n<tr>\n<td>Location Based Top Sellers</td>\n<td>mpol</td>\n</tr>\n<tr>\n<td>Manual Merchandising</td>\n<td>mm</td>\n</tr>\n<tr>\n<td>Most Popular</td>\n<td>mvop</td>\n</tr>\n<tr>\n<td>Most Popular of Category</td>\n<td>mvoc</td>\n</tr>\n<tr>\n<td>Most Valuable Products</td>\n<td>mvpop</td>\n</tr>\n<tr>\n<td>Most Valuable Products of Category</td>\n<td>mvpoc</td>\n</tr>\n<tr>\n<td>New Arrivals</td>\n<td>naop</td>\n</tr>\n<tr>\n<td>New Arrivals of the Category</td>\n<td>naoc</td>\n</tr>\n<tr>\n<td>Viewed Together</td>\n<td>vtv</td>\n</tr>\n<tr>\n<td>Purchased Together</td>\n<td>btb</td>\n</tr>\n<tr>\n<td>Purchased with Last Purchased</td>\n<td>lpt</td>\n</tr>\n<tr>\n<td>Substitute Products</td>\n<td>sp</td>\n</tr>\n<tr>\n<td>Top Sellers</td>\n<td>mpop</td>\n</tr>\n<tr>\n<td>Top Sellers of Category</td>\n<td>mpoc</td>\n</tr>\n<tr>\n<td>Trending Products</td>\n<td>tpop</td>\n</tr>\n<tr>\n<td>Trending Products of Category</td>\n<td>tpoc</td>\n</tr>\n<tr>\n<td>User Based</td>\n<td>ub</td>\n</tr>\n<tr>\n<td>Viewed Together</td>\n<td>vtv</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to the Mixed Strategy algorithm:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/mixed?locale={Locale}&amp;partnerName={PartnerName}&amp;strategy=[{\"recommendationType\":\"hdop\",\"size\":2}]\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 2,\n    \"types\": {\n        \"hdop\": 2\n    },\n    \"data\": [\n        \"XYZ-987789\",\n        \"ABC-123321\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>Fallback algorithms are determined by your strategy selections.</p>\n","urlObject":{"protocol":"https","path":["v2","mixed"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"f433ab29-d1d6-4461-924b-c3e2b2dfdadc"},{"name":"Most Popular Items","id":"ad1756ce-6ea4-46ed-ab8d-111cfa639f92","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/most-popular","description":"<p>The Most Popular Items algorithm recommends items by analyzing the most popular products by page views. It generates recommendations based on the page view counts during the last 30 days. The Most Popular Items algorithm works best on <strong>main, category, and product pages</strong>.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/most-popular\">https://recommendation.api.useinsider.com/v2/most-popular</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the details of variant products</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier, which is assigned by Insider One</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days should viewed products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>100</td>\n<td>How many viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days should purchased products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>How many purchased products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Makes affinities affect products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"algorithm-customization\">Algorithm Customization</h3>\n<p>The Most Popular Items algorithm also provides users with product recommendations based on their popularity within categories. To obtain category-based most popular products, the API endpoint should include the categoryList parameter with valid category values from the Product Catalog.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variant Name</th>\n<th>Condition</th>\n<th>Parameter(s)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Most Popular Items of Partner</td>\n<td>No category filter</td>\n<td>Default (no categoryList)</td>\n</tr>\n<tr>\n<td>Most Popular Items of Category</td>\n<td>Category filter provided</td>\n<td>categoryList=[category1, category2, ...]</td>\n</tr>\n</tbody>\n</table>\n</div><p>When categoryList is provided, recommendations are filtered to show only the Most Popular products within the specified categories. Recommendations served in the API response will be abbreviated as mvoc for Most Popular Items of Category recommendations.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Most Popular Items, an algorithm that recommends products with the highest overall engagement based on page views.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/most-popular?locale={Locale}&amp;partnerName={PartnerName}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 1,\n    \"types\": {\n        \"mvop\": 1\n    },\n    \"data\": [\n{\n            \"image_url\": \"test.image_url.com\",\n            \"name\": \"Original Air-dried Beef recipe for dogs\",\n            \"item_id\": \"46177313784082\",\n            \"url\": \"test.url.com\",\n            \"description\": \"Having access to lush fields of grass year-round makes New Zealand free-range, grass-fed beef among the best in the world.\",\n            \"in_stock\": 1,\n            \"price\": {\n                \"USD\": 29.58\n            },\n            \"groupcode\": \"8528988209426\",\n            \"locale\": \"en_US\",\n            \"product_attributes\": {\n                \"activation_date\": \"2023-08-11\",\n                \"shopify_tag\": [\n                    \"air-dried\",\n                    \"beef\",\n                    \"dog\"\n                ]\n            },\n            \"stock_count\": 99,\n            \"category\": [\n                \"Dog Food\",\n                \"Pets Collection\"\n            ],\n            \"discount\": {\n                \"USD\": 0.0\n            },\n            \"original_price\": {\n                \"USD\": 29.58\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"sample-request-for-most-popular-of-category\">Sample Request for Most Popular of Category</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/most-popular?locale={Locale}&amp;partnerName={PartnerName}&amp;categoryList=[“Dog Food”]\n\n</code></pre>\n<h3 id=\"sample-response-1\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 1,\n    \"types\": {\n        \"mvoc\": 1\n    },\n    \"data\": [\n{\n            \"image_url\": \"test.image_url.com\",\n            \"name\": \"Original Air-dried Beef recipe for dogs\",\n            \"item_id\": \"46177313784082\",\n            \"url\": \"test.url.com\",\n            \"description\": \"Having access to lush fields of grass year-round makes New Zealand free-range, grass-fed beef among the best in the world.\",\n            \"in_stock\": 1,\n            \"price\": {\n                \"USD\": 29.58\n            },\n            \"groupcode\": \"8528988209426\",\n            \"locale\": \"en_US\",\n            \"product_attributes\": {\n                \"activation_date\": \"2023-08-11\",\n                \"shopify_tag\": [\n                    \"air-dried\",\n                    \"beef\",\n                    \"dog\"\n                ]\n            },\n            \"stock_count\": 99,\n            \"category\": [\n                \"Dog Food\",\n                \"Pets Collection\"\n            ],\n            \"discount\": {\n                \"USD\": 0.0\n            },\n            \"original_price\": {\n                \"USD\": 29.58\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products come from <strong>Most Popular Items</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li>Most viewed items of the category, including the rightmost item in the categoryList</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","most-popular"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ad1756ce-6ea4-46ed-ab8d-111cfa639f92"},{"name":"Most Valuable Products","id":"60dd98e9-6b13-4bc7-ad1a-d55b9ce3f2d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/most-valuable","description":"<p>The Most Valuable Products algorithm recommends items based on their contribution to total revenue. It recommends products that generate more revenue across your site. Products are recommended based on the contribution to revenue and revenue per visit. This type of algorithm can be used on all page types.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/most-valuable\">https://recommendation.api.useinsider.com/v2/most-valuable</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of the requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier that is assigned by Insider One</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days should viewed products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>100</td>\n<td>How many viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days should purchased products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>How many purchased products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Makes affinities affect the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Most Valuable Products, an algorithm that recommends items based on their contribution to total revenue:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/most-valuable?locale={Locale}¤cy={Currenct}&amp;partnerName={PartnerName}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 10,\n    \"types\": {\n        \"mpop\": 10\n    },\n    \"data\": [\n        \"QAZ-7890\",\n        \"XYZ-1234\",\n        \"QAZ-7899\",\n        \"XYZ-1233\",\n        \"QAZ-7898\",\n        \"XYZ-1243\",\n        \"QAZ-7891\",\n        \"XYZ-1223\",\n        \"QAZ-7892\",\n        \"XYZ-1342\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products from <strong>Most Valuable Products</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li>Most valuable products of the category, including the rightmost item in the categoryList.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","most-valuable"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"60dd98e9-6b13-4bc7-ad1a-d55b9ce3f2d8"},{"name":"New Arrivals","id":"7da86df0-658a-4aa7-96b1-113450208a63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/new-arrivals","description":"<p>The New Arrivals algorithm displays products that have been newly added to the website. It directly accesses the catalog and sorts products by creation date. Changing the integration type doesn't affect the results if the product is already in the database. You can use the New Arrivals algorithm on the main page to showcase new products.</p>\n<p>For the Publisher vertical, the updated time applies to newly released articles.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/new-arrivals\">https://recommendation.api.useinsider.com/v2/new-arrivals</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>testUser</td>\n<td>User ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>true, false or 0, 1</td>\n<td>Makes affinities affect products of the response. The default is false.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>10</td>\n<td>How many viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>10</td>\n<td>How many purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"algorithm-customization\">Algorithm Customization</h3>\n<p>The New Arrivals algorithm can also provide users with discounted product recommendations within the desired category.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variant Name</th>\n<th>Condition</th>\n<th>Parameter(s)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>New Arrivals of Partner</td>\n<td>No category filter</td>\n<td>Default (no categoryList)</td>\n</tr>\n<tr>\n<td>New Arrivals of Category</td>\n<td>Category filter provided</td>\n<td>categoryList=[cat1, cat2, ...]</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n</blockquote>\n<p>When <strong>categoryList</strong> is provided, only newly added products within the specified categories are recommended, ordered by publish date. Recommendations served in the API response will be abbreviated as naoc for the New Arrivals of Category recommendations.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to New Arrivals, an algorithm that recommends products newly added to the website.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/new-arrivals?locale={Locale}&amp;partnerName={PartnerName}\n\n</code></pre>\n<h2 id=\"sample-response\">Sample Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 1,\n    \"types\": {\n        \"naop\": 1\n    },\n    \"data\": [\n{\n            \"image_url\": \"test.image_url.com\",\n            \"name\": \"Original Air-dried Beef recipe for dogs\",\n            \"item_id\": \"46177313784082\",\n            \"url\": \"test.url.com\",\n            \"description\": \"Having access to lush fields of grass year-round makes New Zealand free-range, grass-fed beef among the best in the world.\",\n            \"in_stock\": 1,\n            \"price\": {\n                \"USD\": 29.58\n            },\n            \"groupcode\": \"8528988209426\",\n            \"locale\": \"en_US\",\n            \"product_attributes\": {\n                \"activation_date\": \"2023-08-11\",\n                \"shopify_tag\": [\n                    \"air-dried\",\n                    \"beef\",\n                    \"dog\"\n                ]\n            },\n            \"stock_count\": 99,\n            \"category\": [\n                \"Dog Food\",\n                \"Pets Collection\"\n            ],\n            \"discount\": {\n                \"USD\": 0.0\n            },\n            \"original_price\": {\n                \"USD\": 29.58\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"sample-request-for-new-arrivals-of-category\">Sample Request for New Arrivals of Category</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/new-arrivals?locale={Locale}&amp;partnerName={PartnerName}¤cy={Currency}&amp;categoryList=[“Dog Food”]\n\n</code></pre>\n<h3 id=\"sample-response-1\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 1,\n    \"types\": {\n        \"naoc\": 1\n    },\n    \"data\": [\n{\n            \"image_url\": \"test.image_url.com\",\n            \"name\": \"Original Air-dried Beef recipe for dogs\",\n            \"item_id\": \"46177313784082\",\n            \"url\": \"test.url.com\",\n            \"description\": \"Having access to lush fields of grass year-round makes New Zealand free-range, grass-fed beef among the best in the world.\",\n            \"in_stock\": 1,\n            \"price\": {\n                \"USD\": 29.58\n            },\n            \"groupcode\": \"8528988209426\",\n            \"locale\": \"en_US\",\n            \"product_attributes\": {\n                \"activation_date\": \"2023-08-11\",\n                \"shopify_tag\": [\n                    \"air-dried\",\n                    \"beef\",\n                    \"dog\"\n                ]\n            },\n            \"stock_count\": 99,\n            \"category\": [\n                \"Dog Food\",\n                \"Pets Collection\"\n            ],\n            \"discount\": {\n                \"USD\": 0.0\n            },\n            \"original_price\": {\n                \"USD\": 29.58\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products from <strong>New Arrivals</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li>New arrivals of the category, including the rightmost item in the categoryList.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","new-arrivals"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"7da86df0-658a-4aa7-96b1-113450208a63"},{"name":"Purchased Together","id":"d45f0226-7636-4e18-9a06-c84e24c7008e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/purchased-together","description":"<p>The Purchased Together algorithm recommends items by finding complementary products purchased by other users who have also purchased the user's items. It generates recommendations based on products purchased in the same sessions and in the same locale over the past 30 days. After generating recommendations, the Purchased Together algorithm orders the results according to purchase frequency. With the Purchased Together algorithm, you can apply your users' purchase patterns to your strategies. This type of algorithm works best on <strong>product and cart pages</strong>.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/purchased-together\">https://recommendation.api.useinsider.com/v2/purchased-together</a></p>\n<p>When this algorithm is used on the cart page, its endpoint differs for multiple products. For example, three products (X, Y, Z) are in the cart. The recommendation API will return the complementary products for each product in the cart as X1, Y1, Z1, X2, Y2, Z2... respectively.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of the requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC1234</td>\n<td>The ID of the product whose complementary is requested</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>testUser</td>\n<td>User identifier which is assigned by Insider One</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>true, false, or 0, 1</td>\n<td>Makes affinities affect products of the response. The default is <em>false</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>10</td>\n<td>How many viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Purchased Together, an algorithm that recommends items frequently bought alongside the user’s selected product(s).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/purchased-together?partnerName={PartnerName}&amp;locale={Locale}&amp;productId={ProductId}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 10,\n    \"types\": {\n        \"btb\": 10\n    },\n    \"data\": [\n        \"QAZ-7890\",\n        \"XYZ-1234\",\n        \"QAZ-7899\",\n        \"XYZ-1233\",\n        \"QAZ-7898\",\n        \"XYZ-1243\",\n        \"QAZ-7891\",\n        \"XYZ-1223\",\n        \"QAZ-7892\",\n        \"XYZ-1342\"\n    ]\n}\n\n</code></pre>\n<h2 id=\"fallback-algorithms\">Fallback Algorithms</h2>\n<p>If the products from <strong>Purchased Together</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li><p>View Together</p>\n</li>\n<li><p>Most Purchased of the Category</p>\n</li>\n<li><p>Most Purchased of the Partner</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","purchased-together"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d45f0226-7636-4e18-9a06-c84e24c7008e"},{"name":"Purchased with Last Purchased","id":"38785738-dfab-4ea3-ab11-8e15b32734b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/last-purchased-together","description":"<p>The Purchased with Last Purchased algorithm is one of Insider One's personalized algorithms. It recommends the purchased products along with the user’s last purchased product. <strong>Purchase</strong> events can be collected from Web, Mobile, and Offline (CRM) UCD events. It is available on Web Smart Recommender, API-based Recommender, and App Recommender.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/last-purchased-together\">https://recommendation.api.useinsider.com/v2/last-purchased-together</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>1000001</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Language or region of the site</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Shows products with the specified currency</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier that is assigned by Insider One</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds item details to the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Hyper-personalization activation</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. The maximum allowed size is 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffle the products in the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants by the same group ID. If the panel setting is <em>true</em> for this feature, the parameter will always be <em>true</em>. Otherwise, it depends on the parameter. The default value is <em>false</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>Exclude items the user purchased in X days</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>Exclude items the user viewed in X days</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>The number of purchased products to exclude</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>100</td>\n<td>The number of viewed products to exclude</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filters of the product</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>true, false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td>name, category</td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>dayLimit</td>\n<td>7</td>\n<td>Threshold last update day value for Publisher partners. The default is 2 days.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Purchased with Last Purchased, one of Insider One’s personalized recommendation algorithms.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/last=purchased-together?partnerName={PartnerName}&amp;locale={Locale}&amp;userId={UserId}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"total\": 10,\n  \"types\": {\n    \"lpt\": 10\n  },\n  \"data\": [\n    \"QAZ-7890\",\n    \"XYZ-1234\",\n    \"QAZ-7899\",\n    \"XYZ-1233\",\n    \"QAZ-7898\",\n    \"XYZ-1243\",\n    \"QAZ-7891\",\n    \"XYZ-1223\",\n    \"QAZ-7892\",\n    \"XYZ-1342\"\n  ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>Because of its nature, the Purchased with Last Purchased Algorithm doesn’t have a fallback. However, you can always tune it by configuring the minimum number of products displayed in the Recommendation carousel under <a href=\"https://academy.insiderone.com/docs/recommendation-strategies\">Recommendation Strategies</a>.</p>\n","urlObject":{"protocol":"https","path":["v2","last-purchased-together"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"38785738-dfab-4ea3-ab11-8e15b32734b7"},{"name":"Recently Viewed Products","id":"c51542d8-99c9-45c4-b58e-e8260dbc7239","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/recently-viewed","description":"<p>The Recently Viewed Products algorithm is one of Insider One's personalized algorithms. It tracks the user’s product-view behavior collected from the UCD, capturing data from both Web and Mobile events. In return, the Recently Viewed Products algorithm provides recommendations based on the user’s recently viewed products. It performs best on the <strong>cart pages</strong>. It is available on Web Smart Recommender, API-based Recommender, and App Recommender.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/recently-viewed\">https://recommendation.api.useinsider.com/v2/recently-viewed</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>1000001</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Language or region of the site</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Shows products with the specified currency</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier that is assigned by Insider One</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Its value can be web, mobile, or mobileV2. Web comes default.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds item details to the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Hyper-personalization activation</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. The maximum allowed size is 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffle the products in the response.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants by the same group ID. If the panel setting is <em>true</em> for this feature, the parameter will always be <em>true</em>. Otherwise, it depends on the parameter. The default value is false.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>Exclude items the user purchased in X days</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>The number of purchased products to exclude</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>dayLimit</td>\n<td>7</td>\n<td>Threshold last update day value for Publisher partners (The default is 2 days.)</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>true, false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td>name, category</td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>Because of its nature, the Recently Viewed Algorithm doesn’t have a fallback. However, you can always tune it by configuring the minimum number of products displayed in the recommendation carousel in the <a href=\"https://academy.insiderone.com/docs/recommendation-strategies\">Recommendation Strategies</a>.</p>\n","urlObject":{"protocol":"https","path":["v2","recently-viewed"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"c51542d8-99c9-45c4-b58e-e8260dbc7239"},{"name":"Substitute Products","id":"934103c4-fd03-49f7-a3cc-9865d3e98ca0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/substitute","description":"<p>The Substitute Products algorithm provides users with suggestions for products that can serve as replacements for items they have interacted with. The goal is to enhance user satisfaction and engagement by presenting products that align with their functional preferences and interests. This algorithm generates recommendations based on factors such as product name similarity, view-to-view statistics, and view-to-purchase statistics.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/substitute\">https://recommendation.api.useinsider.com/v2/substitute</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of the requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>testUser</td>\n<td>User identifier which is assigned by Insider One.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>true, false or 0, 1</td>\n<td>Makes affinities affect products of the response. The default is false.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days purchased products should be excluded.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>10</td>\n<td>How many purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Substitute Recommendation, an algorithm that suggests alternative products to items a user has interacted with.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/substitute?partnerName={PartnerName}&amp;locale={Locale}&amp;productId={ABC123CBA}&amp;size=5\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 5,\n    \"types\": {\n        \"sp\": 5\n    },\n    \"data\": [\n        \"ABC-123654\",\n        \"ABC-123321\",\n        \"ABC-123789\",\n        \"ABC-123987\",\n        \"ABC-123456\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products come from <strong>Substitute Products</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li><p>Viewed Together</p>\n</li>\n<li><p>Most Viewed of Category</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","substitute"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"934103c4-fd03-49f7-a3cc-9865d3e98ca0"},{"name":"Top Sellers","id":"95301f68-14d8-4c64-bc24-733dd572ff5c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/top-sellers","description":"<p>The Top Sellers algorithm recommends products based on their purchase counts over the last 30 days. It works best on the <strong>main page</strong>. </p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/top-sellers\">https://recommendation.api.useinsider.com/v2/top-sellers</a></p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of the requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier which is assigned by Insider One</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>100</td>\n<td>How many viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days purchased products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>How many purchased products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Makes affinities affect products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>city</td>\n<td>Milan</td>\n<td>Requested city information</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>country</td>\n<td>Italy</td>\n<td>Requested country information</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"algorithm-customizations\">Algorithm Customizations</h2>\n<p>The Top Sellers algorithm also provides users with product recommendations based on categories and locations.</p>\n<ul>\n<li><p>To retrieve category-based best-selling products, the API endpoint should include the categoryList parameter with valid category values from the Product Catalog.</p>\n</li>\n<li><p>To obtain the best-selling products based on <strong>location</strong>, <strong>country</strong>, and <strong>city</strong> information, the API endpoint should include these parameters.</p>\n</li>\n</ul>\n<p>Please refer to the table below for the conditions and parameters to customize the Top Sellers algorithm.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variant</th>\n<th>Condition</th>\n<th>Parameter(s)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Top Sellers</td>\n<td>No filters</td>\n<td>Default (no country, no categoryList)</td>\n</tr>\n<tr>\n<td>Top Sellers of Category</td>\n<td>Category filter provided</td>\n<td>categoryList=[cat1, cat2, ...]</td>\n</tr>\n<tr>\n<td>Top Sellers of Location</td>\n<td>Geographic filter provided</td>\n<td>country=&amp;city=</td>\n</tr>\n</tbody>\n</table>\n</div><p>When categoryList is provided, recommendations are filtered to show only the Top Seller products within the specified categories. Recommendations served in the API response will be abbreviated as mpoc for Top Sellers of Category recommendations.</p>\n<p>When Top Sellers of Location recommendations are requested, the API endpoint will present recommendations with the mpol abbreviation.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Top Sellers, an algorithm that recommends products with the highest purchase counts over the last 30 days.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://recommendation.api.useinsider.com/v2/top-sellers?locale={Locale}&amp;partnerName={PartnerName}\n\n</code></pre><h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 1,\n    \"types\": {\n        \"mpop\": 1\n    },\n    \"data\": [\n{\n            \"image_url\": \"test.image_url.com\",\n            \"name\": \"Original Air-dried Beef recipe for dogs\",\n            \"item_id\": \"46177313784082\",\n            \"url\": \"test.url.com\",\n            \"description\": \"Having access to lush fields of grass year-round makes New Zealand free-range, grass-fed beef among the best in the world.\",\n            \"in_stock\": 1,\n            \"price\": {\n                \"USD\": 29.58\n            },\n            \"groupcode\": \"8528988209426\",\n            \"locale\": \"en_US\",\n            \"product_attributes\": {\n                \"activation_date\": \"2023-08-11\",\n                \"shopify_tag\": [\n                    \"air-dried\",\n                    \"beef\",\n                    \"dog\"\n                ]\n            },\n            \"stock_count\": 99,\n            \"category\": [\n                \"Dog Food\",\n                \"Pets Collection\"\n            ],\n            \"discount\": {\n                \"USD\": 0.0\n            },\n            \"original_price\": {\n                \"USD\": 29.58\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"sample-request-for-top-sellers-of-category\">Sample Request for Top Sellers of Category</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/most-popular?locale={Locale}&amp;partnerName={PartnerName}¤cy={Currency}&amp;categoryList=[“Dog Food”]\n\n</code></pre>\n<h3 id=\"sample-response-1\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 1,\n    \"types\": {\n        \"mpoc\": 1\n    },\n    \"data\": [\n{\n            \"image_url\": \"test.image_url.com\",\n            \"name\": \"Original Air-dried Beef recipe for dogs\",\n            \"item_id\": \"46177313784082\",\n            \"url\": \"test.url.com\",\n            \"description\": \"Having access to lush fields of grass year-round makes New Zealand free-range, grass-fed beef among the best in the world.\",\n            \"in_stock\": 1,\n            \"price\": {\n                \"USD\": 29.58\n            },\n            \"groupcode\": \"8528988209426\",\n            \"locale\": \"en_US\",\n            \"product_attributes\": {\n                \"activation_date\": \"2023-08-11\",\n                \"shopify_tag\": [\n                    \"air-dried\",\n                    \"beef\",\n                    \"dog\"\n                ]\n            },\n            \"stock_count\": 99,\n            \"category\": [\n                \"Dog Food\",\n                \"Pets Collection\"\n            ],\n            \"discount\": {\n                \"USD\": 0.0\n            },\n            \"original_price\": {\n                \"USD\": 29.58\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"sample-request-for-top-sellers-of-location\">Sample Request for Top Sellers of Location</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/most-popular?locale={Locale}&amp;partnerName={PartnerName}¤cy={Currency}&amp;country={country}&amp;city={city}\n\n</code></pre>\n<h3 id=\"sample-response-2\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 1,\n    \"types\": {\n        \"mpol\": 1\n    },\n    \"data\": [\n{\n            \"image_url\": \"test.image_url.com\",\n            \"name\": \"Original Air-dried Beef recipe for dogs\",\n            \"item_id\": \"46177313784082\",\n            \"url\": \"test.url.com\",\n            \"description\": \"Having access to lush fields of grass year-round makes New Zealand free-range, grass-fed beef among the best in the world.\",\n            \"in_stock\": 1,\n            \"price\": {\n                \"USD\": 29.58\n            },\n            \"groupcode\": \"8528988209426\",\n            \"locale\": \"en_US\",\n            \"product_attributes\": {\n                \"activation_date\": \"2023-08-11\",\n                \"shopify_tag\": [\n                    \"air-dried\",\n                    \"beef\",\n                    \"dog\"\n                ]\n            },\n            \"stock_count\": 99,\n            \"category\": [\n                \"Dog Food\",\n                \"Pets Collection\"\n            ],\n            \"discount\": {\n                \"USD\": 0.0\n            },\n            \"original_price\": {\n                \"USD\": 29.58\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products from <strong>Top Sellers</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li>Most purchased of the category without excluding the rightmost item in the <strong>categoryList</strong></li>\n</ul>\n<p>If the <strong>city</strong> or <strong>country</strong> is given in as a query parameter, the fallback algorithms that fill it are:</p>\n<ul>\n<li><p>Most purchased of the category</p>\n</li>\n<li><p>Most purchased of the category, without excluding the right-most item in the <strong>categoryList</strong></p>\n</li>\n<li><p>Most purchased of the Partner</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","top-sellers"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"95301f68-14d8-4c64-bc24-733dd572ff5c"},{"name":"Trending Products","id":"809f5f73-b7f4-43a6-8377-105e49bf6a02","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/trending","description":"<p>The Trending Products algorithm recommends items using a scoring system. It scores items based on weekly views and purchases to determine this week's trending items compared to those in the previous week. This type of algorithm works best on the <strong>main and category pages</strong>.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/trending\">https://recommendation.api.useinsider.com/v2/trending</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>testUser</td>\n<td>User identifier which is assigned by Insider One.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>true, false or 0, 1</td>\n<td>Makes affinities affect products of the response. The default is <em>false</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>10</td>\n<td>How many viewed products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>10</td>\n<td>How many purchased products should be excluded. The default is -1.</td>\n<td>Integer</td>\n<td>No (Can only be used with userId)</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Trending Products, an algorithm that recommends items using a dynamic scoring system.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/trending?partnerName={partnerName}&amp;locale={Locale}&amp;size=2\n\n</code></pre>\n<h2 id=\"sample-response\">Sample Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 2,\n    \"types\": {\n        \"tpop\": 2\n    },\n    \"data\": [\n        \"ASD-4983\",\n        \"TYU-3451\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products from <strong>Trending Products</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li>Trending products of the c</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","trending"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"809f5f73-b7f4-43a6-8377-105e49bf6a02"},{"name":"User Based","id":"4132e66b-3123-425d-9ecd-a5c5a482e292","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/user-based","description":"<p>The User Based algorithm recommends items by finding users similar to the current user. It generates recommendations based on user behavior and product popularity.</p>\n<p>In this algorithm, product recommendations are based on the behavior of similar users (users with close similarity index scores: <em>viewed, purchased, or added the same or similar category products to their cart</em>) with the current user. The algorithm recommends products that similar users have encountered in the past but that the current user has not visited. The user-based algorithm also takes the <strong>user-product-rating matrix</strong> as another input. For each product a user visits, a rating is calculated based on the number of visits, purchases, and add-to-carts within the last 30 days. This type of algorithm can be used on every kind of page.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/user-based\">https://recommendation.api.useinsider.com/v2/user-based</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier that is assigned by Insider One</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days should viewed products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>100</td>\n<td>How many viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days should purchased products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>How many purchased products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Makes affinities affect products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>dayLimit</td>\n<td>2</td>\n<td>If FMT is published_time, it adds a day limit filter</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to User Based, a personalized recommendation algorithm that finds users similar to the current user.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/user-based?partnerName={Partner_Name}&amp;locale={Locale}¤cy=TRY&amp;userId={User ID}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 10,\n    \"types\": {\n        \"mvop\": 10\n    },\n    \"data\": [\n        \"QAZ-7890\",\n        \"XYZ-1234\",\n        \"QAZ-7899\",\n        \"XYZ-1233\",\n        \"QAZ-7898\",\n        \"XYZ-1243\",\n        \"QAZ-7891\",\n        \"XYZ-1223\",\n        \"QAZ-7892\",\n        \"XYZ-1342\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products come from <strong>User Based</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li><p>View-to-view of the last visited product</p>\n</li>\n<li><p>Most viewed of the category </p>\n</li>\n<li><p>Most viewed of the category without excluding the right-most item in the <strong>categoryList</strong></p>\n</li>\n<li><p>Most viewed of the Partner</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","user-based"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4132e66b-3123-425d-9ecd-a5c5a482e292"},{"name":"User Engagement","id":"40cc53de-e43d-4e64-b097-be4527529fa7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/user-engagement","description":"<p>The User Engagement algorithm recommends products by analyzing the current user’s most recent interactions. It generates personalized recommendations based on real-time behaviors and evolving preferences.</p>\n<p>The User Engagement algorithm tailors product recommendations based on the user’s most recent product-view activity, using a deep-learning transformer model that dynamically adapts to recent interactions, such as viewing or purchasing patterns. It focuses specifically on items the user has shown interest in during recent sessions. During a Recommendation API request to the user-engagement endpoint, the UCD profile endpoint is called to retrieve the last 10 products the user visited in the past 7 days. To receive User Engagement recommendations, the user must have at least one product visit in the last 7 days. If there have been no visits in that period, fallback recommendation results will be displayed instead.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/user-engagement\">https://recommendation.api.useinsider.com/v2/user-engagement</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier which is assigned by Insider One</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Determines if the products within the same <strong>groupcode</strong> should be returned in the recommendation response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Defines the fields that should be returned for the products in the <strong>group_products</strong> section.  <br />If requested group product fields are missing from a product, that product won't appear in the <strong>group_products</strong> section.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response. The default value is false. Valid values are 1, 0, <em>true</em>, and <em>false</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days should viewed products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>100</td>\n<td>How many viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days should purchased products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>How many purchased products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Makes affinities affect products of the response. The default is <em>false</em>.</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>dayLimit</td>\n<td>2</td>\n<td>If FMT is published_time, it adds a day limit filter. The default is 2.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC123CBA</td>\n<td>Current product ID</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to User Engagement, a personalized recommendation algorithm that analyzes the current user’s most recent interactions (such as product views, clicks, or cart actions) to deliver highly relevant product suggestions in real time.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/user-engagement?locale={locale}&amp;userId={userId}&amp;partnerName={partnerName}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 10,\n    \"types\": {\n        \"ue\": 10\n    },\n    \"data\": [\n        \"649517_49890\",\n        \"568334_49053\",\n        \"639714_49677\",\n        \"651579_3255\",\n        \"614493_50094\",\n        \"614508_49668\",\n        \"568334_47380\",\n        \"641331_49914\",\n        \"621390_3255\",\n        \"646581_48990\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the current user has not visited two or more products, or if user engagement recommendations are filtered out, recommendations from the following algorithms are returned in sequence:</p>\n<ul>\n<li><p><a href=\"https://academy.insiderone.com/docs/purchased-together-algorithm\">Purchased Together</a></p>\n</li>\n<li><p><a href=\"https://academy.insiderone.com/docs/most-popular-items-algorithm\">Most Popular Items</a></p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","user-engagement"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"40cc53de-e43d-4e64-b097-be4527529fa7"},{"name":"Viewed Together","id":"7fdb30a0-c22b-43db-a872-e7687b161ca7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"url":"https://recommendation.api.useinsider.com/v2/viewed-together","description":"<p>The Viewed Together algorithm recommends items by identifying similar products users have viewed. It generates recommendations based on products viewed in the same sessions and in the same locale over the past 30 days. After generating recommendations, the Viewed Together algorithm orders the results by visit frequency (popularity). Thus, users can find complementary or substitute products for the one they are currently viewing. This increases discovery rates and the likelihood of grabbing users’ attention when they don’t have a target product. This type of algorithm works best on <strong>product pages</strong>.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/viewed-together\">https://recommendation.api.useinsider.com/v2/viewed-together</a></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sample Value</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>mybrand</td>\n<td>Partner Identifier assigned by Insider One. You can use PartnerID as well.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>us_US</td>\n<td>Locale of the requested product catalog</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>web</td>\n<td>Requested platform. Web comes by default.</td>\n<td>Enum</td>\n<td>No</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>USD</td>\n<td>Requested currency of the products. If no value is set, the default currency in your settings is used.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>productId</td>\n<td>ABC0123</td>\n<td>Base product ID</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>size</td>\n<td>50</td>\n<td>Required number of items in response. Valid values are 0 to 100.</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>[“Clothes”, “Skirts”]</td>\n<td>Category filter of the products</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td></td>\n<td><a href=\"https://academy.useinsider.com/docs/filtering-recommendation-responses\">Smart Recommender filtering</a>. There can be more than one filter parameter.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>true</td>\n<td>Adds details to the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>shuffle</td>\n<td>false</td>\n<td>Shuffles the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>getGroupProducts</td>\n<td>false</td>\n<td>Shows variant products under the products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>groupProductsFields</td>\n<td></td>\n<td>Adds these fields to the variant products’ details</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeVariants</td>\n<td>true</td>\n<td>Exclude variants from the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>a1b2c3d4</td>\n<td>User identifier that is assigned by Insider One</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>30</td>\n<td>After how many days should viewed products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludeViewItem</td>\n<td>100</td>\n<td>How many viewed products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>30</td>\n<td>After how many days should purchased products be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>100</td>\n<td>How many purchased products should be excluded</td>\n<td>Integer</td>\n<td>No (Can be used only with userId)</td>\n</tr>\n<tr>\n<td>hp</td>\n<td>false</td>\n<td>Makes affinities affect products of the response</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<p>The sample below displays a request to Viewed Together, a recommendation algorithm that suggests items commonly viewed alongside the same product by other users.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/viewed-together?locale={Locale}&amp;productId={ProductID}¤cy={Currenct}&amp;partnerName={PartnerName}\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 10,\n    \"types\": {\n        \"mvop\": 10\n    },\n    \"data\": [\n        \"QAZ-7890\",\n        \"XYZ-1234\",\n        \"QAZ-7899\",\n        \"XYZ-1233\",\n        \"QAZ-7898\",\n        \"XYZ-1243\",\n        \"QAZ-7891\",\n        \"XYZ-1223\",\n        \"QAZ-7892\",\n        \"XYZ-1342\"\n    ]\n}\n\n</code></pre>\n<h3 id=\"fallback-algorithms\">Fallback Algorithms</h3>\n<p>If the products from <strong>Viewed Together</strong> are not enough to fill the response data, some fallback algorithms below fill it:</p>\n<ul>\n<li><p>Most viewed of the category</p>\n</li>\n<li><p>Most viewed of the category without excluding the right-most item in the <strong>categoryList</strong></p>\n</li>\n<li><p>Most viewed of the Partner</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v2","viewed-together"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"7fdb30a0-c22b-43db-a872-e7687b161ca7"}],"id":"21dadeed-ce2b-44db-9ee1-33948e46d5c7","description":"<p>The main recommendation algorithms available through the Recommendation API are categorized by type and methodology. Each algorithm can be called via its dedicated endpoint.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Algorithm</th>\n<th>Definition</th>\n<th>Endpoint</th>\n<th>Abbreviation</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-chef-algorithm\">Chef</a></td>\n<td>An automated recommendation algorithm that automatically brings the best-mixed strategy combination by testing most popular items, top sellers, user-based, highest discounted, new arrivals, and trending algorithms for better conversion rates.</td>\n<td>/v2/chef</td>\n<td>chef</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-complementary-products-algorithm\">Complementary Products</a></td>\n<td>Recommends complementary products based on similarity and price proximity. Helps users discover related products based on a collaborative filtering approach.</td>\n<td>/v2/complementary</td>\n<td>cp</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-highest-discounted-products-algorithm\">Highest Discounted Products</a></td>\n<td>Recommends items by sorting items based on their discount ratio. Recommends products ordered from the highest discount to the lowest. The discount ratio is calculated separately for each currency type.</td>\n<td>/v2/highest-discounted</td>\n<td>hdop</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-manual-merchandising-algorithm\">Manual Merchandising</a></td>\n<td>Brings details of manually specified products. Only in-stock products are returned. Enables showcasing of specific products or content from a curated list specified in campaign configuration.</td>\n<td>/v2/manual-merchandising</td>\n<td>mm</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-mixed-strategy-algorithm\">Mixed Strategy</a></td>\n<td>Creates a customized mixed recommendation strategy using different recommendation types. Allows the use of multiple algorithms for each slot of the Recommendation Widget in a single request.</td>\n<td>/v2/mixed</td>\n<td>mixed</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-most-popular-items-algorithm\">Most Popular Items</a></td>\n<td>Recommends items by analyzing the most popular products by page views. Generates recommendations based on page view counts during the last 30 days. Works best on main, category, and product pages.</td>\n<td>/v2/most-popular</td>\n<td>mvop</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-most-valuable-products-algorithm\">Most Valuable Products</a></td>\n<td>Recommends items by their contribution to total revenue. Recommends products that generate more revenue across your site based on contribution to revenue and revenue per visit.</td>\n<td>/v2/most-valuable</td>\n<td>mvpop</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-new-arrivals-algorithm\">New Arrivals</a></td>\n<td>Brings products newly added to the website. Recommends products in order of their publish date. For the Publisher vertical, the updated time is used for newly released articles.</td>\n<td>/v2/new-arrivals</td>\n<td>naop</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-purchased-together-algorithm\">Purchased Together</a></td>\n<td>Recommends complementary products purchased by other users alongside the user's purchases. Generates recommendations based on products purchased in the same sessions and locale during the past 30 days, ordered by purchase frequency.</td>\n<td>/v2/purchased-together</td>\n<td>btb</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-recently-viewed-products-algorithm\">Recently Viewed</a></td>\n<td>Allows users to create campaigns highlighting recent product views. Enables users to re-engage with products based on their historical behavior. Returns only the user's recently viewed products.</td>\n<td>/v2/recently-viewed</td>\n<td>rvp</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-substitute-products-algorithm\">Substitute Products</a></td>\n<td>Recommends similar products using a collaborative filtering approach. Considers product similarity and price proximity to help with product discovery on product and cart pages.</td>\n<td>/v2/substitute</td>\n<td>sp</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-top-sellers-algorithm\">Top Sellers</a></td>\n<td>Recommends products in order of their purchase counts for the last 30 days. Works best on the main page. Falls back to your most purchased category.</td>\n<td>/v2/top-sellers</td>\n<td>mpop</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-trending-products-algorithm\">Trending Products</a></td>\n<td>Recommends items using a scoring system. Identifies this week's trending items compared to those in the previous week by scoring items based on weekly view and purchase information.</td>\n<td>/v2/trending</td>\n<td>tpop</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-user-based-algorithm\">User Based</a></td>\n<td>Recommends items by finding similar users to the current user. Generates recommendations based on user behavior and product popularity. Uses a user-product-rating matrix based on visits, purchases, and add-to-carts within the last 30 days.</td>\n<td>/v2/user-based</td>\n<td>ub</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-user-engagement-algorithm\">User Engagement</a></td>\n<td>Recommends products by analyzing the most recent interactions of the current user. Generates personalized recommendations informed by real-time user behaviors and evolving preferences using a deep learning-based transformer model.</td>\n<td>/v2/user-engagement</td>\n<td>ue</td>\n</tr>\n<tr>\n<td><a href=\"https://academy.insiderone.com/docs/recommendation-api-viewed-together-algorithm\">Viewed Together</a></td>\n<td>Recommends items by finding similar products to those visited by the user. Generates recommendations based on products visited in the same sessions and in the same locale within the past 30 days, ordered by visit frequency.</td>\n<td>/v2/viewed-together</td>\n<td>vtv</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"21dadeed-ce2b-44db-9ee1-33948e46d5c7"},{"name":"Get Recommendations","id":"d63e7967-0902-47e1-802d-a586f2e913f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-REQUEST-TOKEN","value":"1a2b3c4d5e6f","description":"<p>Your API authentication token</p>\n","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://recommendation.api.useinsider.com/v2/{algorithm-name}","description":"<p>The Recommendation API (SR-API) is a RESTful service for programmatically retrieving personalized product suggestions. It serves as the interface to Insider One’s recommendation engine, utilizing machine learning models, real-time user behavior analysis, and product affinity data to return structured item sets.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p>The Recommendation API follows a standard RESTful pattern:</p>\n<p><strong>GET</strong> <a href=\"https://recommendation.api.useinsider.com/v2/%7Balgorithm-name%7D\">https://recommendation.api.useinsider.com/v2/{algorithm-name}</a></p>\n<p><strong>{algorithm-name}</strong> is the unique identifier for the recommendation logic to be executed.</p>\n<p>Examples:</p>\n<ul>\n<li><p><strong>/v2/most-popular</strong> - Most viewed products</p>\n</li>\n<li><p><strong>/v2/user-based</strong> - Personalized user recommendations</p>\n</li>\n<li><p><strong>/v2/purchased-together</strong> - Frequently bought together items</p>\n</li>\n</ul>\n<p>Refer to <a href=\"https://academy.insiderone.com/v1/docs/algorithm-descriptions\">Algorithm Descriptions</a> for the full list.</p>\n<p>Before making your first request, you'll need:</p>\n<ul>\n<li><p>All requests require your API token in the request header.</p>\n</li>\n<li><p><strong>Partner ID/Name</strong> - Your store identifier</p>\n</li>\n<li><p><strong>Locale</strong> - Language and region code used for recommendation context (e.g., en_US, fr_FR)</p>\n</li>\n<li><p><strong>Currency</strong> - Currency code (e.g., USD, EUR)</p>\n</li>\n</ul>\n<h3 id=\"algorithm-abbreviations\">Algorithm Abbreviations</h3>\n<p>Each algorithm has a short abbreviation used in response payloads:</p>\n<ul>\n<li><p><strong>mvop</strong> = Most Popular Items</p>\n</li>\n<li><p><strong>ub</strong> = User Based</p>\n</li>\n<li><p><strong>btb</strong> = Purchased Together</p>\n</li>\n<li><p><strong>chef</strong> = Chef (automated strategy selector)</p>\n</li>\n</ul>\n<p>Refer to the <a href=\"https://academy.insiderone.com/docs/algorithm-descriptions\">Algorithm Descriptions</a> for the complete list.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>All endpoints support common parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Purpose</th>\n<th>Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partnerName</td>\n<td>Your store identifier</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>locale</td>\n<td>Language/region (e.g., en_US)</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>Currency code (e.g., USD)</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>User identifier for personalization</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>categoryList</td>\n<td>Filter by product categories</td>\n<td>Array</td>\n<td>No</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>Advanced filtering (see Filtering Guide)</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>size</td>\n<td>Number of products (0-100)</td>\n<td>Integer</td>\n<td>No</td>\n</tr>\n<tr>\n<td>details</td>\n<td>Include full product information</td>\n<td>Boolean</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-request\">Sample Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X GET \"https://recommendation.api.useinsider.com/v2/most-popular?partnerName=dataforceapi&amp;locale=tr_TR&amp;size=1&amp;details=true\" \\\n     -H \"X-Auth-Token: YOUR_API_TOKEN\"\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const apiToken = 'YOUR_API_TOKEN';\n                    const endpoint = 'https://recommendation.api.useinsider.com/v2/most-popular';\n                    const params = {\n                    partnerName: 'yourPartnerName',\n                    locale: 'tr_TR',\n                    size: 1,\n                    details: true\n                    };\n                    const queryString = new URLSearchParams(params).toString();\n                    fetch(`${endpoint}?${queryString}`, {\n                    method: 'GET',\n                    headers: {\n                    'X-Auth-Token': apiToken\n                    }\n                    })\n                    .then(response =&gt; response.json())\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-python\">import requests\n                    api_token = 'YOUR_API_TOKEN'\n                    endpoint = 'https://recommendation.api.useinsider.com/v2/most-popular'\n                    params = {\n                    'partnerName': 'yourPartnerName',\n                    'locale': 'tr_TR',\n                    'size': 1,\n                    'details': True\n                    }\n                    headers = {\n                    'X-Auth-Token': api_token\n                    }\n                    response = requests.get(endpoint, params=params, headers=headers)\n                    data = response.json()\n                    print(data)\n\n</code></pre>\n<h3 id=\"sample-response\">Sample Response</h3>\n<p>Responses follow a consistent JSON structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"success\": true,\n        \"total\": 10,\n        \"types\": {\n        \"mvop\": 10\n        },\n        \"data\": [\"productId1\", \"productId2\", ...]\n        }\n\n</code></pre>\n<blockquote>\n<p>&lt;p &gt;With details=true, the data array contains full product objects including pricing, images, categories, and attributes.&lt;/p&gt; </p>\n</blockquote>\n<h3 id=\"200--success-ok\">200 / Success-OK</h3>\n<p>A successful response looks like this:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"success\": true,\n        \"total\": 1,\n        \"types\": {\n        \"mvop\": 1\n        },\n        \"data\": [\"SKU-DK-0011\"]\n        }\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td>Boolean indicating if the request succeeded</td>\n</tr>\n<tr>\n<td>total</td>\n<td>Number of products returned</td>\n</tr>\n<tr>\n<td>types</td>\n<td>Algorithm(s) used (mvop = Most Popular of Partner)</td>\n</tr>\n<tr>\n<td>data</td>\n<td>Array of product IDs</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"getting-product-details\">Getting Product Details</h3>\n<p>By default, the API returns only product IDs. To get full product information (images, prices, descriptions), add details=true.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X GET \"https://recommendation.api.useinsider.com/v2/most-popular?partnerName=yourpartnername&amp;locale=tr_TR&amp;size=1&amp;details=true\" \\\n     -H \"X-Auth-Token: YOUR_API_TOKEN\"\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const params = {\n                    partnerName: 'yourpartnername',\n                    locale: 'tr_TR',\n                    size: 1,\n                    details: true\n                    };\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-python\">params = {\n                    'partnerName': 'yourpartnername',\n                    'locale': 'tr_TR',\n                    'size': 1,\n                    'details': True\n                    }\n\n</code></pre>\n<p>Response with details=true includes:</p>\n<ul>\n<li><p>image_url - Product image</p>\n</li>\n<li><p>name - Product name</p>\n</li>\n<li><p>price - Product pricing (by currency)</p>\n</li>\n<li><p>category - Product categories</p>\n</li>\n<li><p>discount - Discount information</p>\n</li>\n<li><p>in_stock - Stock status</p>\n</li>\n</ul>\n<p>Here is a full example with details=true:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n        \"success\": true,\n        \"total\": 1,\n        \"types\": {\n        \"mvop\": 1\n        },\n        \"data\": [\n        {\n        \"item_id\": \"SKU-HA-0011\",\n        \"name\": \"Hummingbird Decorative Cushion\",\n        \"locale\": \"en_US\",\n        \"image_url\": \"https://cdn.demo-shop.com/images/home-accessories/hummingbird-cushion-45x45.jpg\",\n        \"url\": \"https://www.demo-shop.com/en/home-accessories/hummingbird-decorative-cushion?ins_sr=eyJwcm9kdWN0SWQiOiJTS1UtSEEtMDAxMSJ9\",\n        \"in_stock\": 1,\n        \"price\": {\n        \"USD\": 24.99\n        },\n        \"original_price\": {\n        \"USD\": 29.99\n        },\n        \"discount\": {\n        \"USD\": 5.0\n        },\n        \"category\": [\n        \"Home Accessories\",\n        \"Decorative Cushions\"\n        ],\n        \"description\": \"Soft cotton decorative cushion with hummingbird pattern. Ideal for living rooms and bedrooms.\",\n        \"brand\": \"Demo Home\",\n        \"color\": \"Multicolor\",\n        \"size\": \"45x45 cm\",\n        \"tags\": [\n        \"cushion\",\n        \"home-decor\",\n        \"living-room\"\n        ],\n        \"material_type\": \"Cotton\",\n        \"washable\": \"Yes\",\n        \"room\": \"Living Room\"\n        }\n        ]\n        }\n\n</code></pre>\n<p>The following table demonstrates the status codes and response types from the Recommendation API. The table lists Status Codes, their descriptions, and scenarios that you can receive these status codes.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Status Code Scenarios</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200 - Success</td>\n<td>Successful API requests receive responses with 200 status code.</td>\n</tr>\n<tr>\n<td>400 - Bad Request</td>\n<td>Unsuccessful API requests receive responses with 400 status code.<br /><br />API calls with missing endpoint parameters receive this status code.</td>\n</tr>\n<tr>\n<td>403 - Forbidden</td>\n<td>Unauthorized API requests receive responses with 403 status code<br /><br />API calls that result with unsuccessful Origin/CORS Validation receive this status code.</td>\n</tr>\n<tr>\n<td>422 - Unprocessible Content</td>\n<td>API calls that have missing dynamic filter content receive this status code.<br /><br />Refer to the Filtering Products documentation for further details.</td>\n</tr>\n<tr>\n<td>429 - Too Many Requests</td>\n<td>Throttled API requests receive responses with 429 status code.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"200--success-ok-1\">200 / Success-OK</h4>\n<p>Successful Recommendation API requests receive an API endpoint that contains the following fields:</p>\n<ul>\n<li><p>success field that denotes the success of the API response,</p>\n</li>\n<li><p>total field displays the number of recommendations returned from the API response,</p>\n</li>\n<li><p>types field that lists recommendation algorithm types that returned from the endpoint,</p>\n</li>\n<li><p>data field lists the recommendations and their details</p>\n</li>\n</ul>\n<p>Following is a successful Recommendation API request and its example response:</p>\n<h4 id=\"sample-request-1\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendationv2.api.useinsider.com/v2/most-popular?details=true&amp;partnerName=yourPartnerName&amp;locale=en_US¤cy=USD&amp;size=1\n\n</code></pre>\n<h4 id=\"sample-response-1\">Sample Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"total\": 1,\n    \"types\": {\n        \"mvop\": 1\n    },\n    \"data\": [\n        {\n            \"image_url\": \"http://insiderone.com/img/p/1/3/13.jpg\",\n            \"name\": \"Hummingbird cushion\",\n            \"item_id\": \"11\",\n            \"url\": \"https://insiderone.com/home-accessories/11-hummingbird-cushion.html#ins_sr=eyJwcm9kdWN0SWQiOiIxMSJ9\",\n            \"description\": \"Hummingbird cushion in category Home Accessories\",\n            \"in_stock\": 1,\n            \"price\": {\n                \"USD\": 0.57\n            },\n            \"locale\": \"en_US\",\n            \"product_attributes\": {\n                \"test\": \"productTest\",\n                \"testattributes\": \"productTest\"\n            },\n            \"category\": [\n                \"Home Accessories\"\n            ],\n            \"discount\": {\n                \"USD\": 0.0\n            },\n            \"original_price\": {\n                \"USD\": 0.57\n            }\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"400--bad-request\">400 / Bad Request</h3>\n<p>In the following scenarios, the Recommendation API returns responses with a 400 status code:</p>\n<ul>\n<li><p>Missing required endpoint parameters</p>\n</li>\n<li><p>Missing required endpoint parameter values</p>\n</li>\n<li><p>Wrong usage of endpoint parameters</p>\n</li>\n</ul>\n<p>Following API requests and responses demonstrate examples of these scenarios.</p>\n<h4 id=\"sample-request-1-1\">Sample Request 1</h4>\n<p>The partnerName parameter is missing in the request below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendationv2.api.useinsider.com/v2/most-popular?details=true¤cy=USD&amp;locale=en_US\n\n</code></pre>\n<h4 id=\"sample-response-1-1\">Sample Response 1</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"Missing parameter: partnerName\",\n    \"data\": []\n}\n\n</code></pre>\n<h4 id=\"sample-request-2\">Sample Request 2</h4>\n<p>The locale value is missing in the request below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendationv2.api.useinsider.com/v2/most-popular?details=true¤cy=USD&amp;locale=&amp;partnerName=yourPartnerName\n\n</code></pre>\n<h4 id=\"sample-response-2\">Sample Response 2</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"Locale is invalid.\",\n    \"data\": []\n}\n\n</code></pre>\n<h3 id=\"403--forbidden\">403 / Forbidden</h3>\n<p>The Recommendation API performs sender origin validation for partners that enable the Origin/CORS Validation feature. When the feature is enabled, the Recommendation API only provides successful recommendation content to callers from the allowed domains. Requests from domains that are not listed as allowed domains will receive failures with a 403 status code.</p>\n<p>Following is the Recommendation API response for unsuccessful validations:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"Origin validation error.\",\n    \"data\": []\n}\n\n</code></pre>\n<h3 id=\"422--unprocessible-content\">422 / Unprocessible Content</h3>\n<p>This endpoint response status code is often received when the partner page that hosts the recommendation campaign cannot provide the details that the Recommendation API endpoint needs to use.</p>\n<p>As an example scenario;</p>\n<ul>\n<li><p>You create and activate a Web Smart Recommender campaign on Product Pages that has Dynamic Filtering usage on the color field.</p>\n</li>\n<li><p>In Dynamic Filtering, the attribute values of fields used in filters are fetched from the Recommendation API.</p>\n</li>\n<li><p>Thus, web clients are not informed whether the requested attribute is present for the current product.</p>\n</li>\n<li><p>In cases where the attribute value that is used in the Dynamic Filter is missing, the Recommendation API cannot perform the Dynamic Filter.</p>\n</li>\n<li><p>The API returns with a 422 status code for those cases.</p>\n</li>\n</ul>\n<h4 id=\"sample-request-3\">Sample Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendationv2.api.useinsider.com/v2/most-popular?details=true&amp;filter=([color][=][${value}])¤cy=TRY&amp;locale=tr_TR&amp;partnerName=yourPartnerName&amp;productId=11\n\n</code></pre>\n<h4 id=\"sample-response-3\">Sample Response</h4>\n<p>The color attribute was missing for the given item with ID “11”. When this attribute is requested with dynamic filtering, the Recommendation API responds with a 422 status code (denoting that an unprocessible content is present)</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"The field 'color' in dynamic filter was not found in the product.\",\n    \"data\": []\n}\n\n</code></pre>\n<h3 id=\"429--too-many-requests\">429 / Too Many Requests</h3>\n<p>When you exceed the rate limit, the Recommendation API will temporarily throttle your requests. Rate limits are calculated using a rolling one-minute window, so if you're throttled, you'll regain access once the current window resets (at most one minute).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"Rate exceeded.\",\n    \"data\": []\n}\n\n</code></pre>\n<h3 id=\"filtering-recommendation-responses\">Filtering Recommendation Responses</h3>\n<p>Filtering allows you to refine recommendation results to match your users' needs and preferences. Common use cases include:</p>\n<ul>\n<li><p><strong>Exclude already-viewed products</strong> - Don't recommend products the user has seen</p>\n</li>\n<li><p><strong>Price range filtering</strong> - Show only products within budget</p>\n</li>\n<li><p><strong>Category/brand filtering</strong> - Focus on specific product types</p>\n</li>\n<li><p><strong>Stock filtering</strong> - Only recommend in-stock items</p>\n</li>\n<li><p><strong>Attribute filtering</strong> - Filter by custom product attributes (color, size, rating, etc.)</p>\n</li>\n</ul>\n<p>This increases relevance, improves user experience, and boosts conversion rates.</p>\n<h4 id=\"basic-syntax\">Basic Syntax</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendation.api.useinsider.com/v2/{algorithm}?...\\&amp;filter=[{field}][{operator}][{value}]\n\n</code></pre>\n<p>Here is an example with a single filter that returns  products with prices greater than 100 USD:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>?filter=[price.USD][&gt;][100]\n\n</code></pre><h4 id=\"multiple-filters\">Multiple Filters</h4>\n<p>You can pass multiple filter parameters to combine conditions. Each condition is chained together via an <strong>asterisk (*)</strong>.</p>\n<h5 id=\"syntax\">Syntax</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=[field1][operator1][value1]*[field2][operator2][value2]\n\n</code></pre>\n<h4 id=\"how-multiple-filters-work\">How Multiple Filters work</h4>\n<p>Multiple filters are <strong>combined with AND logic</strong> - products must match ALL conditions to be included.</p>\n<h5 id=\"example-1-exclude-current-product--filter-by-category\">Example 1: Exclude current product + filter by category</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=[item_id][!=][PRODUCT_ID]*[category][~][Shoes]\n\n</code></pre>\n<p>This filter returns products that are NOT PRODUCT_ID AND contain \"Shoes\" in the category.</p>\n<h5 id=\"example-2-price-range--in-stock\">Example 2: Price range + in stock</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=[price.USD][&gt;][50]*[price.USD][&lt;][200]*[in_stock][=][1]\n\n</code></pre>\n<p>This filter returns products between $50-$200 AND in stock.</p>\n<h4 id=\"operator-reference\">Operator Reference</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Operator Name</th>\n<th>Symbol</th>\n<th>Alias</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Equal To</td>\n<td>=</td>\n<td>is</td>\n<td>Exact match on field value</td>\n<td>[color][=][Blue] or [brand][=][Niki]</td>\n</tr>\n<tr>\n<td>Not Equal To</td>\n<td>!=</td>\n<td>nis</td>\n<td>Excludes products with matching field value</td>\n<td>[color][!=][Red] (exclude red products)</td>\n</tr>\n<tr>\n<td>Greater Than</td>\n<td>&gt;</td>\n<td>gt</td>\n<td>Field value greater than the specified value</td>\n<td>[price.USD][&gt;][100] or [rating][&gt;][3.5]</td>\n</tr>\n<tr>\n<td>Greater Than or Equal</td>\n<td>&gt;=</td>\n<td>gte</td>\n<td>Field value greater than or equal to the specified value</td>\n<td>[price.EUR][&gt;=][150] or [rating][&gt;=][4]</td>\n</tr>\n<tr>\n<td>Less Than</td>\n<td>&lt;</td>\n<td>lt</td>\n<td>Field value less than the specified value</td>\n<td>[price.EUR][&lt;][150] or [stock_count][&lt;][5]</td>\n</tr>\n<tr>\n<td>Less Than or Equal</td>\n<td>&lt;=</td>\n<td>lte</td>\n<td>Field value less than or equal to the specified value</td>\n<td>[price.EUR][&lt;=][150] or [created_at][&lt;=][now-7d]</td>\n</tr>\n<tr>\n<td>Contains</td>\n<td>~</td>\n<td>ctn</td>\n<td>Field contains the specified value (text search)</td>\n<td>[category][~][Shoes] or [name][~][Niki Air]</td>\n</tr>\n<tr>\n<td>Does Not Contain</td>\n<td>!~</td>\n<td>nctn</td>\n<td>Field does not contain the specified value</td>\n<td>[category][!~][Clearance]</td>\n</tr>\n<tr>\n<td>Between</td>\n<td>&gt;&lt;</td>\n<td>btw</td>\n<td>Field value falls within a range. Format: [field][&gt;&lt;][lower_bound:upper_bound]</td>\n<td>[price.USD][&gt;&lt;][50:200]</td>\n</tr>\n<tr>\n<td>Not Between</td>\n<td>&gt;!&lt;</td>\n<td>nbtw</td>\n<td>Field value falls outside a range</td>\n<td>[price.USD][&gt;!&lt;][50:200] (exclude $50-$200 range)</td>\n</tr>\n<tr>\n<td>Exists</td>\n<td>?</td>\n<td>xst</td>\n<td>Check if a field exists (value=1) or does not exist (value=0)</td>\n<td>[price.USD][?][1] (products have USD price)</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"date-field-values\">Date Field Values</h5>\n<p>Insider One is designed to parse every filter value provided for date fields. If a simplified date expression fails to parse, the system will use it as a raw literal value. This allows you to use literal dates (e.g., \"2022-09-30 15:45:00\") directly in your date filters.</p>\n<p>The date fields available for filtering are: created_at and modified_at.</p>\n<h5 id=\"operator-compatibility\">Operator Compatibility</h5>\n<p>Date fields are supported by every operator except for Between (&gt;&lt;) and Not Between (&gt;!&lt;). This limitation is due to the <strong>Between</strong> operator using a <strong>colon (:)</strong> to separate the lower and upper bounds, which conflicts with the colon present in standard date/time formats (e.g., 2022-09-30 15:45:00).</p>\n<p>The most appropriate operators for date fields are:</p>\n<ul>\n<li><p>After (&gt;)</p>\n</li>\n<li><p>Before (&lt;)</p>\n</li>\n<li><p>Is (=)</p>\n</li>\n<li><p>Is Not (!=)</p>\n</li>\n</ul>\n<h4 id=\"relative-date-filtering\">Relative Date Filtering</h4>\n<p>Date filters also support relative unit values, allowing you to easily filter based on time relative to the current moment (now).</p>\n<ul>\n<li><p><strong>Anchor</strong>: now</p>\n</li>\n<li><p><strong>Units</strong>: w (week), d (day), h (hour)</p>\n</li>\n<li><p><strong>Modifiers</strong>: Use + to add units or - to subtract units.</p>\n</li>\n</ul>\n<p>You can see the examples below:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Scenario</th>\n<th>Filter Expression</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Get products that were created last week</td>\n<td>[created_at][&gt;][now-1w]</td>\n</tr>\n<tr>\n<td>Get products created up to 2 days ago</td>\n<td>[created_at][&lt;=][now-2d]</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"multiple-value-filtering-in--not-in-filter-behavior\">Multiple Value Filtering (In / Not-In Filter Behavior)</h4>\n<p>Match fields against multiple values by separating them with:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">||\n\n</code></pre>\n<p>Supported by all operators except between and not between.</p>\n<p><strong>Examples:</strong></p>\n<ul>\n<li>Get products from multiple brands:</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=[brand][=][Niki||Abiba||Pamu]\n\n</code></pre>\n<ul>\n<li>Exclude multiple colors:</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=[color][!=][Red||Green||Blue]\n\n</code></pre>\n<p>Get products with categories containing any of these terms:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=[category][~][Shoes||Boots||Sneakers]\n\n</code></pre>\n<h4 id=\"advanced-filtering-with-andor\">Advanced Filtering with AND/OR</h4>\n<p>Combine multiple filters using logical operators within a single filter parameter.</p>\n<ul>\n<li><p><strong>And (*)</strong> = both conditions must be true</p>\n</li>\n<li><p><strong>Or (|)</strong> = either condition can be true</p>\n</li>\n</ul>\n<h5 id=\"examples\">Examples</h5>\n<ul>\n<li><strong>AND</strong> Example: Price range AND brand</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=([price.USD][&gt;][100]*[brand][=][Niki]) \n\n</code></pre>\n<ul>\n<li><strong>OR</strong> Example: Multiple categories</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=([category][~][Shoes]|[category][~][Boots])\n\n</code></pre>\n<ul>\n<li>Complex: (A <strong>AND</strong> B) <strong>OR</strong> C</li>\n</ul>\n<p>Get products that are either (cheap AND in stock) OR highly rated:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=((price.USD][&lt;][50]*[in_stock][=][1])|[rating][&gt;=][5])\n\n</code></pre>\n<blockquote>\n</blockquote>\n<p>You can also use multiple parameters to achieve AND logic more simply:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?filter=[price.USD][&lt;][50]&amp;filter=[in_stock][=][1]&amp;filter=[rating][&gt;=][5]\n\n</code></pre>\n<p>This is often clearer than using complex parentheses.</p>\n<h4 id=\"dynamic-filters\">Dynamic Filters</h4>\n<p>Use ${value} to reference the source product's field value in your filter. The expression is computed at request time using the actual product data.</p>\n<p>Supported Expressions</p>\n<ul>\n<li><p>${value} - Use the product's field value as-is</p>\n</li>\n<li><p>${value*1.2} - Multiply by 1.2 (20% increase)</p>\n</li>\n<li><p>${value*0.8} - Multiply by 0.8 (20% decrease)</p>\n</li>\n<li><p>${value*0.8}:${value*1.3} - Range with dynamic bounds</p>\n</li>\n</ul>\n<h5 id=\"examples-1\">Examples</h5>\n<ul>\n<li>Match the product's category dynamically:</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?categoryList=${value}&amp;productId=PRODUCT_ID\n\n</code></pre>\n<p>If the product has a category \"Shoes\", recommendations are filtered to \"Shoes\" only.</p>\n<ul>\n<li>Show products in a similar price range (±30%):</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?productId=PRODUCT_ID&amp;filter=[price.EUR][&gt;&lt;][${value}:${value*1.3}]\n\n</code></pre>\n<p>If the product costs €100, it shows products priced €100-€130.</p>\n<h4 id=\"filter-validation-errors\">Filter Validation Errors</h4>\n<p>When filters are invalid, the API returns specific error messages with HTTP status codes:</p>\n<h5 id=\"format--syntax-errors-400\">Format &amp; Syntax Errors (400)</h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error</th>\n<th>Cause</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"Filter is not in correct format.\"</td>\n<td>Missing brackets, unmatched parentheses, invalid syntax</td>\n</tr>\n<tr>\n<td>\"Depth of nested filters is greater than 4.\"</td>\n<td>Too many nesting levels: ((((filter))))</td>\n</tr>\n<tr>\n<td>\"Number of filters is greater than 40.\"</td>\n<td>Too many filter conditions total</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"field-errors-400-or-422\">Field Errors (400 or 422)</h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error</th>\n<th>HTTP</th>\n<th>Cause</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"Entered field name is invalid.\"</td>\n<td>400</td>\n<td>Field doesn't exist in product data</td>\n</tr>\n<tr>\n<td>\"The field '%s' in dynamic filter was not found in the product.\"</td>\n<td>422</td>\n<td>Field missing in source product (dynamic filters only)</td>\n</tr>\n<tr>\n<td>\"Field $$$ is not filterable product attribute.\"</td>\n<td>400</td>\n<td>Field marked non-filterable in configuration</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"operator-errors-400\">Operator Errors (400)</h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error</th>\n<th>Cause</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"operator field is invalid.\"</td>\n<td>Unknown operator (use: =, !=, &gt;, &lt;, &gt;=, &lt;=, ~, !~, &gt;&lt;, &gt;!&lt;, ?)</td>\n</tr>\n<tr>\n<td>\"For the $$$ field, operator field is not valid by field type.\"</td>\n<td>Operator incompatible with field type (e.g., ~ on numeric field)</td>\n</tr>\n<tr>\n<td>\"Operator $$$ is not allowed for dynamic filters.\"</td>\n<td>EXIST/EXIST_ALIAS not allowed with ${value}</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"value-errors-400-or-422\">Value Errors (400 or 422)</h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error</th>\n<th>HTTP</th>\n<th>Cause</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"For the $$$ field, entered value is empty.\"</td>\n<td>422</td>\n<td>Blank or null value</td>\n</tr>\n<tr>\n<td>\"For the $$$ field, value length is invalid.\"</td>\n<td>400</td>\n<td>Exceeds limits (100 chars for text search, 340 for others)</td>\n</tr>\n<tr>\n<td>\"Value for the field $$$ is invalid.\"</td>\n<td>400</td>\n<td>Invalid range format (use <strong>lower:upper</strong> for <strong>&gt;&lt;</strong> operator)</td>\n</tr>\n<tr>\n<td>\"For the $$$ field, value type is invalid.\"</td>\n<td>400</td>\n<td>Type mismatch (non-numeric on numeric field)</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"field-specific-validations-400\">Field-Specific Validations (400)</h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Error</th>\n<th>Cause</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>in_stock</td>\n<td>\"Value is invalid for in_stock filter...\"</td>\n<td>0 or 1 only</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"dynamic-filter-errors-400\">Dynamic Filter Errors (400)</h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error</th>\n<th>Cause</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"Parameters productId and locale must be provided when dynamic value is used.\"</td>\n<td>Using <strong>${value}</strong> without providing <strong>productId</strong> or <strong>locale</strong></td>\n</tr>\n<tr>\n<td>\"Product not found\"</td>\n<td>Specified <strong>productId</strong> doesn't exist</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"limitations\">Limitations</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Constraint</th>\n<th>Limit</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Filter depth</td>\n<td>4 levels</td>\n<td>Maximum nesting depth for parentheses</td>\n</tr>\n<tr>\n<td>Total filters</td>\n<td>40 filters</td>\n<td>Total number of filter conditions in one request</td>\n</tr>\n<tr>\n<td>N-gram value length</td>\n<td>100 characters</td>\n<td>For text search on <strong>item_id</strong>, <strong>name</strong>, <strong>image_url</strong></td>\n</tr>\n<tr>\n<td>Other field value length</td>\n<td>340 characters</td>\n<td>For text search on other fields</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"personalized-recommendation-features\">Personalized Recommendation Features</h3>\n<p>The Recommendation API provides a range of personalization capabilities that tailor product recommendations to individual users. By leveraging user behavior, such as browsing history, purchase activity, and real-time interactions, the API delivers more relevant product suggestions that increase engagement and conversion rates.</p>\n<p>To enable personalization, you must include the Insider ID in your Recommendation API requests. This allows the system to associate incoming requests with existing user profiles and apply behavior-driven logic.</p>\n<p>Currently, the Recommendation API supports the following personalization features:</p>\n<h4 id=\"personalized-recommendation-algorithms\">Personalized Recommendation Algorithms</h4>\n<p>The following recommendation algorithms inherently deliver personalized product suggestions based on user behavior and interaction data.</p>\n<ul>\n<li><strong>User-Based Recommendations</strong></li>\n</ul>\n<p>Generate personalized recommendations by analyzing a user’s historical interactions and the behavior patterns of similar users.</p>\n<ul>\n<li><strong>Real-Time User Engagement Recommendations</strong></li>\n</ul>\n<p>Provide real-time personalized suggestions based on the user’s current session activity and live interactions.</p>\n<ul>\n<li><strong>Recently Viewed Products</strong></li>\n</ul>\n<p>Recommend products based on the user’s most recent product page views, helping reinforce recent browsing intent.</p>\n<ul>\n<li><strong>Purchased with Last Purchased</strong></li>\n</ul>\n<p>Suggest products that are frequently purchased together with the user’s most recent purchase, supporting effective cross-sell scenarios.</p>\n<p>These algorithms leverage both historical and real-time data to ensure recommendations remain relevant, timely, and aligned with individual user preferences.</p>\n<h4 id=\"personalization-with-the-users-last-visited-item\">Personalization with the User’s Last Visited Item</h4>\n<p>The Recommendation API can personalize results using the last product page a user visited. This behavior applies to both User-Based Recommendations and Real-Time User Engagement algorithms.</p>\n<p>When the API does not have sufficient user-level data to generate a fully personalized recommendation, it automatically falls back to Viewed Together recommendations based on the user’s most recently viewed product.</p>\n<p>This fallback mechanism ensures that recommendations remain relevant and context-aware, even when historical user data is limited.</p>\n<h4 id=\"personalization-with-users-recent-interactions\">Personalization with Users Recent Interactions</h4>\n<p>The Recommendation API can automatically exclude products a user has already interacted with, so they won't see recommendations for items they've viewed, purchased, or otherwise engaged with.</p>\n<p>Use the following parameters to enable these exclusions:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>API Endpoint Parameter</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>excludeViewItem</td>\n<td>Excludes the last X Product Visits of the user from the API response</td>\n</tr>\n<tr>\n<td>excludeViewDay</td>\n<td>Excludes Product Page views of the user in the last X days from the API response</td>\n</tr>\n<tr>\n<td>excludePurchaseItem</td>\n<td>Excludes the last X Product Purchases of the user from the API response</td>\n</tr>\n<tr>\n<td>excludePurchaseDay</td>\n<td>Excludes Product Purchases of the user in the last X days from the API response</td>\n</tr>\n</tbody>\n</table>\n</div><p>The following Recommendation API requests illustrate these personalization features:</p>\n<ul>\n<li>The request below instructs the Recommendation API to exclude the last ten products the user viewed in Product Detail pages from the API response:</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendationv2.api.useinsider.com/v2/most-popular?details=true¤cy=TRY&amp;locale=tr_TR&amp;partnerName=dataforceapi&amp;userId=testUser&amp;excludeViewItem=10\n\n</code></pre>\n<ul>\n<li>The request below instructs the Recommendation API to exclude the products that the user purchased in the last three days.</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendationv2.api.useinsider.com/v2/most-popular?details=true¤cy=TRY&amp;locale=tr_TR&amp;partnerName=dataforceapi&amp;userId=testUser&amp;excludePurchaseDay=3\n\n</code></pre>\n<h4 id=\"attribute-affinity\">Attribute Affinity</h4>\n<p>Attribute affinity scores represent a user’s preference for specific product attributes based on their interaction behavior, including product views, add-to-cart actions, and purchases. Purchases carry a higher weight than views, as they indicate stronger intent. Affinity scores are normalized by a user’s total activity. As a result, a user with a high purchase-to-view ratio demonstrates a stronger affinity than a user who browses frequently but converts rarely.</p>\n<p>The Recommendation API uses attribute affinity to personalize product recommendations according to each user’s demonstrated interests. Affinity data is refreshed daily, ensuring recommendations reflect recent and relevant user behavior.</p>\n<p>Within the Recommendation API, the hp endpoint parameter controls whether the Attribute Affinity feature is applied. When enabled, the API incorporates a user’s attribute affinity scores into the recommendation logic, prioritizing products that align with the user’s strongest preferences.</p>\n<p>The following Recommendation API request demonstrates how the Attribute Affinity feature is applied when the hp parameter is enabled:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">https://recommendationv2.api.useinsider.com/v2/most-popular?details=true¤cy=TRY&amp;locale=tr_TR&amp;partnerName=yourPartnerName&amp;userId=testUser&amp;hp=1\n\n</code></pre>\n<h3 id=\"api-rate-limits\">API Rate Limits</h3>\n<p>The rate limit for direct API calls is set to <strong>1000 calls per minute</strong>, applied across all endpoints of the Recommendation API. Exceeding this rate limit causes additional requests to return <strong>429 status</strong> codes.</p>\n<blockquote>\n<p>&lt;p &gt;If your technical architecture requires a higher throughput, contact the Insider One team.&lt;/p&gt; </p>\n</blockquote>\n<h3 id=\"best-practices-for-recommendation-api\">Best Practices for Recommendation API</h3>\n<h4 id=\"category-list-format\">Category List Format</h4>\n<p>When filtering by categories, pass categoryList as a URL-encoded JSON array:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">categoryList=[\"shoes\",\"boots\"]\n\n</code></pre>\n<p>In cURL, encode the brackets properly:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?categoryList=[\"shoes\",\"boots\"]\n\n</code></pre>\n<h4 id=\"hyperpersonalization-hp\">Hyperpersonalization (hp)</h4>\n<p>Enable hyperpersonalization by adding hp=1 or hp=true:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?userId=user123&amp;hp=1\n\n</code></pre>\n<p>This uses customer affinities to further personalize results.</p>\n<h4 id=\"mixed-strategy\">Mixed Strategy</h4>\n<p>Combine multiple recommendation algorithms in a single request to get diverse results.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">GET /mixed?partnerName=X&amp;locale=en_US&amp;userId=user1¤cy=USD&amp;strategy=[...]\n\n</code></pre>\n<h5 id=\"strategy-array-format\">Strategy array format:</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">[\n  {\"recommendationType\": \"ub\", \"size\": 4},\n  {\"recommendationType\": \"vtv\", \"size\": 3, \"productId\": \"prod1\"},\n  {\"recommendationType\": \"mvop\", \"size\": 3, \"filters\": [\"\\[category\\]\\[=\\]\\[shoes\\]\"]}\n]\n\n</code></pre>\n<p><strong>Available types</strong>: ub, ue, vtv, btb, cp, sp, mvoc, mvop, mpoc, mpop, mpol, naoc, naop, tpoc, tpop, mvpoc, mvpop, mm, hdop, hdoc, rvp, lpt</p>\n<p>Each strategy specifies its algorithm type, the number of products to return, and, optionally, its own filters.</p>\n<h4 id=\"manual-merchandising-in-mixed\">Manual Merchandising in Mixed</h4>\n<p>Use mm to include specific products you want to promote. The productId field is required.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">{\"recommendationType\": \"mm\", \"size\": 3, \"productId\": \"featured1,featured2,featured3\"}\n\n</code></pre>\n<p><strong>Full example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">GET /mixed?partnerName=X&amp;locale=en_US¤cy=TRY&amp;strategy=[{\"recommendationType\":\"ub\",\"size\":5},{\"recommendationType\":\"mm\",\"size\":3,\"productId\":\"promo1,promo2,promo3\"},{\"recommendationType\":\"mvop\",\"size\":2}]\n\n</code></pre>\n<ul>\n<li><p>Pass product IDs as comma-separated values.</p>\n</li>\n<li><p>Products are returned in the order you specify.</p>\n</li>\n<li><p>Only in-stock products are returned.</p>\n</li>\n</ul>\n<h4 id=\"multiple-item-ids-in-item-based-algorithms\">Multiple Item IDs in Item-Based Algorithms</h4>\n<p>Get recommendations based on multiple products at once by passing comma-separated IDs:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">GET /vtv?partnerName=X&amp;locale=en_US&amp;productId=item1,item2,item3&amp;size=10¤cy=USD\n\n</code></pre>\n<p>Supported endpoints are <strong>/vtv</strong>, <strong>/btb</strong>, <strong>/cp</strong>, <strong>/sp</strong>. It is useful when you want recommendations based on multiple items in a cart or wishlist.</p>\n<h4 id=\"group-products\">Group Products</h4>\n<p>Include product variants (e.g., different sizes/colors) in the response using getGroupProducts.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">GET /ub?partnerName=X&amp;locale=en_US&amp;userId=user1&amp;getGroupProducts=true&amp;groupProductsFields=price,in_stock,product_attributes.color\n\n</code></pre>\n<h5 id=\"parameters\">Parameters</h5>\n<ul>\n<li><p>getGroupProducts=true — Enable variant products in response</p>\n</li>\n<li><p>groupProductsFields — Additional fields to include (comma-separated)</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response structure</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"item_id\": \"shoe-blue-m\",\n  \"group_products\": [\n    {\"item_id\": \"shoe-blue-s\", \"price\": {\"USD\": 99}, \"in_stock\": 1},\n    {\"item_id\": \"shoe-blue-l\", \"price\": {\"USD\": 99}, \"in_stock\": 1}\n  ]\n}\n\n</code></pre>\n<p>Variants are grouped by groupcode. You can request nested fields, such as product_attributes.color.</p>\n<h4 id=\"filter-chaining-with-asteriks-\">Filter Chaining with asteriks (*)</h4>\n<p>To combine multiple filters with AND logic, use *.  Here is an example of applying multiple filters:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">GET \n...&amp;filter=[category][=][shoes]*[brand][=][nike]*[price][&lt;][100]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["v2","{algorithm-name}"],"host":["recommendation","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d63e7967-0902-47e1-802d-a586f2e913f1"}],"id":"24d22f95-8d16-40c7-91dc-003831f328fb","_postman_id":"24d22f95-8d16-40c7-91dc-003831f328fb","description":""},{"name":"Search APIs","item":[{"name":"Event Collection API","item":[{"name":"Collect user's search event","id":"e8b5bdfd-6aa5-48df-906f-c34964b546ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://eurekaevent.api.useinsider.com/api/v1/events","description":"<p>The Event Collection API allows you to integrate user event collection functionality into Eureka. The API is designed to collect user events such as search queries, clicks, add to carts, and purchases. You can use the collected data to improve Eureka’s performance and user experience.</p>\n<p>The search event should be fired when a visitor makes a search for a product or content.</p>\n<p>It is recommended to send the search event with each request unless you are using <a href=\"https://academy.insiderone.com/docs/eureka-overview\">Eureka</a> in a search-as-you-type experience.</p>\n<p>If you are using search-as-you-type, the search event should be sent after the user completes their discovery, such as when they click on a product or navigate to another page.</p>\n<p>If the user stops typing and does not interact with facets, sorting, or pagination, you may assume the query is complete and trigger the search event. A 10-second waiting time is recommended to determine when the user has paused long enough to consider the search finalized.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>POST</strong> <a href=\"https://eurekaevent.api.useinsider.com/api/v1/events\">https://eurekaevent.api.useinsider.com/api/v1/events</a></p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The search event supports the following properties:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attribute Name</th>\n<th>Type</th>\n<th>Validation</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>referrer</td>\n<td>String</td>\n<td>Required, url</td>\n<td>-</td>\n<td>Source URL of the referring page</td>\n</tr>\n<tr>\n<td>campId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>A unique identifier assigned to a campaign. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>variationId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>A unique identifier assigned to a specific variation within a campaign. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>source</td>\n<td>String</td>\n<td>oneof=  <br />- search-popup  <br />- search-listing</td>\n<td></td>\n<td>Component where the search engine is used</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- desktop-web  <br />- mobile-web  <br />  <br />- tablet-web  <br />- ios  <br />- android  <br />- other</td>\n<td>-</td>\n<td>Platform used by the user</td>\n</tr>\n<tr>\n<td>integrationType</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- api  <br />- web</td>\n<td>-</td>\n<td>Type of integration</td>\n</tr>\n<tr>\n<td>traceId</td>\n<td>String</td>\n<td>Required</td>\n<td>-</td>\n<td>Unique trace identifier created for the current query. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>sessionId</td>\n<td>String</td>\n<td>-</td>\n<td>-</td>\n<td>Browser/app session identifier</td>\n</tr>\n<tr>\n<td>strategyId</td>\n<td>String</td>\n<td>-</td>\n<td>-</td>\n<td>Optional strategy identifier</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>String</td>\n<td>Required</td>\n<td>Default</td>\n<td>Unique identifier of the user. It is expected to provide for user-based calculations.</td>\n</tr>\n<tr>\n<td>query</td>\n<td>String</td>\n<td>Required</td>\n<td>-</td>\n<td>Query the user searched with</td>\n</tr>\n<tr>\n<td>resultCount</td>\n<td>Integer</td>\n<td>Required, unless no result, min=1</td>\n<td>-</td>\n<td>Number of search results returned</td>\n</tr>\n<tr>\n<td>itemsPerPage</td>\n<td>Integer</td>\n<td>Required, unless no result, min=1</td>\n<td>-</td>\n<td>Number of items per page used in the search request</td>\n</tr>\n<tr>\n<td>totalPages</td>\n<td>Integer</td>\n<td>Required, unless no result, min=1</td>\n<td>-</td>\n<td>Total number of pages returned by the search</td>\n</tr>\n<tr>\n<td>currentPage</td>\n<td>Integer</td>\n<td>Required, unless no result, min=1</td>\n<td>-</td>\n<td>Page number where the search results are displayed</td>\n</tr>\n<tr>\n<td>sorting</td>\n<td>String</td>\n<td>Required</td>\n<td>Relevancy</td>\n<td>The sorting method used in the search request. It is the type of sorting object of the search response. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>facets</td>\n<td>List of facets</td>\n<td>-</td>\n<td>-</td>\n<td>List of facets of the search. Required if any facet selected. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>products</td>\n<td>List of products</td>\n<td>Required, unless no result</td>\n<td>-</td>\n<td>List of products returned by the search Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>eventType</td>\n<td>String</td>\n<td>Required, equals=search</td>\n<td>-</td>\n<td>Type of event</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>String</td>\n<td>Required, formatted in RFC3339</td>\n<td>If omitted or invalid, it defaults to the current time</td>\n<td>Time when the event is created. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n</tbody>\n</table>\n</div><p>If your integration was implemented before the Advanced Analytics September 01, 2025, release, please be aware that new fields have been added to the expected product payload structure. You are required to review and implement these additions to ensure more comprehensive and accurate analytics.</p>\n<p>You can view the differences in the updated payload structure in the <a href=\"https://academy.insiderone.com/v1/docs/event-collection-common-properties\">Common Properties</a>.</p>\n<p>For the same <strong>traceId</strong>, a product must be sent <strong>only once</strong>. Even if the user interacts with sorting, pagination, or facet filters, the same product should <strong>not</strong> be sent again within the same session. Sending the product once under the same traceId is sufficient.</p>\n<p><strong>Example Conceptual flow</strong></p>\n<ul>\n<li><p><strong>User submits a search query</strong></p>\n<ul>\n<li><p>Example: query = \"myphone\"</p>\n</li>\n<li><p>Generated traceId = \"x123\" for this search session.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>First response is returned</strong></p>\n<ul>\n<li><p>Products:myiphone 11, myphone 12, myphone 13</p>\n</li>\n<li><p>Tracking layer checks: “Have I already sent myphone 11, myphone 12, or myphone 13 for traceId = x123?”</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Send only new products to tracking</strong></p>\n<ul>\n<li><p>Initially, nothing has been sent yet, so:</p>\n<ul>\n<li><p>Send myphone 11, myphone 12, myphone 13</p>\n</li>\n<li><p>Mark them as <strong>seen for x123</strong>.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>User changes sorting / goes to next page / applies a filter</strong></p>\n<ul>\n<li><p>Under the same traceId = x123.</p>\n</li>\n<li><p>Some products may repeat and some may be new (e.g. myphone X, myphone 17).</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Before sending events, filter out already-seen products</strong></p>\n<ul>\n<li><p>Compare the new product list with the set {myphone 11, myphone 12, myphone 13} already sent for x123.</p>\n</li>\n<li><p>Only send tracking events for products not in that set.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"suggested-tips-for-search-event-collection\">Suggested Tips for Search Event Collection</h3>\n<p>To ensure accurate and efficient search event tracking, the following recommendations should be applied:</p>\n<h4 id=\"timer-based-event-triggering\">Timer-Based Event Triggering</h4>\n<ul>\n<li><p>Each time the user types in the search input or interacts with filters (such as sorting, pagination, or facets) within the search popup, a 10-second timer is triggered.</p>\n</li>\n<li><p>If the user performs another action before the 10 seconds elapse, the timer is reset.</p>\n</li>\n<li><p>If no interactions occur within 10 seconds, the search event log is sent.</p>\n</li>\n</ul>\n<h4 id=\"additional-scenarios-requiring-search-event-logging\">Additional Scenarios Requiring Search Event Logging</h4>\n<p>A search event should also be sent in the following situations if it has not already been logged:</p>\n<ul>\n<li><p>When the user clicks a product and navigates to the product page</p>\n</li>\n<li><p>On exit intent, if the log has not yet been sent</p>\n</li>\n<li><p>When a product is added to the cart</p>\n</li>\n<li><p>When the user deletes the entire query (send for the previous query if not yet logged)</p>\n</li>\n<li><p>When the user copies and pastes a new query (send for the previous query if not yet logged)</p>\n</li>\n<li><p>When the user modifies the query after applying a facet (send for the previous query if not yet logged)</p>\n</li>\n</ul>\n<p>These recommendations ensure that search events are captured reliably without duplication, providing more accurate insights into user behavior.</p>\n<p>To gain a deeper understanding, check out the details on facet and product fields on the <a href=\"https://academy.insiderone.com/v1/docs/event-collection-common-properties\">Common Properties</a> page.</p>\n<blockquote>\n<p>&lt;p &gt;Please note that the following user actions are also considered search requests:&lt;/p&gt;&lt;p &gt;- Changing the sorting option&lt;/p&gt;&lt;p &gt;- Applying a facet filter&lt;/p&gt;&lt;p &gt;- Pagination&lt;/p&gt; </p>\n</blockquote>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>In the example below, you see a sample request along with guidance on modifying the necessary fields. This will help you seamlessly integrate and make the most of the provided configuration.</p>\n<p>Before usage, modifying the values such as <strong>x-auth-token</strong> and <strong>x-partner-config-key</strong> is essential.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request POST 'https://eurekaevent.api.useinsider.com/api/v1/events' \\\n--header 'x-auth-token: YOUR_AUTH_TOKEN' \\\n--header 'x-partner-config-key: YOUR_PARTNERID-YOUR_LOCALE' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"referrer\": \"https://example.com/homepage\",\n  \"source\": \"search-listing\",\n  \"userId\": \"user-12345\",\n  \"platform\": \"desktop-web\",\n  \"campId\": 999999,\n  \"variationId\": 999999,\n  \"query\": \"laptop\",\n  \"traceId\": \"search-traceId-abc123\",\n  \"strategyId\":\"strategy-id-123\",\n  \"sessionId\":\"session-id-123\",\n  \"resultCount\": 25,\n  \"itemsPerPage\": 10,\n  \"totalPages\": 3,\n  \"currentPage\": 1,\n  \"sorting\": \"Relevancy\",\n  \"facets\": [\n    {\n      \"label\": \"Price\",\n      \"field\": \"price_en\",\n      \"values\": [\"500\", \"2000\"]\n    },\n    {\n      \"label\": \"Brand\",\n      \"field\": \"brand_en\",\n      \"values\": [\"Pear\", \"Deli\", \"SP\"]\n    }\n  ],\n  \"products\": [\n    {\n      \"id\": \"product-001\",\n      \"groupCode\": \"laptop-group-1\",\n      \"price\": 1299.99,\n      \"convertedPrice\": 1199.99,\n      \"currency\": \"USD\",\n      \"preferredCurrency\": \"EUR\",\n      \"displayPosition\": 1\n    },\n    {\n      \"id\": \"product-002\",\n      \"groupCode\": \"laptop-group-2\",\n      \"price\": 899.99,\n      \"convertedPrice\": 829.99,\n      \"currency\": \"USD\",\n      \"preferredCurrency\": \"EUR\",\n      \"displayPosition\": 2\n     }\n  ],\n  \"eventType\": \"search\",\n  \"integrationType\": \"web\",\n  \"createdAt\": \"2025-11-25T10:30:00Z\"\n}'\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","events"],"host":["eurekaevent","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Source URL of the referring page.</p>\n","type":"text/plain"},"key":"referrer","value":"String"},{"disabled":true,"description":{"content":"<p>Campaign ID, provided in the Insider's InOne panel.</p>\n","type":"text/plain"},"key":"campId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Variation ID, provided in the Insider's InOne panel</p>\n","type":"text/plain"},"key":"variationId","value":"Integer"},{"disabled":true,"description":{"content":"<p>oneof= - search-popup - search-listing</p>\n","type":"text/plain"},"key":"source","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Platform used by the user.</p>\n","type":"text/plain"},"key":"platform","value":"String"},{"disabled":true,"description":{"content":"<p>Required, oneof= api - web</p>\n","type":"text/plain"},"key":"integrationType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Unique trace identifier created for the current query.</p>\n","type":"text/plain"},"key":"traceId","value":"String"},{"disabled":true,"description":{"content":"<p>Browser/app session identifier</p>\n","type":"text/plain"},"key":"sessionId","value":"String"},{"disabled":true,"description":{"content":"<p>Optional strategy identifier</p>\n","type":"text/plain"},"key":"strategyId","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Unique identifier of the user.</p>\n","type":"text/plain"},"key":"userId","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Query the user searched with.</p>\n","type":"text/plain"},"key":"query","value":"String"},{"disabled":true,"description":{"content":"<p>Required unless no result, min=1. Number of search results returned.</p>\n","type":"text/plain"},"key":"resultCount","value":"String"},{"disabled":true,"description":{"content":"<p>Required unless no result, min=1. Number of items per page used in search request.</p>\n","type":"text/plain"},"key":"itemsPerPage","value":"Integer"},{"disabled":true,"description":{"content":"<p>Required unless no result, min=1. Total number of pages returned by search.</p>\n","type":"text/plain"},"key":"totalPages","value":"Integer"},{"disabled":true,"description":{"content":"<p>Required unless no result, min=1. Page number where the search results displayed.</p>\n","type":"text/plain"},"key":"currentPage","value":"Integer"},{"disabled":true,"description":{"content":"<p>Required. Sorting method used in search request. It is the type of sorting object of search response.</p>\n","type":"text/plain"},"key":"sorting","value":"String"},{"disabled":true,"description":{"content":"<p>List of facets of the search. Required if any facet selected.</p>\n","type":"text/plain"},"key":"facets","value":"List of facets"},{"disabled":true,"description":{"content":"<p>List of products returned by the search. Required unless no result.</p>\n","type":"text/plain"},"key":"products","value":"List of products"},{"disabled":true,"description":{"content":"<p>Required, equals=search. Type of event.</p>\n","type":"text/plain"},"key":"eventType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Time when the event is created.</p>\n","type":"text/plain"},"key":"createdAt","value":"String"}],"variable":[]}},"response":[],"_postman_id":"e8b5bdfd-6aa5-48df-906f-c34964b546ee"},{"name":"Collect user's product click event","id":"b6922c79-7230-4271-b802-96d1e7fa4fec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://eurekaevent.api.useinsider.com/api/v1/events","description":"<p>The Event Collection API allows you to integrate user event collection functionality into Eureka. The API is designed to collect user events such as search queries, clicks, add to carts, and purchases. You can use the collected data to improve Eureka’s performance and user experience.</p>\n<p>The product click event should be triggered whenever a visitor clicks an item from the search results.</p>\n<h3 id=\"suggested-cases\">Suggested Cases</h3>\n<p>A product click event should be sent in the following situations:</p>\n<ul>\n<li><p>When an item is clicked from the search popup, listing page, or any other search result surface.</p>\n</li>\n<li><p>When a user adds a product to the cart directly from the pop-up, without visiting the Product Detail Page (PDP):</p>\n<ul>\n<li>In this scenario, in addition to the add-to-cart event, a product-click event should also be sent if it has not already been logged.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>POST</strong> <a href=\"https://eurekaevent.api.useinsider.com/api/v1/events\">https://eurekaevent.api.useinsider.com/api/v1/events</a></p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The product click event supports the following properties:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attribute Name</th>\n<th>Type</th>\n<th>Validation</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>referrer</td>\n<td>String</td>\n<td>Required, url</td>\n<td>-</td>\n<td>Source URL of the referring page</td>\n</tr>\n<tr>\n<td>campId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>The campId serves as a unique identifier. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>variationId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>The variationId represents the unique identifier for a specific campaign variation. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>source</td>\n<td>String</td>\n<td>oneof=  <br />- search-popup  <br />- search-listing  <br />- category-listing  <br />- brand-listing  <br />- other</td>\n<td>search-listing</td>\n<td>Source origin where the event triggered</td>\n</tr>\n<tr>\n<td>integrationType</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- api  <br />- web</td>\n<td>-</td>\n<td>Type of integration</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- desktop-web  <br />- mobile-web  <br />  <br />- tablet-web  <br />- ios  <br />- android  <br />- other</td>\n<td>-</td>\n<td>Platform used by the user</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>String</td>\n<td>-</td>\n<td>default</td>\n<td>Unique identifier of the user. It is expected to provide for user-based calculations.</td>\n</tr>\n<tr>\n<td>product</td>\n<td>List of Product</td>\n<td>Required</td>\n<td>-</td>\n<td>The product clicked by the user. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>eventType</td>\n<td>String</td>\n<td>Required, equals=product-click</td>\n<td>-</td>\n<td>Type of event</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>String</td>\n<td>Required, formatted in RFC3339</td>\n<td>If omitted or invalid, it defaults to the current time</td>\n<td>Time when the event is created. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n</tbody>\n</table>\n</div><p>If your integration was implemented before the Advanced Analytics September 01, 2025, release, please note that new fields have been added to the expected product payload. Following this release, the event now retrieves currentPage and related details from product-level fields instead of top-level fields. In addition, the product object has been enriched with several new fields.</p>\n<p>For backward compatibility, you may continue sending these values at the event level. However, it is strongly recommended to update your implementation to the new product-level structure to ensure full alignment with the latest version and to benefit from more comprehensive analytics.</p>\n<p>You can review the full list of changes on the <a href=\"https://academy.insiderone.com/v1/docs/event-collection-common-properties\">Common Properties</a> page.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>In the example below, you see a sample request along with guidance on modifying the necessary fields. This will help you seamlessly integrate and make the most of the provided configuration.</p>\n<p>Before usage, it is essential to modify the values such as <strong>x-auth-token</strong> and <strong>x-partner-config-key</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request POST 'https://eurekaevent.api.useinsider.com/api/v1/events' \\\n--header 'x-auth-token: YOUR_AUTH_TOKEN' \\\n--header 'x-partner-config-key: YOUR_PARTNERID-YOUR_LOCALE' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"referrer\": \"https://example.com/search-results\",\n  \"source\": \"search-listing\",\n  \"userId\": \"user-12345\",\n  \"platform\": \"mobile-web\",\n  \"campId\": 100,\n  \"variationId\": 200,\n  \"product\": {\n    \"id\": \"product-001\",\n    \"groupCode\": \"laptop-group-1\",\n    \"query\": \"laptop\",\n    \"price\": 1299.99,\n    \"convertedPrice\": 1199.99,\n    \"currency\": \"USD\",\n    \"preferredCurrency\": \"EUR\",\n    \"clickPosition\": 3,\n    \"displayPosition\": 3,\n    \"quantity\": 1,\n    \"resultCount\": 25,\n    \"itemsPerPage\": 10,\n    \"totalPages\": 3,\n    \"facets\": [\n      {\n        \"label\": \"Fiyat\",\n        \"field\": \"price\",\n        \"values\": [\"500\", \"2000\"]\n      }\n    ],\n    \"sorting\": \"PriceAsc\",\n    \"currentPage\": 1,\n    \"traceId\": \"search-session-abc123\",\n    \"strategyId\":\"strategy-id-123\",\n    \"sessionId\":\"session-id-123\"\n  },\n  \"eventType\": \"product-click\",\n  \"integrationType\": \"web\",\n  \"createdAt\": \"2025-11-25T10:35:00Z\"\n}'\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","events"],"host":["eurekaevent","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Source URL of the referring page.</p>\n","type":"text/plain"},"key":"referrer","value":"String"},{"disabled":true,"description":{"content":"<p>Campaign ID, provided in the Insider's InOne panel.</p>\n","type":"text/plain"},"key":"campId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Variation ID, provided in the Insider's InOne panel</p>\n","type":"text/plain"},"key":"variationId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Source origin where the event triggered</p>\n","type":"text/plain"},"key":"source","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Type of integration.</p>\n","type":"text/plain"},"key":"integrationType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Platform used by the user.</p>\n","type":"text/plain"},"key":"platform","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Unique identifier of the user.</p>\n","type":"text/plain"},"key":"userId","value":"String"},{"disabled":true,"description":{"content":"<p>Required. The product clicked by the user.</p>\n","type":"text/plain"},"key":"product","value":"List of product"},{"disabled":true,"description":{"content":"<p>Required, equals=search. Type of event.</p>\n","type":"text/plain"},"key":"eventType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Time when the event is created.</p>\n","type":"text/plain"},"key":"createdAt","value":"String"}],"variable":[]}},"response":[],"_postman_id":"b6922c79-7230-4271-b802-96d1e7fa4fec"},{"name":"Collect user's product list view event","id":"68b3a9d0-5ab5-47a0-8d1f-656873672db6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://eurekaevent.api.useinsider.com/api/v1/events","description":"<p>The Event Collection API allows you to integrate user event collection functionality into Eureka. The API is designed to collect user events such as search queries, clicks, add to carts, and purchases. You can use the collected data to improve Eureka’s performance and user experience.</p>\n<p>The product list view event should be fired when a visitor views a category or brand listing page that displays products. This event is used to track impressions on non-search listing pages, such as category and brand pages.</p>\n<p>Suggested cases are as follows;</p>\n<ul>\n<li><p>When a user visits a category listing page (e.g., Electronics &gt; Laptops)</p>\n</li>\n<li><p>When a user applies filters, changes sorting, or navigates tothe  next page within a category listing</p>\n</li>\n</ul>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>POST</strong> <a href=\"https://eurekaevent.api.useinsider.com/api/v1/events\">https://eurekaevent.api.useinsider.com/api/v1/events</a></p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The Product List View event supports the following properties:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attribute Name</th>\n<th>Type</th>\n<th>Validation</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>referrer</td>\n<td>String</td>\n<td>Required, url</td>\n<td>-</td>\n<td>Source URL of the referring page</td>\n</tr>\n<tr>\n<td>campId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>A unique identifier assigned to a campaign. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>variationId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>A unique identifier assigned to a specific variation within a campaign. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>source</td>\n<td>String</td>\n<td>required,<br /><br />oneof=<br /><br />- category-listing,<br />    <br />- brand-listing</td>\n<td></td>\n<td>Component where the search engine is used</td>\n</tr>\n<tr>\n<td>listValue</td>\n<td>String</td>\n<td>required,<br /><br />oneof=<br /><br />- category-listing,<br />    <br />- brand-listing</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>userId</td>\n<td>String</td>\n<td>-</td>\n<td>default</td>\n<td>Unique identifier of the user. Must not contain spaces. It is expected to be provided for user-based calculations.</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- desktop-web  <br />- mobile-web<br /><br />- tablet-web  <br />- ios  <br />- android  <br />- other</td>\n<td>-</td>\n<td>Platform used by the user</td>\n</tr>\n<tr>\n<td>integrationType</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- api  <br />- web</td>\n<td>-</td>\n<td>Type of integration</td>\n</tr>\n<tr>\n<td>traceId</td>\n<td>String</td>\n<td>Required</td>\n<td>-</td>\n<td>Unique trace identifier created for the current query. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>sessionId</td>\n<td>String</td>\n<td>-</td>\n<td>-</td>\n<td>Browser/app session identifier</td>\n</tr>\n<tr>\n<td>strategyId</td>\n<td>String</td>\n<td>-</td>\n<td>-</td>\n<td>Optional strategy identifier</td>\n</tr>\n<tr>\n<td>sorting</td>\n<td>String</td>\n<td>Required</td>\n<td>Relevancy</td>\n<td>Sorting method used in the search request. It is the type of sorting object of the search response.</td>\n</tr>\n<tr>\n<td>resultCount</td>\n<td>Integer</td>\n<td>Required, unless no result, min=0</td>\n<td>-</td>\n<td>Number of search results returned</td>\n</tr>\n<tr>\n<td>itemsPerPage</td>\n<td>Integer</td>\n<td>-</td>\n<td>-</td>\n<td>Number of items per page used in the search request</td>\n</tr>\n<tr>\n<td>totalPages</td>\n<td>Integer</td>\n<td>-</td>\n<td>-</td>\n<td>Total number of pages returned by the search</td>\n</tr>\n<tr>\n<td>currentPage</td>\n<td>Integer</td>\n<td>-</td>\n<td>-</td>\n<td>Page number where the search results are displayed</td>\n</tr>\n<tr>\n<td>facets</td>\n<td>List of facets</td>\n<td>-</td>\n<td>-</td>\n<td>List of facets of the search. Required if any facet selected. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>products</td>\n<td>List of products</td>\n<td>Required, min=1</td>\n<td>-</td>\n<td>List of products returned by the search. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>eventType</td>\n<td>String</td>\n<td>required, equals=product-list-view</td>\n<td>-</td>\n<td>Type of event. Must be product-list-view.</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>String</td>\n<td>Required, formatted in RFC3339</td>\n<td>If omitted or invalid, the  defaults to the current time</td>\n<td>Time when the event is created. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>&lt;p &gt;Each list page request is assigned a uniquely generated traceId.&lt;/p&gt; </p>\n</blockquote>\n<h3 id=\"sample-requests\">Sample Requests</h3>\n<p>In the examples below, we provide sample requests along with guidance on modifying the necessary fields. This will help you seamlessly integrate and make the most of the provided configuration.</p>\n<blockquote>\n</blockquote>\n<p>Before usage, modifying the values such as <strong>x-auth-token</strong> and <strong>x-partner-config-key</strong> is essential.</p>\n<h4 id=\"hierarchical-category-listing-example\">Hierarchical Category Listing Example</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request POST 'https://eurekaevent.api.useinsider.com/api/v1/events' \\\n--header 'x-auth-token: YOUR_AUTH_TOKEN' \\\n--header 'x-partner-config-key: YOUR_PARTNERID-YOUR_LOCALE' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"referrer\": \"https://example.com/category/electronics\",\n  \"source\": \"category-listing\",\n  \"listValue\": \"electronics~laptops\",\n  \"userId\": \"user-12345\",\n  \"platform\": \"desktop-web\",\n  \"traceId\": \"trace-abc123\",\n  \"sessionId\": \"session-abc123\",\n  \"strategyId\": \"strategy-001\",\n  \"sorting\": \"PriceAsc\",\n  \"resultCount\": 120,\n  \"itemsPerPage\": 24,\n  \"totalPages\": 5,\n  \"currentPage\": 1,\n  \"integrationType\": \"api\",\n  \"createdAt\": \"2026-01-20T14:30:00Z\",\n  \"facets\": [\n    {\n      \"label\": \"Brand\",\n      \"field\": \"brand_en\",\n      \"values\": [\"Apple\", \"Dell\"]\n    }\n  ],\n  \"products\": [\n    {\n      \"id\": \"product-001\",\n      \"groupCode\": \"laptop-group-1\",\n      \"price\": 999.99,\n      \"convertedPrice\": 949.99,\n      \"currency\": \"USD\",\n      \"preferredCurrency\": \"EUR\",\n      \"position\": 1,\n      \"displayPosition\": 1,\n      \"isMerchandisedItem\": false\n    },\n    {\n      \"id\": \"product-002\",\n      \"groupCode\": \"laptop-group-2\",\n      \"price\": 1299.99,\n      \"convertedPrice\": 1249.99,\n      \"currency\": \"USD\",\n      \"preferredCurrency\": \"EUR\",\n      \"position\": 2,\n      \"displayPosition\": 2,\n      \"isMerchandisedItem\": false\n    }\n  ],\n  \"eventType\": \"product-list-view\"\n}'\n\n</code></pre>\n<h4 id=\"flat-category-listing-example\">Flat Category Listing Example</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request POST 'https://eurekaevent.api.useinsider.com/api/v1/events' \\\n--header 'x-auth-token: YOUR_AUTH_TOKEN' \\\n--header 'x-partner-config-key: YOUR_PARTNERID-YOUR_LOCALE' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"referrer\": \"https://example.com/category/electronics\",\n  \"source\": \"category-listing\",\n  \"listValue\": \"samsung laptops\",\n  \"userId\": \"user-12345\",\n  \"platform\": \"desktop-web\",\n  \"traceId\": \"trace-abc123\",\n  \"sessionId\": \"session-abc123\",\n  \"strategyId\": \"strategy-001\",\n  \"sorting\": \"PriceAsc\",\n  \"resultCount\": 120,\n  \"itemsPerPage\": 24,\n  \"totalPages\": 5,\n  \"currentPage\": 1,\n  \"integrationType\": \"api\",\n  \"createdAt\": \"2026-01-20T14:30:00Z\",\n  \"products\": [\n    {\n      \"id\": \"product-001\",\n      \"groupCode\": \"laptop-group-1\",\n      \"price\": 999.99,\n      \"convertedPrice\": 949.99,\n      \"currency\": \"USD\",\n      \"preferredCurrency\": \"EUR\",\n      \"position\": 1,\n      \"displayPosition\": 1,\n      \"isMerchandisedItem\": false\n    },\n    {\n      \"id\": \"product-002\",\n      \"groupCode\": \"laptop-group-2\",\n      \"price\": 1299.99,\n      \"convertedPrice\": 1249.99,\n      \"currency\": \"USD\",\n      \"preferredCurrency\": \"EUR\",\n      \"position\": 2,\n      \"displayPosition\": 2,\n      \"isMerchandisedItem\": false\n    }\n  ],\n  \"eventType\": \"product-list-view\"\n}'\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","events"],"host":["eurekaevent","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Source URL of the referring page.</p>\n","type":"text/plain"},"key":"referrer","value":"String"},{"disabled":true,"description":{"content":"<p>Campaign ID, provided in the Insider's InOne panel.</p>\n","type":"text/plain"},"key":"campId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Variation ID, provided in the Insider's InOne panel</p>\n","type":"text/plain"},"key":"variationId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Required. Source origin where the event triggered</p>\n","type":"text/plain"},"key":"source","value":"String"},{"disabled":true,"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"listValue","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Unique identifier of the user.</p>\n","type":"text/plain"},"key":"userId","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Platform used by the user.</p>\n","type":"text/plain"},"key":"platform","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Type of integration.</p>\n","type":"text/plain"},"key":"integrationType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Unique trace identifier created for the current query.</p>\n","type":"text/plain"},"key":"traceId","value":"String"},{"disabled":true,"description":{"content":"<p>Browser/app session identifier</p>\n","type":"text/plain"},"key":"sessionId","value":"String"},{"disabled":true,"description":{"content":"<p>Optional strategy identifier</p>\n","type":"text/plain"},"key":"strategyId","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Sorting method used in the search request. It is the type of sorting object of the search response.</p>\n","type":"text/plain"},"key":"sorting","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Number of search results returned</p>\n","type":"text/plain"},"key":"resultCount","value":"Integer"},{"disabled":true,"description":{"content":"<p>Number of items per page used in the search request</p>\n","type":"text/plain"},"key":"itemsPerPage","value":"Integer"},{"disabled":true,"description":{"content":"<p>Total number of pages returned by the search</p>\n","type":"text/plain"},"key":"totalPages","value":"Integer"},{"disabled":true,"description":{"content":"<p>Page number where the search results are displayed</p>\n","type":"text/plain"},"key":"currentPage","value":"Integer"},{"disabled":true,"description":{"content":"<p>List of facets of the search. Required if any facet selected</p>\n","type":"text/plain"},"key":"facets","value":"List of facets"},{"disabled":true,"description":{"content":"<p>Required. The product clicked by the user.</p>\n","type":"text/plain"},"key":"products","value":"List of product"},{"disabled":true,"description":{"content":"<p>Required, equals=search. Type of event.</p>\n","type":"text/plain"},"key":"eventType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Time when the event is created.</p>\n","type":"text/plain"},"key":"createdAt","value":"String"}],"variable":[]}},"response":[],"_postman_id":"68b3a9d0-5ab5-47a0-8d1f-656873672db6"},{"name":"Collect user's add to cart event","id":"19d03e81-d6a8-4863-b844-f556cb8bf9c3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://eurekaevent.api.useinsider.com/api/v1/events","description":"<p>The Event Collection API allows you to integrate user event collection functionality into Eureka. The API is designed to collect user events, such as search queries, clicks, add to carts, and purchases. You can use the collected data to improve Eureka’s performance and user experience.</p>\n<p>The Add to Cart event should be fired when a visitor adds an item to the cart from search results.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>POST</strong> <a href=\"https://eurekaevent.api.useinsider.com/api/v1/events\">https://eurekaevent.api.useinsider.com/api/v1/events</a></p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The add to cart event supports the following properties:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attribute Name</th>\n<th>Type</th>\n<th>Validation</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>referrer</td>\n<td>String</td>\n<td>Required, url</td>\n<td>-</td>\n<td>Source URL of the referring page</td>\n</tr>\n<tr>\n<td>campId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>The campId serves as a unique identifier. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>variationId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>The variationId represents the unique identifier for a specific campaign variation. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>source</td>\n<td>String</td>\n<td>oneof=  <br />- search-popup  <br />- search-listing  <br />- category-listing  <br />- brand-listing  <br />- other</td>\n<td>search-listing</td>\n<td>Source origin where the event triggered</td>\n</tr>\n<tr>\n<td>integrationType</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- api  <br />- web</td>\n<td>-</td>\n<td>Type of integration</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- desktop-web  <br />- mobile-web<br /><br />- tablet-web  <br />- ios  <br />- android  <br />- other</td>\n<td>-</td>\n<td>Platform used by the user. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> if you want to use other.</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>String</td>\n<td>-</td>\n<td>default</td>\n<td>Unique identifier of the user. It is expected to provide for user-based calculations.</td>\n</tr>\n<tr>\n<td>product</td>\n<td>List of Product</td>\n<td>Required</td>\n<td>-</td>\n<td>The product clicked by the user. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>eventType</td>\n<td>String</td>\n<td>Required,  <br />equals=add-to-cart</td>\n<td>-</td>\n<td>Type of event</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>String</td>\n<td>Required, formatted in RFC3339</td>\n<td>If omitted or invalid, it defaults to the current time</td>\n<td>Time when the event is created. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n</blockquote>\n<p>If your integration was implemented before the Advanced Analytics September 01, 2025, release, please note that new fields have been added to the expected product payload. Following this release, the event now retrieves currentPage and related details from product-level fields instead of top-level fields. In addition, the product object has been enriched with several new fields.</p>\n<p>For backward compatibility, you may continue sending these values at the event level. However, it is strongly recommended to update your implementation to the new product-level structure to ensure full alignment with the latest version and to benefit from more comprehensive analytics.</p>\n<p>You can review the full list of changes on the <a href=\"https://academy.insiderone.com/v1/docs/event-collection-common-properties\">Common Properties</a> page.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>In the example below, you see a sample request along with guidance on modifying the necessary fields. This will help you seamlessly integrate and make the most of the provided configuration.</p>\n<blockquote>\n</blockquote>\n<p>Before usage, modifying the values such as <strong>x-auth-token</strong> and <strong>x-partner-config-key</strong> is essential.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request POST 'https://eurekaevent.api.useinsider.com/api/v1/events' \\\n--header 'x-auth-token: YOUR_AUTH_TOKEN' \\\n--header 'x-partner-config-key: YOUR_PARTNERID-YOUR_LOCALE' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"referrer\": \"https://example.com/search-results\",\n  \"source\": \"product-detail\",\n  \"userId\": \"user-12345\",\n  \"platform\": \"ios\",\n  \"campId\": 999999,\n  \"variationId\": 999999,\n  \"product\": {\n    \"id\": \"product-001\",\n    \"groupCode\": \"laptop-group-1\",\n    \"query\": \"laptop\",\n    \"price\": 1299.99,\n    \"convertedPrice\": 1199.99,\n    \"currency\": \"USD\",\n    \"preferredCurrency\": \"EUR\",\n    \"clickPosition\": 3,\n    \"displayPosition\": 3,\n    \"quantity\": 2,\n    \"resultCount\": 25,\n    \"itemsPerPage\": 10,\n    \"totalPages\": 3,\n    \"facets\": [\n      {\n        \"label\": \"Price\",\n        \"field\": \"price_en\",\n        \"values\": [\"500\", \"2000\"]\n      },\n      {\n        \"label\": \"Brand\",\n        \"field\": \"brand_en\",\n        \"values\": [\"16GB\"]\n      }\n    ],\n    \"sorting\": \"Relevancy\",\n    \"currentPage\": 1,\n    \"traceId\": \"search-session-abc123\",\n    \"strategyId\":\"strategy-id-123\",\n    \"sessionId\":\"session-id-123\",\n    \"attributionWindow\": [\"7\", \"30\", \"90\"]\n  },\n  \"eventType\": \"add-to-cart\",\n  \"integrationType\": \"api\",\n  \"createdAt\": \"2025-11-25T10:40:00Z\"\n}'\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","events"],"host":["eurekaevent","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Source URL of the referring page.</p>\n","type":"text/plain"},"key":"referrer","value":"String"},{"disabled":true,"description":{"content":"<p>Campaign ID, provided in the Insider's InOne panel.</p>\n","type":"text/plain"},"key":"campId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Variation ID, provided in the Insider's InOne panel</p>\n","type":"text/plain"},"key":"variationId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Source origin where the event triggered</p>\n","type":"text/plain"},"key":"source","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Type of integration.</p>\n","type":"text/plain"},"key":"integrationType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Platform used by the user.</p>\n","type":"text/plain"},"key":"platform","value":"String"},{"disabled":true,"description":{"content":"<p>Default. Unique identifier of the user. It is expected to provide for user-based calculations.</p>\n","type":"text/plain"},"key":"userId","value":"String"},{"disabled":true,"description":{"content":"<p>Required. The product clicked by the user.</p>\n","type":"text/plain"},"key":"product","value":"Object"},{"disabled":true,"description":{"content":"<p>Required, equals=search. Type of event.</p>\n","type":"text/plain"},"key":"eventType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Time when the event is created.</p>\n","type":"text/plain"},"key":"createdAt","value":"String"}],"variable":[]}},"response":[],"_postman_id":"19d03e81-d6a8-4863-b844-f556cb8bf9c3"},{"name":"Collect user's purchase event","id":"4cb9b0a0-c227-4981-aabc-a67b6b16e98b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://eurekaevent.api.useinsider.com/api/v1/events","description":"<p>The Event Collection API allows you to integrate user event collection functionality into Eureka. The API is designed to collect user events such as search queries, clicks, add to carts, and purchases. You can use the collected data to improve Eureka’s performance and user experience.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<blockquote>\n</blockquote>\n<p><strong>POST</strong> <a href=\"https://eurekaevent.api.useinsider.com/api/v1/event\">https://eurekaevent.api.useinsider.com/api/v1/event</a></p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The purchase event supports the following properties:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attribute Name</th>\n<th>Type</th>\n<th>Validation</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>referrer</td>\n<td>String</td>\n<td>Required, url</td>\n<td>-</td>\n<td>Source URL of the referring page</td>\n</tr>\n<tr>\n<td>campId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>The campId serves as a unique identifier. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>variationId</td>\n<td>Integer</td>\n<td>-</td>\n<td>999999</td>\n<td>The variationId represents the unique identifier for a specific campaign variation. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- desktop-web  <br />- mobile-web<br /><br />- tablet-web  <br />- ios  <br />- android  <br />- other</td>\n<td>-</td>\n<td>Platform used by the user</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>String</td>\n<td>Required</td>\n<td>default</td>\n<td>Unique identifier of the user. It is expected to provide for user-based calculations.</td>\n</tr>\n<tr>\n<td>integrationType</td>\n<td>String</td>\n<td>Required,  <br />oneof=  <br />- api  <br />- web</td>\n<td>-</td>\n<td>Type of integration</td>\n</tr>\n<tr>\n<td>orderId</td>\n<td>String</td>\n<td>Required</td>\n<td>-</td>\n<td>Unique ID of the order with at least one product that received an impression from the search event</td>\n</tr>\n<tr>\n<td>allPurchasedProducts</td>\n<td>List of string</td>\n<td>Required</td>\n<td>-</td>\n<td>List of all product IDs that were purchased</td>\n</tr>\n<tr>\n<td>products</td>\n<td>List of Product</td>\n<td>Required</td>\n<td>-</td>\n<td>List of purchased products that received a click from the search event. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n<tr>\n<td>eventType</td>\n<td>String</td>\n<td>Required, equals=purchase</td>\n<td>-</td>\n<td>Type of event</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>String</td>\n<td>Required, formatted in RFC3339</td>\n<td>If omitted or invalid, it defaults to the current time</td>\n<td>Time when the event is created. Refer to <a href=\"https://academy.insiderone.com/v1/docs/eureka-common-properties\">common fields</a> for more details.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n</blockquote>\n<p>If your integration was implemented before the Advanced Analytics September 01, 2025, release, please note that new fields have been added to the expected product payload. Following this release, the event now retrieves currentPage, source, and related details from product-level fields instead of top-level fields. In addition, the product object has been enriched with several new fields.</p>\n<p>For backward compatibility, you may continue sending these values at the event level. However, it is strongly recommended to update your implementation to the new product-level structure to ensure full alignment with the latest version and to benefit from more comprehensive analytics.</p>\n<p>You can review the full list of changes on the <a href=\"https://academy.insiderone.com/v1/docs/event-collection-common-properties\">Common Properties</a> page.</p>\n<h3 id=\"sample-request\">Sample Request</h3>\n<p>In the example below, you see a sample request along with guidance on modifying the necessary fields. This will help you seamlessly integrate and make the most of the provided configuration.</p>\n<blockquote>\n</blockquote>\n<p>Before usage, modifying the values such as <strong>x-auth-token</strong> and <strong>x-partner-config-key</strong> is essential.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request POST 'https://eurekaevent.api.useinsider.com/api/v1/events' \\\n--header 'x-auth-token: YOUR_AUTH_TOKEN' \\\n--header 'x-partner-config-key: YOUR_PARTNERID-YOUR_LOCALE' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"referrer\": \"https://example.com/cart\",\n  \"userId\": \"user-12345\",\n  \"platform\": \"android\",\n  \"campId\": 100,\n  \"variationId\": 200,\n  \"orderId\": \"order-xyz789\",\n  \"allPurchasedProducts\": [\n    \"product-001\",\n    \"product-002\",\n    \"product-003\"\n  ],\n  \"products\": [\n    {\n      \"traceId\": \"search-session-abc123\",\n      \"strategyId\":\"strategy-id-123\",\n      \"sessionId\":\"session-id-123\",\n      \"source\": \"category-listing\",\n      \"id\": \"product-001\",\n      \"groupCode\": \"laptop-group-1\",\n      \"listValue\": \"pc~laptop\",\n      \"resultCount\": 25,\n      \"itemsPerPage\": 10,\n      \"totalPages\": 3,\n      \"currentPage\": 1,\n      \"sorting\": \"PriceDesc\",\n      \"facets\": [\n        {\n          \"label\": \"Fiyat\",\n          \"field\": \"price\",\n          \"values\": [\"500\", \"2000\"]\n        }\n      ],\n      \"price\": 1299.99,\n      \"convertedPrice\": 1199.99,\n      \"currency\": \"USD\",\n      \"preferredCurrency\": \"EUR\",\n      \"clickPosition\": 1,\n      \"displayPosition\": 1,\n      \"quantity\": 2,\n      \"attributionWindow\": [\"session\", \"1\", \"7\", \"30\", \"90\"]\n    },\n    {\n      \"traceId\": \"search-session-def456\",\n      \"strategyId\":\"strategy-id-123\",\n      \"sessionId\":\"session-id-123\",\n      \"source\": \"search-listing\",\n      \"id\": \"product-002\",\n      \"groupCode\": \"mouse-group-1\",\n      \"query\": \"wireless mouse\",\n      \"resultCount\": 15,\n      \"itemsPerPage\": 10,\n      \"totalPages\": 2,\n      \"currentPage\": 1,\n      \"sorting\": \"MostPopularFirst\",\n      \"facets\": [\n        {\n          \"label\": \"Brand\",\n          \"field\": \"brand_en\",\n          \"values\": [\"Ltech\"]\n        }\n      ],\n      \"price\": 49.99,\n      \"convertedPrice\": 45.99,\n      \"currency\": \"USD\",\n      \"preferredCurrency\": \"EUR\",\n      \"clickPosition\": 2,\n      \"displayPosition\": 2,\n      \"quantity\": 1,\n      \"attributionWindow\": [\"session\", \"1\", \"7\", \"30\", \"90\"]\n    }\n  ],\n  \"eventType\": \"purchase\",\n  \"integrationType\": \"api\",\n  \"createdAt\": \"2025-11-25T10:50:00Z\"\n}'\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","events"],"host":["eurekaevent","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Source URL of the referring page.</p>\n","type":"text/plain"},"key":"referrer","value":"String"},{"disabled":true,"description":{"content":"<p>Campaign ID, provided in the Insider's InOne panel.</p>\n","type":"text/plain"},"key":"campId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Variation ID, provided in the Insider's InOne panel</p>\n","type":"text/plain"},"key":"variationId","value":"Integer"},{"disabled":true,"description":{"content":"<p>Required. Platform used by the user.</p>\n","type":"text/plain"},"key":"platform","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Unique identifier of the user.</p>\n","type":"text/plain"},"key":"userId","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Type of integration.</p>\n","type":"text/plain"},"key":"integrationType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Unique ID of the order with at least one product that received impression from the search event.</p>\n","type":"text/plain"},"key":"orderId","value":"String"},{"disabled":true,"description":{"content":"<p>Required. List of all product IDs that were paid for.</p>\n","type":"text/plain"},"key":"allPurchasedProducts","value":"List of string"},{"disabled":true,"description":{"content":"<p>Required. List of purchased products that received click from the search event.</p>\n","type":"text/plain"},"key":"products","value":"List of products"},{"disabled":true,"description":{"content":"<p>Required, equals=search. Type of event.</p>\n","type":"text/plain"},"key":"eventType","value":"String"},{"disabled":true,"description":{"content":"<p>Required. Time when the event is created.</p>\n","type":"text/plain"},"key":"createdAt","value":"String"}],"variable":[]}},"response":[],"_postman_id":"4cb9b0a0-c227-4981-aabc-a67b6b16e98b"}],"id":"c17ec092-0b9c-4733-bf88-4892e5c622ce","_postman_id":"c17ec092-0b9c-4733-bf88-4892e5c622ce","description":""},{"name":"Category Merchandising API","item":[{"name":"Manage product listing pages","id":"7043d4fd-c909-4fab-a4a7-ddad6098fb0b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://ineureka.api.useinsider.com/api/web/collections/{type}?cf={COLLECTION_FILTER}&p={PARTNER_ID}&l={LOCALE}&c={CURRENCY}","description":"<p>Eureka’s Category Merchandising API allows you to effectively curate and manage your product listing pages. Tailored for various list pages like categories, sales, new arrivals, and brands, enables you to pin, boost, bury, or hide specific products as needed. You can set the rules using a visual merchandising editor to customize content for specific categories. Once you apply the rules, you can build the listing pages by making an API call based on the type of listing page and its filter.</p>\n<p>The initial step involves sending your data in the correct format to Insider, typically handled through system rules defined during website mapping.</p>\n<p>Category Merchandising API responses are in JSON format, containing product matching criteria, configured merchandising content, and available facet options for further refinement.</p>\n<h3 id=\"requirements-for-category-merchandising-api\">Requirements for Category Merchandising API</h3>\n<ul>\n<li><p>For product details, Insider One <a href=\"https://academy.useinsider.com/docs/eureka-product-catalog-management\">product catalog integration methods</a> (XML, Catalog API, and Clickstream) should be created.</p>\n</li>\n<li><p>Data collection should be activated by the Insider One team.</p>\n</li>\n<li><p>Eureka should be activated by the Insider One team.</p>\n</li>\n<li><p>If you want to use dynamic filters (facets) and sortings in the category pages, you need to set these configurations via Eureka Settings in Insider One's InOne panel.</p>\n</li>\n</ul>\n<p><strong>Note</strong>: For requests where the total URL length exceeds 2,048 characters, a POST request must be sent to the base URL: <a href=\"https://ineureka.api.useinsider.com/api/web/collections\"><b>https://ineureka.api.useinsider.com/api/web/collections</b></a>. While the HTTP protocol itself does not define an explicit maximum URL length, practical limitations exist across browsers, web servers, proxies, and load balancers.<br />To prevent compatibility issues and request failures, we enforce the length threshold as a precautionary measure. Although GET requests may yield faster responses in some cases, it is important to transition to POST when the payload size approaches or exceeds approximately 2,000 characters.<br />This ensures compliance with common platform constraints and avoids potential truncation, rejection, or undefined behavior resulting from excessively long URLs.</p>\n<p>The only difference between <strong>GET</strong> and <strong>POST</strong> requests is that the values sent as URL parameters in <strong>GET</strong> requests must be sent as <strong>JSON</strong> body in <strong>POST</strong> requests. For example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"cf\": \"COLLECTION_FILTER\",\n  \"p\": \"PARTNER_ID\",\n  \"l\": \"LOCALE\",\n  \"c\": \"CURRENCY\",\n  \"sid\": \"STRATEGY_ID\"\n}\n\n</code></pre>\n<p>When the request is sent, an authentication exception is thrown for security reasons. Therefore, when sending the request, set the <strong>X-AUTH-TOKEN</strong> header to the token shared with you and send the request.</p>\n<h3 id=\"collection-types\">Collection Types</h3>\n<p>When retrieving products from the product catalog, three different collection types help organize and filter results based on specific criteria. These collection types are:</p>\n<h4 id=\"category-collection\">Category Collection</h4>\n<p>The <a href=\"https://academy.useinsider.com/docs/eureka-category-collection\">Category Collection</a> type allows the retrieval of all products in the catalog that belong to a specific category, helping narrow down their results based on product type. For example, to get all shoes, you can retrieve products under the \"Footwear\" category.</p>\n<h4 id=\"brand-collection\">Brand Collection</h4>\n<p>The <a href=\"https://academy.useinsider.com/docs/eureka-brand-collection\">Brand Collection</a> type allows you to retrieve all products from a specific brand in the catalog, helping users access products from their preferred brands easily. For example, if you want to get all Nike products, you can use this option to retrieve only items from the \"Nike\" brand.</p>\n<h4 id=\"all-products-collection\">All Products Collection</h4>\n<p>The <a href=\"https://academy.useinsider.com/docs/eureka-all-product-collection\">All Products Collection</a> type allows the retrieval of all products in the catalog without any restrictions, providing access to the entire product catalog. For example, if you want to see all products, you can use this option to retrieve all products in the catalog.</p>\n<p>Using these collection types, you can retrieve products efficiently based on your specific needs.</p>\n<h3 id=\"common-capabilities-for-all-types\">Common Capabilities for All Types</h3>\n<h4 id=\"sorting\">Sorting</h4>\n<p>The st parameter in the request can only have one value from the predefined sorting types. Using these types, the sorting algorithm for the listed products is selected. Depending on your data, the sorting types can be active or inactive. You can view these settings on the InOne panel.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sorting Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>st</td>\n<td>Relevancy</td>\n</tr>\n<tr>\n<td>st</td>\n<td>PriceAsc</td>\n</tr>\n<tr>\n<td>st</td>\n<td>PriceDesc</td>\n</tr>\n<tr>\n<td>st</td>\n<td>MostPopularFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>BestRatedFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>MostRatedFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>NewestFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>MostFavoriteFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>MostDiscountedFirst</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"filters\">Filters</h4>\n<p>You can filter listed products using field names in the filter settings defined in <a href=\"https://academy.useinsider.com/v1/docs/eureka-search-facets\">faceting</a> in Insider's InOne panel.</p>\n<h4 id=\"sample-faceting-regarding-the-filter-config\">Sample Faceting Regarding the Filter Config</h4>\n<p>Sample filter request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=category~Skin~Body Lotions&amp;a=price~5~10\n\n</code></pre>\n<p>As a result of this filter request, you can see the matched facets in the related property sections of items as below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"itemProperties\": {\n    \"item_card\": {\n      \"price\": {\n        \"EUR\": 7.75,\n        ...\n      },\n      \"category\": [\n        \"Skin\",\n        \"Body Lotions\",\n        ...\n      ],\n      \"in_stock\": 1,\n      ...\n    },\n    ...\n  },\n  ...\n}\n\n</code></pre>\n<p>The field values you can use for facet filtering are provided under data.aggregations in the result.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"name\": \"price\",\n    \"label\": \"Price\",\n    \"style\": \"Slider\",\n    \"items\": [\n      {\n        \"name\": \"0~5\",\n        \"min\": 0.0,\n        \"max\": 5.0\n      },\n      {\n        \"name\": \"5~10\",\n        \"min\": 5.0,\n        \"max\": 10.0\n      },\n      ...\n    ],\n    \"sequence\": 1,\n    \"itemOrderType\": \"KeyAsc\"\n  },\n  {\n    \"name\": \"category\",\n    \"label\": \"Category\",\n    \"style\": \"List\",\n    \"items\": [\n      {\n        \"name\": \"Skin\",\n        \"selected\": true,\n        \"documentCount\": 66\n      },\n      {\n        \"name\": \"Body Lotion\",\n        \"selected\": true,\n        \"documentCount\": 61\n      },\n      ...\n    ],\n    \"sequence\": 2,\n    \"itemOrderType\": \"CountDesc\"\n  },\n  {\n    \"name\": \"in_stock\",\n    \"label\": \"In Stock\",\n    \"style\": \"Checkboxes\",\n    \"items\": [\n      {\n        \"name\": \"1\",\n        \"selected\": false,\n        \"documentCount\": 12\n      },\n      ...\n    ],\n    \"sequence\": 3,\n    \"itemOrderType\": \"CountDesc\"\n  },\n  ...\n]\n\n</code></pre>\n<p>This table details the facet filter styles and their corresponding data types. Based on the specific filter style you want to implement, choose the appropriate data type.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Filter Style</th>\n<th>Data Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Price</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Rating</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Range</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Slider</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Checkboxes</td>\n<td>String</td>\n</tr>\n<tr>\n<td>List</td>\n<td>String</td>\n</tr>\n<tr>\n<td>Toggle</td>\n<td>Boolean</td>\n</tr>\n</tbody>\n</table>\n</div><p>For the filters with numeric data types, such as Slider style, there should be only two values: min and max.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">{field}~{minValue}~{maxValue}\n\n</code></pre>\n<h4 id=\"sample-filter-parameters\">Sample Filter Parameters</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=brand~Neki\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=category~Birds~Cats~Dogs\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=price~50~100\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=brand~Neki&amp;a=price~50~100\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"api-responses\">API Responses</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Definition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>status</td>\n<td>It is the field that shows the result of the search. This field can be:  <br /><em>- Success:</em> Category Merchandising API response is valid.  <br /><em>- Error:</em> Unexpected internal server errors.  <br /><em>- Invalid:</em> Eureka Category Merchandising API returns a Validation Exception. The request is invalid.  <br /><em>- BusinessException:</em> Eureka Category Merchandising API returns a Business Exception. Details are shared in <em>Validation Exceptions</em> section.</td>\n</tr>\n<tr>\n<td>data</td>\n<td>It is the object where items, sortings, aggregations, navigations, and noResultPageText are kept as a result of a given query.</td>\n</tr>\n<tr>\n<td>data.items</td>\n<td>This field holds the list of properties for the returned items.</td>\n</tr>\n<tr>\n<td>data.items.itemId</td>\n<td>It shows the item ID.  <br />* In case there are variants of the item, the ID refers to the item to be displayed in search results. The item details are kept under <em>data.items.itemProperties</em> in addition to that all the variants including the item displayed are also stored in <em>data.items.itemVariants</em></td>\n</tr>\n<tr>\n<td>data.items.itemProperties.item_card</td>\n<td>This field holds all of the fields such as name, discount, product_attributes (which includes a list of fields such as <em>flavor, color, etc.</em>).  <br />* In case there are price and original_price fields, they are the same unless there is a discount on this product. When there is a discount, price field is equal to discounted price.  <br />* These fields may vary depending on your account.</td>\n</tr>\n<tr>\n<td>data.items.itemVariants</td>\n<td>This field holds all of the variants of an item. The first element of the list is the item to be displayed in search results. The format of data.items.itemVariants items is the same as the <em>data.items.itemProperties.item_card</em>.  <br />* Variants are options of the same item that have different properties. For instance, yellow and red color options of the same t-shirt might be variants of the t-shirt.  <br />* Use of variants may be active or passive depending on your account.</td>\n</tr>\n<tr>\n<td>data.aggregations</td>\n<td>This field holds a list of different aggregations.</td>\n</tr>\n<tr>\n<td>data.aggregations.name</td>\n<td>This field holds the aggregation name.</td>\n</tr>\n<tr>\n<td>data.aggregations.label</td>\n<td>This field holds the aggregation label (which is for showing the name of the aggregation to the end user).</td>\n</tr>\n<tr>\n<td>data.aggregations.style</td>\n<td>This field holds the aggregation style. Possible values:  <br /><em>Price, Checkboxes, Toggle, Rating, Range, Slider, List</em></td>\n</tr>\n<tr>\n<td>data.aggregations.items</td>\n<td>This field holds a list of item fields for the specified aggregation.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.name</td>\n<td>This field holds the aggregation item name.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.label</td>\n<td>This field holds the aggregation item label.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.min</td>\n<td>This field holds the minimum value of the aggregation item if the aggregation style is numeric.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.max</td>\n<td>This field holds the maximum value of the aggregation item if the aggregation style is numeric.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.selected</td>\n<td>It is a boolean field that indicates whether the aggregation item is selected if the aggregation style is not numeric.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.documentCount</td>\n<td>This field holds the total number of documents of the aggregation item if the aggregation style is not numeric.</td>\n</tr>\n<tr>\n<td>data.aggregations.suffixUnit</td>\n<td>This field holds the suffix unit for the facet values as string. For instance, for <em>perfume_size</em> facets, <em>ml</em> is the suffixUnit (<em>50ml - 100ml</em>)</td>\n</tr>\n<tr>\n<td>data.aggregations.prefixUnit</td>\n<td>This field holds the prefix unit for the facet values as string.</td>\n</tr>\n<tr>\n<td>data.aggregations.sequence</td>\n<td>This field holds the sequence of the aggregation for showing the aggregations to the end-user in correct order.</td>\n</tr>\n<tr>\n<td>data.aggregations.itemOrderType</td>\n<td>This field holds the item order type of the aggregation. Possible values: <em>KeyAsc, KeyDesc, CountDesc, CountAsc, None</em></td>\n</tr>\n<tr>\n<td>data.navigation</td>\n<td>This dictionary shows information such as pagination and total item count.</td>\n</tr>\n<tr>\n<td>data.navigation.totalPages</td>\n<td>This field shows how many pages are returned for a given query.</td>\n</tr>\n<tr>\n<td>data.navigation.currentPage</td>\n<td>This field specifies which page the returned result is.</td>\n</tr>\n<tr>\n<td>data.navigation.totalItems</td>\n<td>This field shows how many items are returned for a given query.</td>\n</tr>\n<tr>\n<td>data.navigation.itemPerPage</td>\n<td>It is the field that shows how many items are returned on each page.</td>\n</tr>\n<tr>\n<td>data.noResultPageText</td>\n<td>If a query does not return any results, this field is used for the empty result page. <em>E.g. No Results found</em></td>\n</tr>\n<tr>\n<td>data.sortings</td>\n<td>It is the list where the details about sorting are kept.</td>\n</tr>\n<tr>\n<td>data.sortings.type</td>\n<td>It is the field where the sorting type is located. Possible sorting types: <em>Relevancy, PriceAsc, PriceDesc, MostPopularFirst, BestRatedFirst, MostRatedFirst,  <br />NewestFirst, MostFavoriteFirst, MostDiscountedFirst</em></td>\n</tr>\n<tr>\n<td>data.sortings.label</td>\n<td>It is the label of sorting which is displayed to the end user.</td>\n</tr>\n<tr>\n<td>data.sortings.selected</td>\n<td>It is a boolean field that indicates whether the relevant sorting is selected.</td>\n</tr>\n<tr>\n<td>data.defaultSortingType</td>\n<td>It is the field where the sorting type of the recommended items is located. It is null when there is no active sorting found.</td>\n</tr>\n<tr>\n<td>partnerResources</td>\n<td>It is the list of labels to be displayed to the end user. It provides localization flexibility based on the <a href=\"https://academy.useinsider.com/v1/docs/eureka-locale\">locale</a> parameter sent.  <br />*Partner resources can be set from the InOne panel.</td>\n</tr>\n<tr>\n<td>error</td>\n<td>When there is a business exception (501), this field is filled with code and message fields.</td>\n</tr>\n<tr>\n<td>validations</td>\n<td>When the request is incorrect (400 Bad Request), this field is filled with an array of type and message fields.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"200-success\">200 Success</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n  \"status\": \"Success\",\n  \"data\": {\n    \"items\": [...],\n    \"aggregations\": [...],\n    \"navigation\": {...},\n    \"noResultPageText\": \"...\",\n    \"sortings\": [...]\n  },\n  \"redirection\": null,\n  \"partnerResources\": {...},\n  \"error\": null,\n  \"validations\": null\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n  \"status\": \"Error\",\n  \"data\": null,\n  \"redirection\": null,\n  \"partnerResources\": null,\n  \"error\": {\n    \"code\": \"500 INTERNAL_SERVER_ERROR\",\n    \"message\": \"...\" \n  },\n  \"validations\": null\n}\n\n</code></pre>\n<h4 id=\"400-business-exception\">400 Business Exception</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n  \"status\": \"BusinessException\",\n  \"data\": null,\n  \"redirection\": null,\n  \"partnerResources\": null,\n  \"error\": {\n    \"code\": \"...\",\n    \"message\": \"...\" \n  },\n  \"validations\": null\n}\n\n</code></pre>\n<h4 id=\"400-validation-exception\">400 Validation Exception</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n  \"status\": \"Invalid\", \n  \"data\": null, \n  \"redirection\": null, \n  \"partnerResources\": null,\n  \"error\": null,\n  \"validations\": [\n    {\n      \"type\": \"...\",\n      \"message\": \"...\"\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"fail-records-messages\">Fail Records Messages</h3>\n<ul>\n<li><strong>Business Exceptions</strong></li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Definition</th>\n<th>HTTP Code</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>AggregationStyleNotFound</td>\n<td>Aggregation style must be provided in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationConfigNotFound</td>\n<td>Aggregation configs must be provided in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>SortingConfigNotFound</td>\n<td>Sorting configs must be provided in the partner config</td>\n<td>400</td>\n</tr>\n<tr>\n<td>SortingFieldNotFound</td>\n<td>Sorting field must be provided in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>InvalidPriceAggregationStyle</td>\n<td>Incorrect style for price aggregation is provided in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>PartnerConfigNotFound</td>\n<td>Partner config cannot be gathered from the cache.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationResultNotFound</td>\n<td>Unexpected aggregation results were received according to aggregation configs.</td>\n<td>400</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li><strong>Validation Exceptions</strong></li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Definition</th>\n<th>HTTP Code</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>PartnerIdNotFound</td>\n<td><strong>p</strong> parameter is not provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>LocaleNotFound</td>\n<td><strong>l</strong> parameter is not provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>LocaleInvalidFormat</td>\n<td>Wrong locale format is provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>CurrencyNotFound</td>\n<td><strong>c</strong> parameter is not provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>CurrencyInvalidFormat</td>\n<td>Wrong currency format is provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>CollectionFilterNotFound</td>\n<td>Collection filter <strong>cf</strong> is not provided</td>\n<td>400</td>\n</tr>\n<tr>\n<td>CollectionFilterInvalidFormat</td>\n<td>Collection filter format is invalid</td>\n<td>400</td>\n</tr>\n<tr>\n<td>InvalidCollectionFilter</td>\n<td>Collection filter must not be given with AllProducts Collection Type</td>\n<td>400</td>\n</tr>\n<tr>\n<td>CollectionInvalidLength</td>\n<td>Collection filter must contain number of characters between 2 and 280</td>\n<td>400</td>\n</tr>\n<tr>\n<td>PaginationFromInvalidValue</td>\n<td>Wrong pf value is provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>PaginationSizeInvalidValue</td>\n<td>Wrong ps value is provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationNameNotFound</td>\n<td>Aggregation name must be provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationItemsNotFound</td>\n<td>Aggregation items must be provided in the request</td>\n<td>400</td>\n</tr>\n<tr>\n<td>SortingTypeInvalid</td>\n<td>Sorting type is not valid</td>\n<td>400</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","web","collections","{type}"],"host":["ineureka","api","useinsider","com"],"query":[{"key":"cf","value":"{COLLECTION_FILTER}"},{"key":"p","value":"{PARTNER_ID}"},{"key":"l","value":"{LOCALE}"},{"key":"c","value":"{CURRENCY}"}],"variable":[]}},"response":[],"_postman_id":"7043d4fd-c909-4fab-a4a7-ddad6098fb0b"},{"name":"Category Collection","id":"bcb1420f-b28e-4b9f-bbdb-7f6a0025eb4a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://ineureka.api.useinsider.com/api/web/collections","description":"<p>The Category Collection type allows the retrieval of all products belonging to a specific category in the product catalog, helping to narrow down results based on product type. For example, if you want to get all shoes, you can retrieve products under the \"Footwear\" category.</p>\n<h3 id=\"structures\">Structures</h3>\n<h4 id=\"flat-structure\">Flat Structure</h4>\n<p>Some catalogs use a non-hierarchical or flat category structure where categories are not nested (e.g., Shoes, Footwear instead of Women &gt; Shoes &gt; Sneakers). In this case, you can retrieve products within singular categories like Shoes.</p>\n<h5 id=\"multiple-flat-category-retrieval\">Multiple Flat Category Retrieval</h5>\n<p>When multiple singular categories are used in a flat category search, only products belonging to both categories are returned. These categories are connected using an \"AND\" condition, meaning that a product must be classified under both to be included. For example, searching for Shoes and Footwear will return only products categorized as both Shoes and Footwear.</p>\n<p>The cf parameter should be formatted the same way as in hierarchical structures, such as shoes or shoes~footwear</p>\n<p>Merchandising rules cannot be applied to <strong>multiple flat category</strong> retrievals.</p>\n<h5 id=\"hierarchical-structure\">Hierarchical Structure</h5>\n<p>Some catalogs use a hierarchical category structure, where categories follow a parent-child relationship (e.g., Women &gt; Shoes &gt; Sneakers). In this case, searches should use the full structure to ensure accurate results. For example, to retrieve products under Women &gt; Shoes, use Women~Shoes.</p>\n<p>You can select Flat or Hierarchical structure from <strong>Catalog Settings</strong> &gt; <strong>Category Type</strong> page in the InOne panel.</p>\n<p>To use the Category Collection type, the <strong>category</strong> attribute in the product catalog must be properly populated to ensure product retrieval.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The type path variable value must exactly match the example values provided in the request parameter table. The cf parameter value must exactly match the values defined in the product catalog.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>Path variable that specifies the desired product listing type</td>\n<td>String</td>\n<td>Yes</td>\n<td>\"Category\"</td>\n</tr>\n<tr>\n<td>cf</td>\n<td>Allows filtering of products within the specified listing type</td>\n<td>String</td>\n<td>Yes</td>\n<td>cf=Women~Shoes~Trainers</td>\n</tr>\n<tr>\n<td>p</td>\n<td>Partner ID. Navigate to <strong>Inone Settings</strong> &gt; <a href=\"https://academy.insiderone.com/docs/inone-account-settings#partner-name-and-id\"><b>Account Settings</b></a> to copy your Partner ID.</td>\n<td>String</td>\n<td>Yes</td>\n<td></td>\n</tr>\n<tr>\n<td>l</td>\n<td>Locale is required to get your products in the current language of the website. E.g. en_US, en_GB</td>\n<td>String</td>\n<td>Yes</td>\n<td>l=en_US</td>\n</tr>\n<tr>\n<td>c</td>\n<td>Products will be displayed in the given currency (The current currency selected by the end-user on your website). E.g., USD,  AUD</td>\n<td>String</td>\n<td>Yes</td>\n<td>c=USD</td>\n</tr>\n<tr>\n<td>sid</td>\n<td>Strategy ID. The unified identifier for a merchandising strategy. When provided, Merchandising actions such as boosting, burying, pinning, and hiding products are applied to search results based on the rules defined within that strategy.</td>\n<td>String</td>\n<td>No</td>\n<td>sid=123456</td>\n</tr>\n<tr>\n<td>a</td>\n<td>Filter the products with the following pattern: a={field}~{value}</td>\n<td>List of String</td>\n<td>No</td>\n<td>a=size~38~39</td>\n</tr>\n<tr>\n<td>pf</td>\n<td>Index indicating from which order the products will start to be listed. It is used for pagination. The default value is pf=0.</td>\n<td>Integer</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>ps</td>\n<td>Number of products that will be returned in the response. The default value is ps=6.</td>\n<td>Integer</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>st</td>\n<td>Sorting type of the listed products. It only takes one of the predefined sorting types. The default value is st=Relevancy.</td>\n<td>String</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>oi</td>\n<td>The listed products will only be displayed as item IDs. The default value is oi=False</td>\n<td>Boolean</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>oc</td>\n<td>The listed products will be displayed without their variants. The default value is false.</td>\n<td>Boolean</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>u</td>\n<td>User ID can be found in local storage by the key name spUID. spUID, which is a stringified object and contains data and expired properties.</td>\n<td>String</td>\n<td>No</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p>The <strong>sid</strong> (Strategy ID) parameter enables strategy-based merchandising. When a valid strategy ID is provided, the API applies the merchandising rules associated with that strategy to the search results. This includes product-level actions (boost, high-boost, bury, high-bury, pin, hide) and attribute-level actions (boost attribute, bury attribute, hide by attribute).<br />**- If sid is omitted, no strategy-based merchandising rules are applied to the search results.<br />**- Additionally, if Eureka Strategies are enabled for your account, refer to the image below showing where to locate the <strong>sid</strong>: </p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/image-1775147786886.png\" />","urlObject":{"protocol":"https","path":["api","web","collections"],"host":["ineureka","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"bcb1420f-b28e-4b9f-bbdb-7f6a0025eb4a"},{"name":"Brand Collection","id":"959cfe48-2e5b-405a-bb4e-7a043ae31053","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://ineureka.api.useinsider.com/api/web/collections","description":"<p>The Brand Collection enables searching for products under a specific brand name.</p>\n<p>The Brand Collection accepts only singular values for the cf parameter, meaning searches can be performed using only one brand value at a time.</p>\n<p>To use the Brand Collection type, ensure that the <strong>brand</strong> attribute in the product catalog is properly populated for accurate product retrieval.</p>\n<p>Merchandising rules cannot be applied to the Brand Collection.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The type path variable value must exactly match the example values provided in the request parameter table.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>Path variable that specifies the desired product listing type</td>\n<td>String</td>\n<td>Yes</td>\n<td>\"Category\"</td>\n</tr>\n<tr>\n<td>cf</td>\n<td>Allows filtering of products within the specified listing type</td>\n<td>String</td>\n<td>Yes</td>\n<td>cf=Women~Shoes~Trainers</td>\n</tr>\n<tr>\n<td>p</td>\n<td>Partner ID. Navigate to InOne &gt; Inone Settings &gt; <a href=\"https://academy.useinsider.com/docs/inone-account-settings#partner-name-and-id\">Account Preferences</a> to copy your Partner ID.</td>\n<td>String</td>\n<td>Yes</td>\n<td></td>\n</tr>\n<tr>\n<td>l</td>\n<td>Locale is required to get your products in the current language of the website. E.g. en_US, en_GB</td>\n<td>String</td>\n<td>Yes</td>\n<td>l=en_US</td>\n</tr>\n<tr>\n<td>c</td>\n<td>Products will be displayed in the given currency (The current currency selected by the end-user on your website). E.g. USD, AUD</td>\n<td>String</td>\n<td>Yes</td>\n<td>c=USD</td>\n</tr>\n<tr>\n<td>a</td>\n<td>Filter the products with the following pattern: a={field}~{value}</td>\n<td>List of String</td>\n<td>No</td>\n<td>a=size~38~39</td>\n</tr>\n<tr>\n<td>pf</td>\n<td>Index indicating from which order the products will start to be listed. It is used for pagination. The default value is pf=0.</td>\n<td>Integer</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>ps</td>\n<td>Number of products that will be returned in the response. The default value is ps=6.</td>\n<td>Integer</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>st</td>\n<td>Sorting type of the listed products. It only takes one of the predefined sorting types. The default value is st=Relevancy.</td>\n<td>String</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>oi</td>\n<td>The listed products will only be displayed as item IDs. The default value is oi=False</td>\n<td>Boolean</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>oc</td>\n<td>The listed products will be displayed without their variants. The default value is false.</td>\n<td>Boolean</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>u</td>\n<td>User ID can be found on local storage by the key name spUID. spUID, which is a stringified object and contains data and expired properties.</td>\n<td>String</td>\n<td>No</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","web","collections"],"host":["ineureka","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"959cfe48-2e5b-405a-bb4e-7a043ae31053"},{"name":"All Products Collection","id":"1e86c1b7-3754-4206-9258-b5762bd65923","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"","description":"<p>The All Product Collection type provides a comprehensive search across all products in the catalog. It’s ideal for retrieving all products.</p>\n<p>Unlike Category and Brand collections, the All Product collection does not require or use the cf parameter.<br />If the cf parameter is included in a request, the API will return a validation error, preventing the request from being processed.</p>\n<p>Merchandising rules cannot be applied to the All Product Collection.</p>\n<h4 id=\"validation-exception\">Validation Exception</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Type</th>\n<th>Definition</th>\n<th>HTTP Code</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>InvalidCollectionFilter</td>\n<td>cf parameter must not be provided in the request.</td>\n<td>400</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The type path variable value must exactly match the example values provided in the request parameter table.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>Path variable that specifies the desired product listing type</td>\n<td>String</td>\n<td>Yes</td>\n<td>\"Category\"</td>\n</tr>\n<tr>\n<td>p</td>\n<td>Partner ID. Navigate to InOne &gt; Inone Settings &gt; <a href=\"https://academy.useinsider.com/docs/inone-account-settings#partner-name-and-id\">Account Preferences</a> to copy your Partner ID.</td>\n<td>String</td>\n<td>Yes</td>\n<td></td>\n</tr>\n<tr>\n<td>l</td>\n<td>Locale is required to get your products in the current language of the website. E.g. en_US, en_GB</td>\n<td>String</td>\n<td>Yes</td>\n<td>l=en_US</td>\n</tr>\n<tr>\n<td>c</td>\n<td>Products will be displayed in the given currency (The current currency selected by the end-user on your website). E.g. USD,  AUD</td>\n<td>String</td>\n<td>Yes</td>\n<td>c=USD</td>\n</tr>\n<tr>\n<td>a</td>\n<td>Filter the products with the following pattern: a={field}~{value}</td>\n<td>List of String</td>\n<td>No</td>\n<td>a=size~38~39</td>\n</tr>\n<tr>\n<td>pf</td>\n<td>Index indicating from which order the products will start to be listed. It is used for pagination. The default value is pf=0.</td>\n<td>Integer</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>ps</td>\n<td>Number of products that will be returned in the response. The default value is ps=6.</td>\n<td>Integer</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>st</td>\n<td>Sorting type of the listed products. It only takes one of the predefined sorting types. The default value is st=Relevancy.</td>\n<td>String</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>oi</td>\n<td>The listed products will only be displayed as item IDs. The default value is oi=False</td>\n<td>Boolean</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>oc</td>\n<td>The listed products will be displayed without their variants. The default value is false.</td>\n<td>Boolean</td>\n<td>No</td>\n<td></td>\n</tr>\n<tr>\n<td>u</td>\n<td>User ID can be found on local storage by the key name spUID. spUID, which is a stringified object and contains data and expired properties.</td>\n<td>String</td>\n<td>No</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"query":[],"variable":[]}},"response":[],"_postman_id":"1e86c1b7-3754-4206-9258-b5762bd65923"}],"id":"66bdf65a-4b8a-4bdd-8c3c-5a8ea584ee22","_postman_id":"66bdf65a-4b8a-4bdd-8c3c-5a8ea584ee22","description":""},{"name":"Get search results","id":"cbbec6de-4785-436d-89f8-b4c14074da58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://ineureka.api.useinsider.com/api/web/search","description":"<p>Eureka’s API (Search API) lets you quickly and smoothly implement our search engine within your website(s) or mobile application(s). Insider's powerful search engine powers millions of queries every month and can deliver relevant results in under 150-400 ms, regardless of the location.</p>\n<p>The first step is to send your data in the correct format to Insider. Eureka will return the results in JSON. The response will include products matching the search criteria, available facet options to refine the results further, and configured merchandising content.</p>\n<h5 id=\"requirements-for-search-api\">Requirements for Search API</h5>\n<ul>\n<li><p>The Insider team should activate Eureka.</p>\n</li>\n<li><p>Product Catalog integration methods (<a href=\"https://portal.document360.io/v1/docs/xml-based-product-catalog-integration-methodology\">XML</a>, <a href=\"https://portal.document360.io/v1/docs/product-catalog-introduction\">Catalog API</a>, and <a href=\"https://portal.document360.io/v1/docs/crowd-based-product-feed-collection-clickstream\">Clickstream</a>) should be created for product details.</p>\n</li>\n<li><p>Eureka settings, such as facets, sorting options, synonyms, URL redirections, etc., should be defined on the Insider's InOne panel.</p>\n</li>\n</ul>\n<h5 id=\"endpoints\">Endpoints</h5>\n<p>For requests with a total length, which is the length of the entire URL, <strong>exceeding 2048 characters</strong>, a <strong>POST</strong> request must be sent to the base URL (<a href=\"https://ineureka.api.useinsider.com/api/web/search\">https://ineureka.api.useinsider.com/api/web/search</a>).</p>\n<p>Although the HTTP protocol specification does not specify a maximum length, web browsers and server software impose practical limits. We limit length as a precaution to meet these limits and avoid problems. <strong>GET</strong> requests may return faster responses, but we highly suggest you consider this when the payload length increases to 2000+ characters.</p>\n<p>The <strong>only difference</strong> between <strong>GET</strong> and <strong>POST</strong> requests is that the values sent as URL parameters in GET requests must be sent as JSON body in POST requests, as you can see below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"q\": \"SEARCH_QUERY\",\n  \"p\": \"PARTNER_ID\",\n  \"l\": \"LOCALE\",\n  \"c\": \"CURRENCY\"\n}\n\n</code></pre>\n<p>Bear in mind that when the request is sent, an authentication exception is thrown for security reasons. In order to avoid this, you need to set the <strong>X-AUTH-TOKEN</strong> field in the header with <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens\">the token</a> while sending the request.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>q</td>\n<td>Query String that will be searched</td>\n<td>String</td>\n<td>Yes</td>\n<td>q=sneakers</td>\n</tr>\n<tr>\n<td>p</td>\n<td>This is your partner ID. To copy your partner ID, navigate to <strong>InOne</strong> &gt; <strong>Inone Settings</strong> &gt; <a href=\"https://academy.useinsider.com/docs/account-preferences\"><b>Account Settings</b></a>.</td>\n<td>String</td>\n<td>Yes</td>\n<td>p=10009999</td>\n</tr>\n<tr>\n<td>l</td>\n<td>Locale is required to receive your products on the website in the current language. Depending on this, product data will be gathered, and the settings will be applied.</td>\n<td>String</td>\n<td>Yes</td>\n<td>l=en_US</td>\n</tr>\n<tr>\n<td>c</td>\n<td>The searched products will be displayed in the given currency, as written in the catalog(the current currency the end user selects on your website).</td>\n<td>String</td>\n<td>Yes</td>\n<td>c=USD</td>\n</tr>\n<tr>\n<td>sid</td>\n<td>Strategy ID. The unified identifier for a merchandising strategy. When provided, Merchandising actions such as boosting, burying, pinning, and hiding products are applied to search results based on the rules defined within that strategy.</td>\n<td>String</td>\n<td>No</td>\n<td>sid=123456</td>\n</tr>\n<tr>\n<td>ps</td>\n<td>Page size. The number of products will be displayed on the search results page. For example, if the phone is searched with ps=6, the API will bring the most relevant 6 phones to the current page. The default value is ps=6.</td>\n<td>Integer</td>\n<td>No</td>\n<td>ps=6</td>\n</tr>\n<tr>\n<td>pf</td>\n<td>Page from. Index where the searched products will start in the response. It is used for pagination. For example, if \"phone\" is searched and the second page is clicked, the request must be sent with pf=6 if ps is set as 6. Results from the 6th product will be displayed. The default value is pf=0.</td>\n<td>Integer</td>\n<td>No</td>\n<td>pf=12</td>\n</tr>\n<tr>\n<td>a</td>\n<td>Filter the products with the following pattern: a={field}~{value}. It is applied when the end-user selects a filter from the facet section.</td>\n<td>List of String</td>\n<td>No</td>\n<td>a=size~38~39</td>\n</tr>\n<tr>\n<td>st</td>\n<td>Sorting type of the searched products. It only takes one of the predefined sorting types. The default value is relevancy.</td>\n<td>String</td>\n<td>No</td>\n<td>st=Relevancy</td>\n</tr>\n<tr>\n<td>u</td>\n<td>The User ID. It can be found in local storage under the key name <em>spUID</em>. This key stores a stringified object containing <em>data</em> (the User ID) and <em>expiration</em> (the expiration timestamp). The User ID or Unique User ID must be sent if the personalized search is enabled.</td>\n<td>String</td>\n<td>No</td>\n<td>u=15ca72d9c3.61d3</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>The Unique User ID. You define and manage the unique user ID. If <em>u</em> is not provided, the <em>uuid</em> must be sent to enable personalized search results. If both <em>uuid</em> and <em>u</em> parameters are provided, the <em>u</em> parameter takes priority.</td>\n<td>String</td>\n<td>No</td>\n<td>uuid=26522777</td>\n</tr>\n<tr>\n<td>oi</td>\n<td>The searched products will only be displayed as item IDs. The default value is false.</td>\n<td>Boolean</td>\n<td>No</td>\n<td>oi=False</td>\n</tr>\n<tr>\n<td>qs</td>\n<td>Applied strategies of the search query. It only takes an encoded string auto-generated by the first query in the response.</td>\n<td>String</td>\n<td>No</td>\n<td>qs=UCxQUA==</td>\n</tr>\n</tbody>\n</table>\n</div><p>The query <strong>q</strong> parameter should contain at least 2 and 280 characters. Otherwise, a validation exception will be thrown.</p>\n<p>The <strong>qs</strong> parameter should not be included in the initial request made by the end user for a query. You can find it in the response body after the first result returns. However, it needs to be added in subsequent requests when applying the facet filter for the same query. Otherwise, the request is accepted as a new query, and the search results may differ.</p>\n<p>The <strong>sid</strong> (Strategy ID) parameter enables strategy-based merchandising. When a valid strategy ID is provided, the API applies the merchandising rules associated with that strategy to the search results. This includes product-level actions (boost, high-boost, bury, high-bury, pin, hide) and attribute-level actions (boost attribute, bury attribute, hide by attribute).<br />**- If sid is omitted, no strategy-based merchandising rules are applied to the search results.<br />**- Additionally, if Eureka Strategies are enabled for your account, refer to the image below showing where to locate the <strong>sid</strong>: </p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/image-1775146935702.png\" />\n\n<h3 id=\"sorting\">Sorting</h3>\n<p>The <strong>st</strong> parameter in the request can only have one value from the predefined sorting types. Using these types, the sorting algorithm for the searched products is selected. Depending on your data, the sorting types can be active or inactive, you can view these settings on the InOne panel.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Sorting Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>st</td>\n<td>Relevancy</td>\n</tr>\n<tr>\n<td>st</td>\n<td>PriceAsc</td>\n</tr>\n<tr>\n<td>st</td>\n<td>PriceDesc</td>\n</tr>\n<tr>\n<td>st</td>\n<td>MostPopularFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>BestRatedFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>MostRatedFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>NewestFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>MostFavoriteFirst</td>\n</tr>\n<tr>\n<td>st</td>\n<td>MostDiscountedFirst</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"filters\">Filters</h3>\n<p>Search results can be filtered using fields in filter settings defined in <a href=\"https://academy.useinsider.com/v1/docs/eureka-search-facets\">faceting</a> on the Insider's InOne panel.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=category~Skin~Body Lotions&amp;a=price~5~10\n\n</code></pre>\n<p>In the result of this filter request, you can see the matched facets in the related result section as below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"itemProperties\": {\n    \"item_card\": {\n      \"price\": {\n        \"EUR\": 7.75,\n        ...\n      },\n      \"category\": [\n        \"Skin\",\n        \"Body Lotions\",\n        ...\n      ],\n      \"in_stock\": 1,\n      ...\n    },\n    ...\n  },\n  ...\n}\n\n</code></pre>\n<p>The field values that you can use for facet filtering is provided under <strong>data.aggregations</strong> in the result.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"name\": \"price\",\n    \"label\": \"Price\",\n    \"style\": \"Slider\",\n    \"items\": [\n      {\n        \"name\": \"0~5\",\n        \"min\": 0.0,\n        \"max\": 5.0\n      },\n      {\n        \"name\": \"5~10\",\n        \"min\": 5.0,\n        \"max\": 10.0\n      },\n      ...\n    ],\n    \"sequence\": 1,\n    \"itemOrderType\": \"KeyAsc\"\n  },\n  {\n    \"name\": \"category\",\n    \"label\": \"Category\",\n    \"style\": \"List\",\n    \"items\": [\n      {\n        \"name\": \"Skin\",\n        \"selected\": true,\n        \"documentCount\": 66\n      },\n      {\n        \"name\": \"Body Lotion\",\n        \"selected\": true,\n        \"documentCount\": 61\n      },\n      ...\n    ],\n    \"sequence\": 2,\n    \"itemOrderType\": \"CountDesc\"\n  },\n  {\n    \"name\": \"in_stock\",\n    \"label\": \"In Stock\",\n    \"style\": \"Checkboxes\",\n    \"items\": [\n      {\n        \"name\": \"1\",\n        \"selected\": false,\n        \"documentCount\": 12\n      },\n      ...\n    ],\n    \"sequence\": 3,\n    \"itemOrderType\": \"CountDesc\"\n  },\n  ...\n]\n\n</code></pre>\n<p><strong>\"a\"</strong> parameter should be passed to the request as a query string when the request method is GET, or it should be passed as a list of strings when the request method is POST. The \"<strong>a\"</strong> can take multiple fields and each must be stated separately. Also, the field can take multiple values separated by a tilda (~). Field values should be different and if there is more than one value, they should be written by separating them according to the filter pattern.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">?a={field}~{value}&amp;a={field}~{value}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">{\"a\": [\"{field}~{value}\", \"{field}~{value}\"]}\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Filter Style</th>\n<th>Data Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Price</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Rating</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Range</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Slider</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Checkboxes</td>\n<td>String</td>\n</tr>\n<tr>\n<td>List</td>\n<td>String</td>\n</tr>\n<tr>\n<td>Toggle</td>\n<td>Boolean</td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Filter Style</th>\n<th>Data Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Price</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Rating</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Range</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Slider</td>\n<td>Numeric</td>\n</tr>\n<tr>\n<td>Checkboxes</td>\n<td>String</td>\n</tr>\n<tr>\n<td>List</td>\n<td>String</td>\n</tr>\n<tr>\n<td>Toggle</td>\n<td>Boolean</td>\n</tr>\n</tbody>\n</table>\n</div><p>For the filters with numeric data type such as Slider style, there should be only two values <strong>min</strong> and <strong>max</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">{field}~{minValue}~{maxValue}\n\n</code></pre>\n<h4 id=\"sample-filter-parameters\">Sample Filter Parameters</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=brand~Mybrand\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=category~Birds~Cats~Dogs\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=price~50~100\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-markup\">&amp;a=brand~Mybrand&amp;a=price~50~100\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"api-responses\">API Responses</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Definition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>status</td>\n<td>It is the field that shows the result of the search. This field can be:  <br /><em>- Success:</em> Search API response is valid.  <br /><em>- SuccessFallback:</em> If Search API returns an empty item list, Eureka Search API - sends a request to Recommendation API and returns the items.  <br /><em>- Error:</em> Unexpected internal server errors.  <br /><em>- Invalid:</em> Eureka Search API returns a Validation Exception. The request is invalid.  <br /><em>- BusinessException:</em> Eureka Search API returns a Business Exception. Details are shared in <em>Validation Exceptions</em> section.</td>\n</tr>\n<tr>\n<td>data</td>\n<td>It is the object where items, sortings, aggregations, navigations, and noResultPageText are kept as a result of a given query.</td>\n</tr>\n<tr>\n<td>data.items</td>\n<td>This field holds the list of properties for the returned items.</td>\n</tr>\n<tr>\n<td>data.items.itemId</td>\n<td>It shows the item ID.  <br />* In the case of item variants, the ID refers to the item to be displayed in search results. The item details are kept under <em>data.items.itemProperties</em> in addition to that, all the variants, including the item displayed, are also stored in <em>data.items.itemVariants</em></td>\n</tr>\n<tr>\n<td>data.items.itemProperties.item_card</td>\n<td>This field holds all of the fields such as original_price, product_attributes (includes list of fields such as review_count, product_brand etc.).  <br />* It includes <em>the price</em> and <em>original_price</em> fields. If this product does not have a discount, these two fields are the same. However, if there is a discount, the price field is equal to the discounted price.  <br />* These fields might vary depending on your account.</td>\n</tr>\n<tr>\n<td>data.items.itemVariants</td>\n<td>This field holds all of the variants of an item. The first element of the list is the item to be displayed in search results. The format of data.items.itemVariants items is the same as the <em>data.items.itemProperties.item_card</em>.  <br />* Variants are options of the same item that have different properties. For instance, yellow and red color options of the same t-shirt might be variants of the t-shirt.  <br />* Use of variants may be active or passive, depending on your account.</td>\n</tr>\n<tr>\n<td>data.aggregations</td>\n<td>This field holds a list of different aggregations.</td>\n</tr>\n<tr>\n<td>data.aggregations.name</td>\n<td>This field holds the aggregation name.</td>\n</tr>\n<tr>\n<td>data.aggregations.label</td>\n<td>This field holds the aggregation label (which shows the aggregation's name to the end user).</td>\n</tr>\n<tr>\n<td>data.aggregations.style</td>\n<td>This field holds the aggregation style. Possible values:  <br /><em>Checkboxes, Toggle, Rating, Range, Slider, List, None</em></td>\n</tr>\n<tr>\n<td>data.aggregations.items</td>\n<td>This field holds a list of item fields for the specified aggregation.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.name</td>\n<td>This field holds the aggregation item name.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.label</td>\n<td>This field holds the aggregation item label.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.min</td>\n<td>This field holds the minimum value of the aggregation item.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.max</td>\n<td>This field holds the maximum value of the aggregation item.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.selected</td>\n<td>It is a boolean field that indicates whether the aggregation item is selected.</td>\n</tr>\n<tr>\n<td>data.aggregations.items.documentCount</td>\n<td>This field holds the total number of documents of the aggregation item.</td>\n</tr>\n<tr>\n<td>data.aggregations.suffixUnit</td>\n<td>This field holds the suffix unit for the facet values as a string. For instance, for <em>perfume_size</em> facets, <em>ml</em> is the suffixUnit (<em>50ml - 100ml</em>)</td>\n</tr>\n<tr>\n<td>data.aggregations.prefixUnit</td>\n<td>This field holds the prefix unit for the facet values as a string.</td>\n</tr>\n<tr>\n<td>data.aggregations.sequence</td>\n<td>This field holds the aggregation sequence to show the aggregations to the end-user in the correct order.</td>\n</tr>\n<tr>\n<td>data.aggregations.itemOrderType</td>\n<td>This field holds the item order type of the aggregation. Possible values: <em>KeyAsc, KeyDesc, CountDesc, CountAsc, None</em></td>\n</tr>\n<tr>\n<td>data.navigation</td>\n<td>This dictionary shows information such as pagination and total item count.</td>\n</tr>\n<tr>\n<td>data.navigation.totalPages</td>\n<td>This field shows how many pages are returned for a given query.</td>\n</tr>\n<tr>\n<td>data.navigation.currentPage</td>\n<td>This field specifies which page the returned result is.</td>\n</tr>\n<tr>\n<td>data.navigation.totalItems</td>\n<td>This field shows how many items are returned for a given query.</td>\n</tr>\n<tr>\n<td>data.navigation.itemPerPage</td>\n<td>It is the field that shows how many items are on a page.</td>\n</tr>\n<tr>\n<td>data.noResultPageText</td>\n<td>If a query does not return any results, this field is used for the empty result page. <em>E.g., No Results</em></td>\n</tr>\n<tr>\n<td>data.sortings</td>\n<td>It is the list where the details about sorting are kept.</td>\n</tr>\n<tr>\n<td>data.sortings.type</td>\n<td>It is the field where the sorting type is located. Possible sorting types: <em>Relevancy, PriceAsc, PriceDesc, MostPopularFirst, BestRatedFirst, MostRatedFirst,  <br />NewestFirst, MostFavoriteFirst, MostDiscountedFirst</em></td>\n</tr>\n<tr>\n<td>data.sortings.label</td>\n<td>It is the sorting label that is displayed to the end user.</td>\n</tr>\n<tr>\n<td>data.sortings.selected</td>\n<td>It is a boolean field that indicates whether the relevant sorting is selected.</td>\n</tr>\n<tr>\n<td>data.appliedSearchStrategy</td>\n<td>This field holds the encoded string of applied search strategies.</td>\n</tr>\n<tr>\n<td>data.brands</td>\n<td>This field holds the list of recommended brands for the given user, if there are any.  <br />*This field is only available when the response status is <em>SuccessFallback.</em></td>\n</tr>\n<tr>\n<td>data.categories</td>\n<td>This field holds the list of recommended categories for the given user if there are any.  <br />*This field is only available when the response status is <em>SuccessFallback.</em></td>\n</tr>\n<tr>\n<td>data.defaultSortingType</td>\n<td>It is the field where the sorting type of the recommended items is located. It is null when no active sorting is found.</td>\n</tr>\n<tr>\n<td>redirection</td>\n<td>Redirections can be set from the InOne panel. If the given query is matched with a redirection rule, this field shows the details.</td>\n</tr>\n<tr>\n<td>redirection.redirectTo</td>\n<td>This field holds the URL for the redirection rule.</td>\n</tr>\n<tr>\n<td>redirection.redirectionText</td>\n<td>This field holds the redirection text for the redirection banner.</td>\n</tr>\n<tr>\n<td>error</td>\n<td>When there is a business exception (501), this field is filled with code and message fields.</td>\n</tr>\n<tr>\n<td>validations</td>\n<td>When the request is incorrect (400 Bad Request), this field is filled with an array of type and message fields.</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"200-search\">200 SEARCH</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n\"status\": \"Success\",\n \"data\": {\n\"items\": [ … ],\n\"aggregations\": [ … ],\n\"navigation\": { … },\n\"noResultPageText\": “No Result”,\n\"sortings\": [ … ]\n},\n\"redirection\": null,\n\"error\": null,\n\"validations\": null \n}\n\n</code></pre>\n<h5 id=\"200-recommendation\">200 RECOMMENDATION</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"SuccessFallback\",\n  \"data\": {\n    \"items\": [...],\n    \"brands\": [...],\n    \"categories\": [...],\n    \"noResultPageText\": \"...\",\n    \"defaultSortingType\": null\n  },\n  \"redirection\": null,\n  \"partnerResources\": {...},\n  \"error\": null,\n  \"validations\": null,\n  \"appliedSearchStrategy\": \"...\"\n}\n\n</code></pre>\n<h5 id=\"400-validation-exception\"><strong>400 VALIDATION EXCEPTION</strong></h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"Invalid\",\n  \"data\": null,\n  \"redirection\": null,\n  \"partnerResources\": null,\n  \"error\": null,\n  \"validations\": [\n    {\n      \"type\": \"...\",\n      \"message\": \"...\"\n    }\n  ],\n  \"appliedSearchStrategy\": null\n}\n\n</code></pre>\n<h5 id=\"500-internal-server-error\">500 INTERNAL SERVER ERROR</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"Error\",\n  \"data\": null,\n  \"redirection\": null,\n  \"partnerResources\": null,\n  \"error\": {\n    \"code\": \"500 INTERNAL_SERVER_ERROR\",\n    \"message\": \"...\"\n  },\n  \"validations\": null,\n  \"appliedSearchStrategy\": null\n}\n\n</code></pre>\n<h5 id=\"400-business-exception\">400 BUSINESS EXCEPTION</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"BusinessException\",\n  \"data\": null,\n  \"redirection\": null,\n  \"partnerResources\": null,\n  \"error\": {\n    \"code\": \"...\",\n    \"message\": \"...\"\n  },\n  \"validations\": null,\n  \"appliedSearchStrategy\": null\n}\n\n</code></pre>\n<h4 id=\"fail-records-messages\">Fail Records Messages</h4>\n<ul>\n<li><strong>Business Exceptions</strong></li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Definition</th>\n<th>HTTP Code</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>AggregationStyleNotFound</td>\n<td>Aggregation style must be provided in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationConfigNotFound</td>\n<td>Aggregation configs must be provided in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>SortingConfigNotFound</td>\n<td>Sorting configs must be provided in the partner config</td>\n<td>400</td>\n</tr>\n<tr>\n<td>SortingFieldNotFound</td>\n<td>Sorting field must be provided in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>UnsuccessfulSearchResult</td>\n<td>The search result cannot be collected as expected.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>InvalidPriceAggregationStyle</td>\n<td>Incorrect style for price aggregation is provided in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>PartnerConfigNotFound</td>\n<td>Partner config cannot be gathered from the cache.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationResultNotFound</td>\n<td>Unexpected aggregation results were received according to aggregation configs.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>RecommendationApiBrandFieldNameNotFound</td>\n<td>Name for the brand field which is used by Recommendation API cannot be found in the partner config.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>LocalizationLanguageSettingsNotFound</td>\n<td>Localization language settings is not defined.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>QueryStrategyIsNotValid</td>\n<td>Query strategy parameter passed is not valid, must be taken from the initial response.</td>\n<td>400</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li><strong>Validation Exceptions</strong></li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Definition</th>\n<th>HTTP Code</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>PartnerIdNotFound</td>\n<td>p parameter is not provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>LocaleNotFound</td>\n<td>l parameter is not provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>LocaleInvalidFormat</td>\n<td>Wrong locale format is provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>CurrencyNotFound</td>\n<td>c parameter is not provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>CurrencyInvalidFormat</td>\n<td>Wrong currency format is provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>QueryNotFound</td>\n<td>q parameter is not provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>QueryInvalidFormat</td>\n<td>Wrong query format is provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>QueryInvalidLength</td>\n<td>Query must contain number of characters between 2 and 280.</td>\n<td>200</td>\n</tr>\n<tr>\n<td>PaginationFromInvalidValue</td>\n<td>Wrong pf value is provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>PaginationSizeInvalidValue</td>\n<td>Wrong ps value is provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>PaginationMaxHitSizeExceeded</td>\n<td>Pagination is greater than the allowed maximum size.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationNameNotFound</td>\n<td>Aggregation name must be provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationItemsNotFound</td>\n<td>Aggregation items must be provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AppliedSearchStrategiesAreRepeated</td>\n<td>Applies strategies must be unique.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>SortingTypeInvalid</td>\n<td>The wrong st value is provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>AggregationInvalidValue</td>\n<td>Aggregation items must be valid values.</td>\n<td>400</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","web","search"],"host":["ineureka","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Query String that will be searched.</p>\n","type":"text/plain"},"key":"q","value":"{SEARCH_QUERY}"},{"disabled":true,"description":{"content":"<p>Required. This is your partner name. Navigate to InOne &gt; InOne Settings &gt; Account Preferences to copy your partner id.</p>\n","type":"text/plain"},"key":"p","value":""},{"disabled":true,"description":{"content":"<p>Required. Locale is required to get partner products in the current language of the website. E.g. en_US, en_GB</p>\n","type":"text/plain"},"key":"l","value":"en_US"},{"disabled":true,"description":{"content":"<p>The searched products will be displayed in the given currency (The current currency that has been selected by the end user on your website). E.g. USD,  AUD</p>\n","type":"text/plain"},"key":"c","value":"USD"},{"disabled":true,"description":{"content":"<p>Number of products will return in the response. For example, if phone is searched with ps=5, then the API will bring the most relevant 5 phones to the current page. The default value is ps=6.</p>\n","type":"text/plain"},"key":"ps","value":"6"},{"disabled":true,"description":{"content":"<p>The searched products starting index from the given page number will be displayed. The default value is pf=0.</p>\n","type":"text/plain"},"key":"pf","value":"0"},{"disabled":true,"description":{"content":"<p>Filter the products with the following pattern: a={field}~{value}</p>\n","type":"text/plain"},"key":"a","value":""},{"disabled":true,"description":{"content":"<p>Sorting type of the searched products. It only takes one of the predefined sorting types. The default value is st=Relevancy.</p>\n","type":"text/plain"},"key":"st","value":""},{"disabled":true,"description":{"content":"<p>User ID. It can be found on localstorage by the key name spUID. spUID is a stringified object and it contains data and expire properties. User Id should be sent if the personalized search is active.</p>\n","type":"text/plain"},"key":"u","value":"a1b2c3d4"},{"disabled":true,"description":{"content":"<p>The searched products will be displayed as only item ids.</p>\n","type":"text/plain"},"key":"oi","value":""},{"disabled":true,"description":{"content":"<p>Applied strategies of the search query. It only takes an encoded string that is auto-generated by the first query in the response. Its data type is string.</p>\n","type":"text/plain"},"key":"qs","value":""}],"variable":[]}},"response":[{"id":"a9ab633e-ad71-445e-a82c-d1a7361a093c","name":"Get 1 relevant product in search result","originalRequest":{"method":"GET","header":[{"key":"authority","value":"eureka.api.useinsider.com"},{"key":"accept","value":"*/*"},{"key":"accept-language","value":"en-GB"},{"key":"content-type","value":"application/json"},{"key":"origin","value":"https://www.example.useinsider.com"},{"key":"referer","value":"https://www.example.useinsider.com"},{"key":"sec-ch-ua","value":"\"Google Chrome\";v=\"113\", \"Chromium\";v=\"113\", \"Not-A.Brand\";v=\"24\""},{"key":"sec-ch-ua-mobile","value":"?0"},{"key":"sec-ch-ua-platform","value":"\"macOS\""},{"key":"sec-fetch-dest","value":"empty"},{"key":"sec-fetch-mode","value":"cors"},{"key":"sec-fetch-site","value":"cross-site"},{"key":"user-agent","value":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"},{"key":"x-auth-token","value":"EurekaSearchAPI"}],"url":{"raw":"https://eureka.api.useinsider.com/api/web/search?q=dog%20food&p=PartnerID&l=en_GB&c=GBP&u=UserID&ps=1&pf=1&a=filter_type_of_nutrition~Dry%20Food~Treats&st=Relevancy","protocol":"https","host":["eureka","api","useinsider","com"],"path":["api","web","search"],"query":[{"key":"q","value":"dog%20food"},{"key":"p","value":"PartnerID"},{"key":"l","value":"en_GB"},{"key":"c","value":"GBP"},{"key":"u","value":"UserID"},{"key":"ps","value":"1"},{"key":"pf","value":"1"},{"key":"a","value":"filter_type_of_nutrition~Dry%20Food~Treats"},{"key":"st","value":"Relevancy"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 29 May 2023 10:06:57 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Origin","enabled":true},{"key":"Vary","value":"Access-Control-Request-Method","enabled":true},{"key":"Vary","value":"Access-Control-Request-Headers","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=RMIFSdiH6m58W0f9g1S7Y1J3nge.CSTOJeo32hSPSC8-1685354817-0-AVAiaLMWERrg70y+Kf3YxLC+i2wMNKJOJxzWnbl+StUzVkHAcGyRcr9sVIzoRFPsxCsLFbYEL61ibdhjvPW1M0Y=; path=/; expires=Mon, 29-May-23 10:36:57 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7ceded78298218cf-FRA","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"Success\",\n    \"data\": {\n        \"items\": [\n            {\n                \"itemId\": \"DF123456\",\n                \"itemProperties\": {\n                    \"item_card\": {\n                        \"original_price\": {\n                            \"GBP\": 31.75\n                        },\n                        \"item_id\": \"DF123456\",\n                        \"image_url\": \"https://example.useinsider.com/product-images/catalog/df123456.jpeg\",\n                        \"price\": {\n                            \"GBP\": 31.75\n                        },\n                        \"product_attributes\": {\n                            \"filter_type_of_supplies\": \"\",\n                            \"filter_breed\": \"Poodle\",\n                            \"type_of_nutrition\": \"Dry Food\",\n                            \"filter_product_range\": \"Healthy Nutrition\",\n                            \"filter_life_stage\": \"Puppy\",\n                            \"flavour\": \"Poultry flavour\",\n                            \"type_of_animal\": \"Dogs\",\n                            \"filter_type_of_animal\": \"Dogs\",\n                            \"filter_type_of_nutrition\": \"Dry Food\",\n                            \"product_range\": \"Healthy Nutrition\",\n                            \"filter_flavour\": \"Poultry flavour\",\n                            \"breed\": \"Poodle\",\n                            \"product_series\": \"\",\n                            \"life_stage\": \"Puppy\",\n                            \"price_per_unit\": \"10.58 / kg\",\n                        },\n                        \"name\": \"Dog Food Poodle Puppy - 3 kg\",\n                        \"discount\": {\n                            \"GBP\": 0\n                        },\n                        \"id\": \"DF123456:en_GB\",\n                        \"in_stock\": 1,\n                        \"locale\": \"en_GB\",\n                        \"category\": [\n                            \"Dogs\",\n                            \"food\",\n                            \"dry-food\"\n                        ],\n                        \"url\": \"https://www.example.useinsider.com/poodle-puppy-dog-food?sku=DF123456\"\n                    }\n                },\n                \"itemVariants\": [\n                    {\n                        \"original_price\": {\n                            \"GBP\": 31.75\n                        },\n                        \"item_id\": \"DF123456\",\n                        \"image_url\": \"https://example.useinsider.com/product-images/catalog/df123456.jpeg\",\n                        \"price\": {\n                            \"GBP\": 31.75\n                        },\n                        \"product_attributes\": {\n                            \"filter_type_of_supplies\": \"\",\n                            \"filter_breed\": \"Poodle\",\n                            \"type_of_nutrition\": \"Dry Food\",\n                            \"filter_product_range\": \"Healthy Nutrition\",\n                            \"filter_life_stage\": \"Puppy\",\n                            \"flavour\": \"Poultry flavour\",\n                            \"type_of_animal\": \"Dogs\",\n                            \"filter_type_of_animal\": \"Dogs\",\n                            \"filter_type_of_nutrition\": \"Dry Food\",\n                            \"product_range\": \"Healthy Nutrition\",\n                            \"filter_flavour\": \"Poultry flavour\",\n                            \"breed\": \"Poodle\",\n                            \"product_series\": \"\",\n                            \"life_stage\": \"Puppy\",\n                            \"price_per_unit\": \"10.58 / kg\",\n                        },\n                        \"name\": \"Dog Food Poodle Puppy - 3 kg\",\n                        \"discount\": {\n                            \"GBP\": 0\n                        },\n                        \"id\": \"DF123456:en_GB\",\n                        \"in_stock\": 1,\n                        \"locale\": \"en_GB\",\n                        \"category\": [\n                            \"Dogs\",\n                            \"food\",\n                            \"dry-food\"\n                        ],\n                        \"url\": \"https://www.example.useinsider.com/poodle-puppy-dog-food?sku=DF123456\"\n                    }\n                ]\n            }\n        ],\n        \"aggregations\": [\n            {\n                \"name\": \"filter_dog_breed\",\n                \"label\": \"Filter dog breed\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Poodle\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Labrador Retriever\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Beagle\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"German Shepherd\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Basset Hound\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Bulldog\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"French Bulldog\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Alaskan Malamute\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 1,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filter_type_of_nutrition\",\n                \"label\": \"Filter type of nutrition\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Diet Food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 78\n                    },\n                    {\n                        \"name\": \"Dry Food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": true,\n                        \"documentCount\": 147\n                    },\n                    {\n                        \"name\": \"Puppy Milk\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Adult Food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Treats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": true,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Wet Food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 49\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 3,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filter_product_series\",\n                \"label\": \"Filter product series\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Ageing\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Veterinary Diets\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Food 1\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Food 2\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Food 3\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Food 4\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Food 5\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Food 6\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Mother & Puppy\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Neutered Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Neutered Junior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Food 7\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Food 8\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Healthy Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Nutrition Maxi\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 9\n                    },\n                    {\n                        \"name\": \"Nutrition Medium\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 7\n                    },\n                    {\n                        \"name\": \"Nutrition Mini\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 11\n                    },\n                    {\n                        \"name\": \"Daily Life\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Starter\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Sterilised\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 8\n                    },\n                    {\n                        \"name\": \"X-Small\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 5,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filter_product_range\",\n                \"label\": \"Filter product range\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Healthy Nutrition New\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 57\n                    },\n                    {\n                        \"name\": \"Dog Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 29\n                    },\n                    {\n                        \"name\": \"Daily Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 21\n                    },\n                    {\n                        \"name\": \"Health Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 23\n                    },\n                    {\n                        \"name\": \"Vet Care Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 14\n                    },\n                    {\n                        \"name\": \"Veterinary Diet\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 5\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 6,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filter_flavour\",\n                \"label\": \"Filter flavour\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Beef\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Fish flavour\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Pork\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Poultry flavour\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 132\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 7,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filter_disease\",\n                \"label\": \"Filter disease\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Ageing & Dementia\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 12\n                    },\n                    {\n                        \"name\": \"Allergies\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 6\n                    },\n                    {\n                        \"name\": \"Breeding & Puppies\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Breeding & Adult Dogs\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Digestive System\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 11\n                    },\n                    {\n                        \"name\": \"Fear\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Hairballs\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Hormones & Fertility\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Joints & Muscles\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Kidneys & Urinary Tracts\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 5\n                    },\n                    {\n                        \"name\": \"Obesity\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 16\n                    },\n                    {\n                        \"name\": \"Teeth\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 6\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 8,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filter_breed\",\n                \"label\": \"Filter breed\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Beagle\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Bichon Frise\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Boxer\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Bulldog\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Cavalier King Charles Spaniel\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Chihuahua\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Dachshund\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Dalmatian\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"French Bulldog\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"German Shepherd\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 7\n                    },\n                    {\n                        \"name\": \"Golden Retriever\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Jack Russel Terier\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Labradoodle\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Labrador Retriever\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Maltese\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Miniature Schnauzer\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Poodle\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Pug\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Rottweiler\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Shih Tzu\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"West Highland White Terrier\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Yorkshire Terrier\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 10,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filtery_type_of_snack\",\n                \"label\": \"Filtery type of snack\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Training Treats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 12,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filter_life_stage\",\n                \"label\": \"Filter life stage\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 94\n                    },\n                    {\n                        \"name\": \"Junior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Kitten\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 6\n                    },\n                    {\n                        \"name\": \"Puppy\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 30\n                    },\n                    {\n                        \"name\": \"Senior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 15\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 14,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"filter_type_of_animal\",\n                \"label\": \"Filter type of animal\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Cats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 40\n                    },\n                    {\n                        \"name\": \"Dogs\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 109\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 18,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"type_of_animal\",\n                \"label\": \"Type of animal\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Cats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 40\n                    },\n                    {\n                        \"name\": \"Dogs\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 109\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 19,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"brand\",\n                \"label\": \"Brand\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Dog Food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 149\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 20,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"category\",\n                \"label\": \"Category\",\n                \"style\": \"List\",\n                \"items\": [\n                    {\n                        \"name\": \"food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 149\n                    },\n                    {\n                        \"name\": \"dry-food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 147\n                    },\n                    {\n                        \"name\": \"Dogs\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 109\n                    },\n                    {\n                        \"name\": \"Cats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 40\n                    },\n                    {\n                        \"name\": \"training-treats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"treats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 21,\n                \"itemOrderType\": \"CountDesc\"\n            },\n            {\n                \"name\": \"type_of_nutrition\",\n                \"label\": \"Type of nutrition\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Dry Food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 144\n                    },\n                    {\n                        \"name\": \"Dry Food, Diet Food\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Treats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 22,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"type_of_snack\",\n                \"label\": \"Type of snack\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Training Treats\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 23,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"type_of_daily_requirement\",\n                \"label\": \"Type of daily requirement\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Fitness\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 27,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"disease\",\n                \"label\": \"Disease\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Ageing & Dementia\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 8\n                    },\n                    {\n                        \"name\": \"Ageing & Dementia, Allergies, Itching & Skin, Digestive System\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Ageing & Dementia, Digestive System\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Ageing & Dementia, Hormones & Fertility\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Ageing & Dementia, Joints & Muscles\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Allergies, Itching & Skin\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Allergies, Itching & Skin, Digestive System\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Allergies, Itching & Skin, Skin & Coat Care\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Breeding & Kittens\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Breeding & Puppies\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Digestive System\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 5\n                    },\n                    {\n                        \"name\": \"Digestive System, Hairballs\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 6\n                    },\n                    {\n                        \"name\": \"Fear, Behaviour & Stress\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Hairballs\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Hormones & Fertility\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Hormones & Fertility, Stamina\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Joints & Muscles\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Joints & Muscles, Digestive System\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Kidneys & Urinary Tracts\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Kidneys & Urinary Tracts, Bladder, Kidneys, Liver & Heart\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Obesity\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 5\n                    },\n                    {\n                        \"name\": \"Obesity, Hormones & Fertility\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 9\n                    },\n                    {\n                        \"name\": \"Obesity, Hormones & Fertility, Stamina\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Teeth\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 6\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 31,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"life_stage\",\n                \"label\": \"Life stage\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 80\n                    },\n                    {\n                        \"name\": \"Adult, Senior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 14\n                    },\n                    {\n                        \"name\": \"Junior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Junior, Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Junior, Adult, Senior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Kitten\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 5\n                    },\n                    {\n                        \"name\": \"Kitten, Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Puppy\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 9\n                    },\n                    {\n                        \"name\": \"Puppy, Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Puppy, Junior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 17\n                    },\n                    {\n                        \"name\": \"Puppy, Junior, Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Senior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 14\n                    },\n                    {\n                        \"name\": \"Senior, Junior, Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 35,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"breed\",\n                \"label\": \"Breed\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Beagle\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Bichon Frise\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Boxer\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Bulldog\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Cavalier King Charles Spaniel\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Chihuahua\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Dachshund\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Dalmatian\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"French Bulldog\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"German Shepherd\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 7\n                    },\n                    {\n                        \"name\": \"Golden Retriever\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Jack Russel Terier\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Labradoodle\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Labrador Retriever\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Maltese\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Miniature Schnauzer\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Poodle\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Pug\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Rottweiler\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Shih Tzu\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"West Highland White Terrier\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Yorkshire Terrier\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 36,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"cat_breed\",\n                \"label\": \"Cat breed\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Bengal\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"British Shorthair\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Maine Coon\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Norwegian Forest Cat\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Persian\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Ragdoll\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Siamese Cat\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Sphynx\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 37,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"flavour\",\n                \"label\": \"Flavour\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Beef, Pork, Poultry flavour\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Fish flavour\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Pork\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Pork, Poultry flavour\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Poultry flavour\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 132\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 38,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"size\",\n                \"label\": \"Size\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"L\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 5\n                    },\n                    {\n                        \"name\": \"Small\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 39,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"product_series\",\n                \"label\": \"Product series\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Ageing\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Calibra Veterinary Diets Renal\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Cocker\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Dermacomfort\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Dermacomfort, Size Health Nutrition Maxi\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Dermacomfort, Size Health Nutrition Medium\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Exigent\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Great Dane\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Indoor\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Light Weight Care\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Light Weight Care, Size Health Nutrition Medium\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Mother & Babycat\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Neutered Adult\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Neutered Junior\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Renal, Calibra Veterinary Diets Renal\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Satiety\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Giant\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 4\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Maxi\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 6\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Maxi, Ageing\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Maxi, Calm Diet\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Maxi, Light Weight Care\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Medium\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 5\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Medium, Ageing\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Medium, Calm Diet\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Mini\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 9\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Mini, Ageing\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition Mini, Calm Diet\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Sporting Life\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 2\n                    },\n                    {\n                        \"name\": \"Starter\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"Sterilised\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 6\n                    },\n                    {\n                        \"name\": \"Sterilised, Size Health Nutrition Maxi\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Sterilised, Size Health Nutrition Medium\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"X-Small\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 3\n                    },\n                    {\n                        \"name\": \"X-Small, Ageing\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 41,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"product_range\",\n                \"label\": \"Product range\",\n                \"style\": \"Checkboxes\",\n                \"items\": [\n                    {\n                        \"name\": \"Breed Health Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 57\n                    },\n                    {\n                        \"name\": \"Canine Care Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 29\n                    },\n                    {\n                        \"name\": \"Lifestyle Health Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 21\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 22\n                    },\n                    {\n                        \"name\": \"Size Health Nutrition, Lifestyle Health Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 1\n                    },\n                    {\n                        \"name\": \"Vet Care Nutrition\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 14\n                    },\n                    {\n                        \"name\": \"Veterinary Diet\",\n                        \"label\": null,\n                        \"min\": null,\n                        \"max\": null,\n                        \"selected\": false,\n                        \"documentCount\": 5\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 42,\n                \"itemOrderType\": \"KeyAsc\"\n            },\n            {\n                \"name\": \"price\",\n                \"label\": \"Price\",\n                \"style\": \"Slider\",\n                \"items\": [\n                    {\n                        \"name\": \"0-10\",\n                        \"label\": null,\n                        \"min\": 0,\n                        \"max\": 10,\n                        \"selected\": null,\n                        \"documentCount\": null\n                    },\n                    {\n                        \"name\": \"10-20\",\n                        \"label\": null,\n                        \"min\": 10,\n                        \"max\": 20,\n                        \"selected\": null,\n                        \"documentCount\": null\n                    },\n                    {\n                        \"name\": \"20-30\",\n                        \"label\": null,\n                        \"min\": 20,\n                        \"max\": 30,\n                        \"selected\": null,\n                        \"documentCount\": null\n                    },\n                    {\n                        \"name\": \"30-70\",\n                        \"label\": null,\n                        \"min\": 30,\n                        \"max\": 70,\n                        \"selected\": null,\n                        \"documentCount\": null\n                    },\n                    {\n                        \"name\": \"70-110\",\n                        \"label\": null,\n                        \"min\": 70,\n                        \"max\": 110,\n                        \"selected\": null,\n                        \"documentCount\": null\n                    }\n                ],\n                \"prefixUnit\": null,\n                \"suffixUnit\": null,\n                \"sequence\": 43,\n                \"itemOrderType\": \"KeyAsc\"\n            }\n        ],\n        \"navigation\": {\n            \"totalPages\": 278,\n            \"currentPage\": 2,\n            \"totalItems\": 278,\n            \"itemPerPage\": 1\n        },\n        \"noResultPageText\": null,\n        \"sortings\": [\n            {\n                \"type\": \"Relevancy\",\n                \"label\": \"Most Relevant\",\n                \"selected\": false\n            },\n            {\n                \"type\": \"PriceAsc\",\n                \"label\": \"Price: Low to High\",\n                \"selected\": false\n            },\n            {\n                \"type\": \"PriceDesc\",\n                \"label\": \"Price: High to Low\",\n                \"selected\": false\n            }\n        ]\n    },\n    \"redirection\": null,\n    \"partnerResources\": {\n        \"@SliderMax\": \"Max\",\n        \"@FacetsSearchPlaceholder\": \"Search…\",\n        \"@NoResultHeader\": \"No Search Results\",\n        \"@ClearAll\": \"Clear All\",\n        \"@RecommendationHeader\": \"Recommended For You\",\n        \"@AddToCart\": \"Add To Cart\",\n        \"@ItemsPerPage\": \"Items Per Page\",\n        \"@SearchPlaceholder\": \"Search anything\",\n        \"@Apply\": \"Apply\",\n        \"@AppliedFilters\": \"Applied Filters\",\n        \"@ShowMore\": \"Show More\",\n        \"@FilterHeader\": \"Filters\",\n        \"@SliderMin\": \"Min\",\n        \"@SuccessHeader\": \"Results for\",\n        \"@Sort\": \"Sort By\",\n        \"@BrandFacetsHeader\": \"Brands\",\n        \"@CategoryFacetsHeader\": \"Categories\",\n        \"@Discount\": \"DISCOUNT\"\n    },\n    \"error\": null,\n    \"validations\": null\n}"}],"_postman_id":"cbbec6de-4785-436d-89f8-b4c14074da58"},{"name":"Get search recommendations","id":"fae17da2-eaef-4482-9e88-ca9d92be9f68","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{domain_name}/api/web/suggestions/query","description":"<p>The Suggestion API offers query recommendations as users type into a search bar. It analyzes the input text and returns a list of relevant suggestions in real time based on user history and other contextual information like category and brand. This feature notably improves the user experience, accelerating the search process and effectively directing users to their intended queries.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Sample</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>q</td>\n<td>Query String that will be searched</td>\n<td>String</td>\n<td>q=sneakers</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>p</td>\n<td>This is your partner ID. Navigate to InOne &gt; InOne Settings &gt; <a href=\"https://academy.useinsider.com/docs/account-preferences\">Account Preferences</a> to copy your partner ID.</td>\n<td>String</td>\n<td>10000000</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>l</td>\n<td>Locale is required to get partner products in the current language of the website.</td>\n<td>String</td>\n<td>l=en_US</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><p>The <strong>q</strong> parameter in the query should include a minimum of 2 characters and a maximum of 280 characters. Otherwise, a validation exception will occur.</p>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"api-responses\">API Responses</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Definition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>status</td>\n<td>It is the field that shows the result of the suggestion. This field can be:  <br /><em>- Success:</em> Suggestion API response is valid.  <br /><em>- Error:</em> Unexpected internal server errors.  <br /><em>- Invalid:</em> Suggestion API returns a Validation Exception. The request is invalid.  <br /><em>- BusinessException:</em> Eureka Search API returns a Business Exception. Details are shared in <em>Validation Exceptions</em> section.</td>\n</tr>\n<tr>\n<td>data</td>\n<td>It is the object where suggested phrases and their types are kept as a result of the given query.</td>\n</tr>\n<tr>\n<td>validations</td>\n<td>When the request is incorrect (HTTP 4XX), this field is filled with an array of type and message details.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"200-search\">200 Search</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n  \"status\": \"Success\",\n  \"data\": [\n    {\n      \"phrase\": \"...\"\n      \"phraseType\": \"...\"\n    }, ...\n  ],\n  \"error\": null,\n  \"validations\": null\n}\n\n</code></pre>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n  \"status\": \"Error\",\n  \"data\": null,\n  \"redirection\": null,\n  \"partnerResources\": null,\n  \"error\": {\n    \"code\": \"500 INTERNAL_SERVER_ERROR\",\n    \"message\": \"...\" \n  },\n  \"validations\": null,\n  \"appliedSearchStrategy\": null \n}\n\n</code></pre>\n<h4 id=\"400-validation-exception\">400 Validation Exception</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"ValidationException\",\n  \"data\": null,\n  \"error\": null,\n  \"validations\": [\n    \"...\"\n  ]\n}\n\n</code></pre>\n<h3 id=\"fail-records-messages\">Fail Records Messages</h3>\n<ul>\n<li><strong>Business Exceptions</strong></li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Definition</th>\n<th>HTTP Code</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>PartnerConfigNotFound</td>\n<td>Partner config cannot be gathered from the cache.</td>\n<td>400</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li><strong>Validation Exceptions</strong></li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Definition</th>\n<th>HTTP Code</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>QueryNotFound</td>\n<td>q parameter is not provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>QueryInvalidFormat</td>\n<td>The wrong query format is provided in the request.</td>\n<td>400</td>\n</tr>\n<tr>\n<td>QueryInvalidLength</td>\n<td>The query must contain the number of characters between 2 and 280.</td>\n<td>200</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","web","suggestions","query"],"host":["{domain_name}"],"query":[{"disabled":true,"description":{"content":"<p>Required. Query String that will be searched.</p>\n","type":"text/plain"},"key":"q","value":"{SEARCH_QUERY}"},{"disabled":true,"description":{"content":"<p>Required. This is your partner name. Navigate to InOne &gt; InOne Settings &gt; Account Preferences to copy your partner id.</p>\n","type":"text/plain"},"key":"p","value":""},{"disabled":true,"description":{"content":"<p>Required. Locale is required to get partner products in the current language of the website. E.g. en_US, en_GB</p>\n","type":"text/plain"},"key":"l","value":"en_US"}],"variable":[]}},"response":[],"_postman_id":"fae17da2-eaef-4482-9e88-ca9d92be9f68"}],"id":"de7e02ce-4ff2-411f-8e30-d7d67bf466a0","description":"<p>Search API allows you to get products that match your search criteria and available facet options to further refine the results.</p>\n","_postman_id":"de7e02ce-4ff2-411f-8e30-d7d67bf466a0"},{"name":"Reports & Analysis APIs","item":[{"name":"Email","item":[{"name":"Get email campaign list","id":"e4ee8140-16a5-4c4d-a4d1-fef6c4e9132e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"}],"url":"https://analytics.api.useinsider.com/email/v1/campaign/list?page=Integer&perPage=Integer","description":"<p>This request allows you to get the analytics of your email campaigns for a given time period.</p>\n<blockquote>\n<p>The campaigns on the Draft and Scheduled statuses are not listed in the response. </p>\n</blockquote>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>The following are the query parameters you need to use in your request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>page</td>\n<td>Integer</td>\n<td>Specifies the number of pages of email campaigns</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>perPage</td>\n<td>Integer</td>\n<td>Specifies the number of emails to be listed per page</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><p>Before sending the request, make sure:</p>\n<ul>\n<li>To replace the authorization value with your own API key.</li>\n<li>To replace the sample values in page and perPage with your own values in the required data type.</li>\n</ul>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"currentPage\": 1,\n    \"data\": [\n        {\n            \"id\": 67,\n            \"campaignName\": \"My awesome campaign\",\n            \"startTime\": \"01-01-2023 12:30:15\"\n        },\n        {\n            \"id\": 66,\n            \"campaignName\": \"This is a great campaign\",\n            \"startTime\": \"01-12-2022 09:30:17\"\n        },\n        {\n            \"id\": 65,\n            \"campaignName\": \"This is a recurring campaign\",\n            \"startTime\": \"12-12-2022 12:45:15\"\n        },\n        {\n            \"id\": 64,\n            \"campaignName\": \"This is a newsletter\",\n            \"startTime\": \"22-07-2022 16:00:01\"\n        },\n        {\n            \"id\": 63,\n            \"campaignName\": \"My email campaign\",\n            \"startTime\": \"01-01-2022 18:30:00\"\n        }\n    ],\n    \"firstPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=1&amp;perPage=5\",\n    \"from\": 0,\n    \"lastPage\": 14,\n    \"lastPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=14&amp;perPage=5\",\n    \"nextPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=2&amp;perPage=5\",\n    \"path\": \"/email/v1/campaign/list\",\n    \"perPage\": 5,\n    \"prevPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=1&amp;perPage=5\",\n    \"to\": 0,\n    \"total\": 67\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we couldn’t validate the request at the moment. You can try again later.</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations:</p>\n<ul>\n<li>All functions must be executed with an <strong>HTTPS GET</strong> request.</li>\n<li>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>This API provides data for a 1 year-range.</li>\n<li>You can send 1000 requests/per minute with the same API Key. If you exceed the rate limit, you will receive a 429 error.</li>\n<li>The perPage value should be between 1-100.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v1","campaign","list"],"host":["analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>Specifies the number of pages of email campaigns.</p>\n","type":"text/plain"},"key":"page","value":"Integer"},{"description":{"content":"<p>Specifies the number of emails to be listed per page.</p>\n","type":"text/plain"},"key":"perPage","value":"Integer"}],"variable":[]}},"response":[{"id":"491c963e-a03f-44d1-8d18-e657746819f3","name":"Request email campaign list","originalRequest":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"}],"url":{"raw":"https://analytics.api.useinsider.com/email/v1/campaign/list?page=2&perPage=5","protocol":"https","host":["analytics","api","useinsider","com"],"path":["email","v1","campaign","list"],"query":[{"key":"page","value":"2","description":"Specifies the number of pages of email campaigns."},{"key":"perPage","value":"5","description":"Specifies the number of emails to be listed per page."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 10 May 2023 17:31:44 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Origin","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7c53eae37d570784-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"currentPage\": 2,\n    \"data\": [\n        {\n            \"id\": 1084265,\n            \"campaignName\": \"Email 1\",\n            \"startTime\": \"05-05-2023 10:09:28\"\n        },\n        {\n            \"id\": 1083699,\n            \"campaignName\": \"A great email campaign\",\n            \"startTime\": \"29-04-2023 14:05:04\"\n        },\n        {\n            \"id\": 1083536,\n            \"campaignName\": \"My amazing email campaign\",\n            \"startTime\": \"27-04-2023 15:28:33\"\n        },\n        {\n            \"id\": 1083532,\n            \"campaignName\": \"RSS Email\",\n            \"startTime\": \"27-04-2023 15:13:11\"\n        },\n        {\n            \"id\": 1083530,\n            \"campaignName\": \"Email campaign\",\n            \"startTime\": \"27-04-2023 14:34:05\"\n        }\n    ],\n    \"firstPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=1&perPage=5\",\n    \"from\": 5,\n    \"lastPage\": 38,\n    \"lastPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=38&perPage=5\",\n    \"nextPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=3&perPage=5\",\n    \"path\": \"/email/v1/campaign/list\",\n    \"perPage\": 5,\n    \"prevPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=1&perPage=5\",\n    \"to\": 10,\n    \"total\": 190\n}"}],"_postman_id":"e4ee8140-16a5-4c4d-a4d1-fef6c4e9132e"},{"name":"Get email campaign list V2","id":"7dbdbbd2-cc87-49f8-89ff-1cc5cc2a458c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"}],"url":"https://analytics.api.useinsider.com/email/v2/campaign/list?page=Integer&perPage=Integer","description":"<p>This request allows you to get the analytics of your email campaigns for a given time period with more metrics than V1.</p>\n<blockquote>\n<p>The campaigns on the Draft and Scheduled statuses are not listed in the response. </p>\n</blockquote>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>The following are the query parameters you need to use in your request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>page</td>\n<td>Integer</td>\n<td>Specifies the number of pages of email campaigns</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>perPage</td>\n<td>Integer</td>\n<td>Specifies the number of emails to be listed per page</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your own API key.</p>\n</li>\n<li><p>To replace the sample values in page and perPage with your own values in the required data type.</p>\n</li>\n</ul>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"currentPage\": 1,\n   \"data\": [\n       {\n           \"id\": 6648,\n           \"name\": \"My Email Campaign\",\n           \"tags\": \"marketing\",\n           \"type\": \"experiment\",\n           \"subject\": \"Here is your experiment\",\n           \"senderDomain\": \"@useinsider.com\",\n           \"utmParameters\": {\n               \"utm_term\": \"\",\n               \"utm_medium\": \"email\",\n               \"utm_source\": \"insider\",\n               \"utm_status\": true,\n               \"utm_content\": \"example\",\n               \"utm_campaign\": \"insider_0225\"\n           },\n           \"startTime\": \"05-02-2025 09:00:05\"\n       }\n   ],\n“firstPageUrl”: “https://analytics.useinsider.com/email/v2/campaign/list?page=1&amp;perPage=10”,\n    “from”: 0,\n    “lastPage”: 79,\n    “lastPageUrl”: “https://analytics.useinsider.com/email/v2/campaign/list?page=79&amp;perPage=10”,\n    “nextPageUrl”: “https://analytics.useinsider.com/email/v2/campaign/list?page=2&amp;perPage=10”,\n    “path”: “/email/v2/campaign/list”,\n    “perPage”: 10,\n    “prevPageUrl”: “https://analytics.useinsider.com/email/v2/campaign/list?page=1&amp;perPage=10”,\n    “to”: 0,\n    “total”: 787\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we couldn’t validate the request at the moment. You can try again later.</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations:</p>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a 1 year-range.</p>\n</li>\n<li><p>You can send 1000 requests/per minute with the same API Key. If you exceed the rate limit, you will receive a 429 error.</p>\n</li>\n<li><p>The perPage value should be between 1-100.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v2","campaign","list"],"host":["analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>Specifies the number of pages of email campaigns.</p>\n","type":"text/plain"},"key":"page","value":"Integer"},{"description":{"content":"<p>Specifies the number of emails to be listed per page.</p>\n","type":"text/plain"},"key":"perPage","value":"Integer"}],"variable":[]}},"response":[],"_postman_id":"7dbdbbd2-cc87-49f8-89ff-1cc5cc2a458c"},{"name":"Get email campaign analytics","id":"25034067-18e9-449b-92bb-8010a33b1939","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"}],"url":"https://analytics.api.useinsider.com/email/v1/campaign/statistics?campaignId=integer&startTime=int64","description":"<p>This request allows you to get the analytics of your email campaigns for a given time period.</p>\n<blockquote>\n<p>The campaigns on the Draft and Scheduled statuses are not listed in the response. </p>\n</blockquote>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>The following are the query parameters you need to use in your request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>campaignId</td>\n<td>Integer</td>\n<td>Your campaign ID that can be found on the campaign URL.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>The time campaign is being launched. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>If the <strong>endTime</strong> value is empty, it will be populated with today’s date and time in UTC. </p>\n</blockquote>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li>To replace the authorization value with your own API key.</li>\n<li>To replace the sample values in campaignID, startTime, and endTime with your own values in the required data type.</li>\n</ul>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"details\": {},\n        \"summary\": {\n            \"blocks\": 300,\n            \"bounces\": 0,\n            \"clickRate\": 1.45,\n            \"clickToOpen\": 2860,\n            \"conversion\": 22,\n            \"conversionRate\": 0.01,\n            \"delivered\": 235746,\n            \"frequencyDrop\": 0,\n            \"invalid\": 0,\n            \"linkActivities\": [\n            {\n                \"totalClick\": 1,\n                \"uniqueClick\": 1,\n                \"url\": \"https://google.com\"\n            }\n        ],\n            \"machineOpen\": 0,\n            \"openRate\": 6.48,\n            \"revenue\": 0,\n            \"sendingDrop\": 0,\n            \"sent\": 236573,\n            \"spams\": 2,\n            \"systemDrop\": 0,\n            \"totalClick\": 4931,\n            \"totalOpen\": 64518,\n            \"uniqueClick\": 3429,\n            \"uniqueOpen\": 15272,\n            \"unsubscribes\": 100\n        }\n    }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we couldn’t validate the request at the moment. You can try again later.</p>\n<h4 id=\"400-bad-request-2\">400 Bad Request</h4>\n<p>Sorry, we detected an invalid Campaign ID in your request. The Campaign ID is not found in the database. You can confirm your Campaign ID by checking the InOne panel.</p>\n<h4 id=\"406-not-acceptable-request\">406 Not Acceptable Request</h4>\n<p>Sorry, we received an invalid request. We are able to provide the analytics data for only the last 1 year.</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a 1 year-range.</p>\n</li>\n<li><p>You can send 100 requests/per minute with the same API Key. If you exceed the rate limit, you will receive a 429 error.</p>\n</li>\n<li><p>The perPage value should be between 1-100.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v1","campaign","statistics"],"host":["analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>Your campaign ID that can be found on the campaign URL.</p>\n","type":"text/plain"},"key":"campaignId","value":"integer"},{"description":{"content":"<p>The time campaign is being launched. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"disabled":true,"description":{"content":"<p>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"endTime","value":"int64"}],"variable":[]}},"response":[{"id":"0c3fcd12-b75a-43dc-83d9-ff6098684fd9","name":"Request email campaign analytics","originalRequest":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"}],"url":{"raw":"https://analytics.api.useinsider.com/email/v1/campaign/statistics?campaignId=2000&startTime=1683726709","protocol":"https","host":["analytics","api","useinsider","com"],"path":["email","v1","campaign","statistics"],"query":[{"key":"campaignId","value":"2000","description":"Your campaign ID that can be found on the campaign URL."},{"key":"startTime","value":"1683726709","description":"The time campaign is being launched. Specifies a 10-digit epoch start time."},{"key":"endTime","value":"int64","description":"The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 25 May 2023 13:57:10 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Origin","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Set-Cookie","value":"__cf_bm=vGyEoG.yYHgHbceASXMqosYtunUU1OYDfzjjZZbsHm4-1685023030-0-AdKAHZEot48TF9AnLKddAejpa83DwvMeO2139K3m+DCGlV5RQkQIGsxKEEP3V8cSZlUzYKnoj99i1k/IGki6tIs=; path=/; expires=Thu, 25-May-23 14:27:10 GMT; domain=.useinsider.com; HttpOnly; Secure; SameSite=None","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cce49306a20588a-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"details\": {\n            \"4160\": {\n                \"blocks\": 0,\n                \"bounces\": 0,\n                \"clickRate\": 0,\n                \"clickToOpen\": 0,\n                \"conversion\": 0,\n                \"conversionRate\": 0,\n                \"delivered\": 12,\n                \"frequencyDrop\": 0,\n                \"invalid\": 0,\n                \"invalidDrop\": 0,\n                \"linkActivity\": [],\n                \"machineOpen\": 2,\n                \"mobileRevenue\": 0,\n                \"openRate\": 16.666666666666664,\n                \"recommendationRevenue\": 0,\n                \"revenue\": 0,\n                \"sendingDrop\": 0,\n                \"sent\": 12,\n                \"spams\": 0,\n                \"systemDrop\": 0,\n                \"totalClick\": 0,\n                \"totalOpen\": 2,\n                \"uniqueClick\": 0,\n                \"uniqueMachineOpen\": 2,\n                \"uniqueOpen\": 2,\n                \"unsubscribes\": 0\n            }\n        },\n        \"isp\": [\n            {\n                \"metrics\": {\n                    \"blocks\": 0,\n                    \"bounces\": 0,\n                    \"clickThroughRate\": 0,\n                    \"delivered\": 10,\n                    \"openRate\": 0,\n                    \"totalClick\": 0,\n                    \"totalOpen\": 0,\n                    \"uniqueClick\": 0,\n                    \"uniqueOpen\": 0\n                },\n                \"name\": \"name1\"\n            },\n            {\n                \"metrics\": {\n                    \"blocks\": 0,\n                    \"bounces\": 0,\n                    \"clickThroughRate\": 0,\n                    \"delivered\": 1,\n                    \"openRate\": 100,\n                    \"totalClick\": 0,\n                    \"totalOpen\": 1,\n                    \"uniqueClick\": 0,\n                    \"uniqueOpen\": 1\n                },\n                \"name\": \"name2\"\n            },\n            {\n                \"metrics\": {\n                    \"blocks\": 0,\n                    \"bounces\": 0,\n                    \"clickThroughRate\": 0,\n                    \"delivered\": 1,\n                    \"openRate\": 100,\n                    \"totalClick\": 0,\n                    \"totalOpen\": 1,\n                    \"uniqueClick\": 0,\n                    \"uniqueOpen\": 1\n                },\n                \"name\": \"name3\"\n            }\n        ],\n        \"summary\": {\n            \"blocks\": 0,\n            \"bounces\": 0,\n            \"clickRate\": 0,\n            \"clickToOpen\": 0,\n            \"conversion\": 0,\n            \"conversionRate\": 0,\n            \"delivered\": 12,\n            \"frequencyDrop\": 0,\n            \"invalid\": 0,\n            \"invalidDrop\": 0,\n            \"linkActivity\": [],\n            \"machineOpen\": 2,\n            \"mobileRevenue\": 0,\n            \"openRate\": 16.666666666666664,\n            \"recommendationRevenue\": 0,\n            \"revenue\": 0,\n            \"sendingDrop\": 0,\n            \"sent\": 12,\n            \"spams\": 0,\n            \"systemDrop\": 0,\n            \"totalClick\": 0,\n            \"totalOpen\": 2,\n            \"uniqueClick\": 0,\n            \"uniqueMachineOpen\": 2,\n            \"uniqueOpen\": 2,\n            \"unsubscribes\": 0\n        }\n    }\n}"}],"_postman_id":"25034067-18e9-449b-92bb-8010a33b1939"},{"name":"Get email campaign analytics V2","id":"cc55f6b1-e2b5-45ba-8a69-34a85361b877","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"}],"url":"https://analytics.api.useinsider.com/email/v2/campaign/statistics?campaignId=integer&startTime=int64","description":"<p>This request allows you to get the analytics of your email campaigns for a given time period with more metrics than V1.</p>\n<blockquote>\n<p>The campaigns on the Draft and Scheduled statuses are not listed in the response. </p>\n</blockquote>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>The following are the query parameters you need to use in your request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>campaignId</td>\n<td>Integer</td>\n<td>Your campaign ID that can be found on the campaign URL.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>The time campaign is being launched. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>If the <strong>endTime</strong> value is empty, it will be populated with today’s date and time in UTC. </p>\n</blockquote>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your own API key.</p>\n</li>\n<li><p>To replace the sample values in campaignID, startTime, and endTime with your own values in the required data type.</p>\n</li>\n</ul>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"details\": {\n      \"1199\": {\n        \"sent\": 76982,\n        \"delivered\": 75999,\n        \"deliveryRate\": 98.72307812215843,\n        \"openRate\": 19.88315635732049,\n        \"totalOpens\": 18763,\n        \"uniqueOpens\": 15111,\n        \"clickThroughRate\": 0.3710575139146568,\n        \"totalClicks\": 581,\n        \"uniqueClicks\": 282,\n        \"clickToOpenRate\": 1.8661901925749453,\n        \"conversions\": 5,\n        \"conversionRate\": 0.0065790339346570356,\n        \"revenue\": 337.56999588012695,\n        \"unsubscribe\": 131,\n        \"bounce\": 9,\n        \"bounceRate\": 0.0116910446597906,\n        \"blocks\": 1166,\n        \"spamReports\": 7,\n        \"uniqueUserOpens\": 4098,\n        \"uniqueUserOpenRate\": 5.392176212844906,\n        \"uniqueMachineOpens\": 11013,\n        \"uniqueMachineOpenRate\": 14.490980144475586,\n        \"systemDrops\": 0,\n        \"sendingDrops\": 1899,\n        \"frequencyDrop\": 0,\n        \"unsubscribeDrop\": 712,\n        \"spamDrop\": 0,\n        \"invalidDrop\": 0,\n        \"bounceDrop\": 5,\n        \"linkClickActivity\": [\n          {\n            \"totalClick\": 94,\n            \"uniqueClick\": 73,\n            \"link\": \"https://www.insider.com/products\"\n          },\n          {\n            \"totalClick\": 89,\n            \"uniqueClick\": 71,\n            \"link\": \"https://www.insider.com/collections/c\"\n          },\n          {\n            \"totalClick\": 9,\n            \"uniqueClick\": 6,\n            \"link\": \"https://www.insider.com/collections/f\"\n          }\n        ],\n        \"utmParameters\": \"{\\\"utm_source\\\":\\\"insider\\\",\\\"utm_medium\\\":\\\"email\\\",\\\"utm_campaign\\\":\\\"insider_2025\\\",\\\"utm_term\\\":\\\"\\\",\\\"utm_content\\\":\\\"\\\",\\\"utm_status\\\":true}\"\n      }\n    },\n    \"isp\": [\n      {\n        \"name\": \"gmail\",\n        \"metrics\": {\n          \"blocks\": 283,\n          \"bounces\": 4,\n          \"clickThroughRate\": 0.1826458356749466,\n          \"delivered\": 35588,\n          \"openRate\": 10.006181859053614,\n          \"spams\": 0,\n          \"totalClick\": 91,\n          \"totalOpen\": 4854,\n          \"uniqueClick\": 65,\n          \"uniqueOpen\": 3561,\n          \"unsubscribes\": 33\n        }\n      },\n      {\n        \"name\": \"hotmail\",\n        \"metrics\": {\n          \"blocks\": 139,\n          \"bounces\": 0,\n          \"clickThroughRate\": 0.3071253071253071,\n          \"delivered\": 14652,\n          \"openRate\": 28.77422877422877,\n          \"spams\": 1,\n          \"totalClick\": 51,\n          \"totalOpen\": 4796,\n          \"uniqueClick\": 45,\n          \"uniqueOpen\": 4216,\n          \"unsubscribes\": 24\n        }\n      },\n      {\n        \"name\": \"orange\",\n        \"metrics\": {\n          \"blocks\": 17,\n          \"bounces\": 0,\n          \"clickThroughRate\": 1.0698096101541252,\n          \"delivered\": 5515,\n          \"openRate\": 31.677243880326383,\n          \"spams\": 0,\n          \"totalClick\": 117,\n          \"totalOpen\": 2269,\n          \"uniqueClick\": 59,\n          \"uniqueOpen\": 1747,\n          \"unsubscribes\": 16\n        }\n      },\n      {\n        \"name\": \"yahoo\",\n        \"metrics\": {\n          \"blocks\": 6,\n          \"bounces\": 2,\n          \"clickThroughRate\": 0.690376569037657,\n          \"delivered\": 4780,\n          \"openRate\": 31.23430962343096,\n          \"spams\": 1,\n          \"totalClick\": 44,\n          \"totalOpen\": 1789,\n          \"uniqueClick\": 33,\n          \"uniqueOpen\": 1493,\n          \"unsubscribes\": 14\n        }\n      },\n      {\n        \"name\": \"icloud\",\n        \"metrics\": {\n          \"blocks\": 128,\n          \"bounces\": 0,\n          \"clickThroughRate\": 0.17921146953405018,\n          \"delivered\": 1674,\n          \"openRate\": 46.415770609319,\n          \"spams\": 0,\n          \"totalClick\": 3,\n          \"totalOpen\": 913,\n          \"uniqueClick\": 3,\n          \"uniqueOpen\": 777,\n          \"unsubscribes\": 2\n        }\n      },\n      {\n        \"name\": \"free\",\n        \"metrics\": {\n          \"blocks\": 57,\n          \"bounces\": 0,\n          \"clickThroughRate\": 0.5847953216374269,\n          \"delivered\": 1539,\n          \"openRate\": 30.734243014944767,\n          \"spams\": 0,\n          \"totalClick\": 11,\n          \"totalOpen\": 599,\n          \"uniqueClick\": 9,\n          \"uniqueOpen\": 473,\n          \"unsubscribes\": 7\n        }\n      },\n      {\n        \"name\": \"msn\",\n        \"metrics\": {\n          \"blocks\": 4,\n          \"bounces\": 0,\n          \"clickThroughRate\": 0,\n          \"delivered\": 264,\n          \"openRate\": 27.65151515151515,\n          \"spams\": 0,\n          \"totalClick\": 0,\n          \"totalOpen\": 85,\n          \"uniqueClick\": 0,\n          \"uniqueOpen\": 73,\n          \"unsubscribes\": 0\n        }\n      },\n      {\n        \"name\": \"bbox\",\n        \"metrics\": {\n          \"blocks\": 10,\n          \"bounces\": 1,\n          \"clickThroughRate\": 0.5524861878453038,\n          \"delivered\": 181,\n          \"openRate\": 17.12707182320442,\n          \"spams\": 0,\n          \"totalClick\": 1,\n          \"totalOpen\": 41,\n          \"uniqueClick\": 1,\n          \"uniqueOpen\": 31,\n          \"unsubscribes\": 0\n        }\n      }\n    ]\n  }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we couldn’t validate the request at the moment. You can try again later.</p>\n<h4 id=\"400-bad-request-2\">400 Bad Request</h4>\n<p>Sorry, we detected an invalid Campaign ID in your request. The Campaign ID is not found in the database. You can confirm your Campaign ID by checking the InOne panel.</p>\n<h4 id=\"406-not-acceptable-request\">406 Not Acceptable Request</h4>\n<p>Sorry, we received an invalid request. We are able to provide the analytics data for only the last 1 year.</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a 1 year-range.</p>\n</li>\n<li><p>You can send 100 requests/per minute with the same API Key. If you exceed the rate limit, you will receive a 429 error.</p>\n</li>\n<li><p>The perPage value should be between 1-100.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v2","campaign","statistics"],"host":["analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>Your campaign ID that can be found on the campaign URL.</p>\n","type":"text/plain"},"key":"campaignId","value":"integer"},{"description":{"content":"<p>The time campaign is being launched. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"disabled":true,"description":{"content":"<p>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"endTime","value":"int64"}],"variable":[]}},"response":[],"_postman_id":"cc55f6b1-e2b5-45ba-8a69-34a85361b877"},{"name":"Get overall analytics","id":"9afeb0ff-a180-493f-bd14-296207bca861","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"}],"url":"https://analytics.api.useinsider.com/email/v1/overall?startTime=int64&endTime=int64","description":"<p>This request allows you to get the overall analytics of your email campaigns for a given time period</p>\n<blockquote>\n<p>The campaigns on the Draft and Scheduled statuses are not listed in the response. </p>\n</blockquote>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>The following are the query parameters you need to use in your request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>The time campaign is being launched. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>The current date (today’s date on the payload). It can be customizable according to your case. Specifies a 10-digit epoch start time.</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>Before sending the request, make sure:</p>\n<ul>\n<li>To replace the authorization value with your own API key.</li>\n<li>To replace the sample values in start_date and end_date with your own values in the required data type.</li>\n</ul>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"summary\": {\n            \"blocks\": 0,\n            \"bounceDrop\": 0,\n            \"bounces\": 0,\n            \"clickRate\": 5.88,\n            \"conversion\": 0,\n            \"conversionRate\": 0,\n            \"delivered\": 17,\n            \"frequencyDrop\": 0,\n            \"invalid\": 0,\n            \"invalidDrop\": 0,\n            \"machineOpen\": 0,\n            \"openRate\": 47.05,\n            \"revenue\": 0,\n            \"sendingDrop\": 0,\n            \"sent\": 27,\n            \"spamDrop\": 0,\n            \"spams\": 0,\n            \"systemDrop\": 0,\n            \"totalClick\": 1,\n            \"totalOpen\": 15,\n            \"unsubscribeDrop\": 0,\n            \"unsubscribes\": 0\n        },\n        \"linkActivities\": [\n            {\n                \"totalClick\": 1,\n                \"uniqueClick\": 1,\n                \"url\": \"https://google.com\"\n            }\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we couldn’t validate the request at the moment. You can try again later.</p>\n<h4 id=\"429-rate-limited\">429 Rate Limited</h4>\n<p>Rate limited</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations:</p>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a 1 year-range.</p>\n</li>\n<li><p>You can send 100 requests/per minute with the same API Key. If you exceed the rate limit, you will receive a 429 error.</p>\n</li>\n<li><p>The perPage value should be between 1-100.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v1","overall"],"host":["analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>The time campaign is being launched. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"description":{"content":"<p>The current date (today’s date on the payload). It can be customizable according to your case. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"endTime","value":"int64"}],"variable":[]}},"response":[{"id":"85eaa7ab-54d4-46e2-81b2-99a0ac1713fe","name":"Request overall analytics","originalRequest":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"This key is required to authorize your request. Navigate to Inone > Inone Settings > Integration Settings to generate your request token (API key).","type":"text"}],"url":{"raw":"https://analytics.api.useinsider.com/email/v1/overall?startTime=1683731363&endTime=1685027363","protocol":"https","host":["analytics","api","useinsider","com"],"path":["email","v1","overall"],"query":[{"key":"startTime","value":"1683731363","description":"The time campaign is being launched. Specifies a 10-digit epoch start time."},{"key":"endTime","value":"1685027363","description":"The current date (today’s date on the payload). It can be customizable according to your case. Specifies a 10-digit epoch start time."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 25 May 2023 15:10:34 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Origin","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7cceb4b77d572012-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"summary\": {\n            \"blocks\": 4791,\n            \"bounceDrop\": 0,\n            \"bounces\": 0,\n            \"clickRate\": 0.7633587786259541,\n            \"conversion\": 0,\n            \"conversionRate\": 0,\n            \"delivered\": 43261,\n            \"frequencyDrop\": 0,\n            \"invalid\": 0,\n            \"invalidDrop\": 0,\n            \"machineOpen\": 2,\n            \"openRate\": 6.106870229007633,\n            \"revenue\": 0,\n            \"sendingDrop\": 4792,\n            \"sent\": 48053,\n            \"spamDrop\": 0,\n            \"spams\": 1,\n            \"systemDrop\": 0,\n            \"totalClick\": 2,\n            \"totalOpen\": 12,\n            \"uniqueClick\": 1,\n            \"uniqueMachineOpen\": 2,\n            \"uniqueOpen\": 8,\n            \"unsubscribeDrop\": 0,\n            \"unsubscribes\": 3\n        },\n        \"linkActivities\": [\n            {\n                \"totalClick\": 2,\n                \"uniqueClick\": 1,\n                \"url\": \"https://mycampaign.useinsider\"\n            }\n        ]\n    }\n}"}],"_postman_id":"9afeb0ff-a180-493f-bd14-296207bca861"},{"name":"Get overall analytics V2","id":"bfa4c7f9-e092-40c0-934e-c747294e2761","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"}],"url":"https://analytics.api.useinsider.com/email/v2/overall?startTime=int64&endTime=int64","description":"<p>This request allows you to get the overall analytics of your email campaigns for a given time period with more metrics than V1.</p>\n<blockquote>\n<p>The campaigns on the Draft and Scheduled statuses are not listed in the response. </p>\n</blockquote>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>The following are the query parameters you need to use in your request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>The time campaign is being launched. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>The current date (today’s date on the payload). It can be customizable according to your case. Specifies a 10-digit epoch start time.</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your own API key.</p>\n</li>\n<li><p>To replace the sample values in start_date and end_date with your own values in the required data type.</p>\n</li>\n</ul>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"summary\": {\n      \"sent\": 28177222,\n      \"delivered\": 27174347,\n      \"deliveryRate\": 96.44083082427359,\n      \"openRate\": 15.377410908898751,\n      \"totalOpens\": 5028722,\n      \"uniqueOpens\": 4178711,\n      \"clickThroughRate\": 0.10888946107886237,\n      \"totalClicks\": 291619,\n      \"uniqueClicks\": 29590,\n      \"clickToOpenRate\": 0.708113099948764,\n      \"conversions\": 365,\n      \"conversionRate\": 0.0013431785499758283,\n      \"revenue\": 54860988,\n      \"unsubscribe\": 5083,\n      \"bounce\": 2238,\n      \"bounceRate\": 0.007942585681441554,\n      \"blocks\": 1013573,\n      \"spamReports\": 480,\n      \"uniqueUserOpens\": 1216549,\n      \"uniqueUserOpenRate\": 4.4768288268343674,\n      \"uniqueMachineOpens\": 2962162,\n      \"uniqueMachineOpenRate\": 10.900582082064382,\n      \"systemDrops\": 541566,\n      \"sendingDrops\": 1558662,\n      \"frequencyDrop\": 0,\n      \"unsubscribeDrop\": 533725,\n      \"spamDrop\": 22,\n      \"invalidDrop\": 12,\n      \"bounceDrop\": 8612\n    },\n    \"linkActivities\": [\n      {\n        \"totalClick\": 9908,\n        \"uniqueClick\": 5923,\n        \"link\": \"https://sample.useinsider.com/download\"\n      },\n      {\n        \"totalClick\": 379,\n        \"uniqueClick\": 109,\n        \"link\": \"https://sample.useinsider.com/download/v\"\n      },\n      {\n        \"totalClick\": 378,\n        \"uniqueClick\": 116,\n        \"link\": \"https://sample.useinsider.com/download_insider\"\n      },\n      {\n        \"totalClick\": 378,\n        \"uniqueClick\": 115,\n        \"link\": \"https://sample.useinsider.com/download_useinsider\"\n      },\n      {\n        \"totalClick\": 375,\n        \"uniqueClick\": 113,\n        \"link\": \"https://sample.useinsider.com/download_open\"\n      }\n    ],\n    \"topEmailClients\": {\n      \"android\": 0.46,\n      \"apple-mail\": 0.1,\n      \"g-mail\": 84.54,\n      \"i-pad\": 0.02,\n      \"i-phone\": 0.08,\n      \"other\": 7.56,\n      \"other-web-mail\": 0.05,\n      \"outlook\": 0.01,\n      \"yahoo\": 7.19\n    },\n    \"topEmailDevices\": {\n      \"desktop\": 0.13,\n      \"mobile\": 0.53,\n      \"others\": 7.57,\n      \"tablet\": 0.07,\n      \"web-mail\": 91.7\n    }\n  }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we couldn’t validate the request at the moment. You can try again later.</p>\n<h4 id=\"429-rate-limited\">429 Rate Limited</h4>\n<p>Rate limited</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations:</p>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a 1 year-range.</p>\n</li>\n<li><p>You can send 100 requests/per minute with the same API Key. If you exceed the rate limit, you will receive a 429 error.</p>\n</li>\n<li><p>The perPage value should be between 1-100.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["email","v2","overall"],"host":["analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>The time campaign is being launched. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"description":{"content":"<p>The current date (today’s date on the payload). It can be customizable according to your case. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"endTime","value":"int64"}],"variable":[]}},"response":[],"_postman_id":"bfa4c7f9-e092-40c0-934e-c747294e2761"}],"id":"7b47187a-1b86-4448-b919-1b39f39ee94f","description":"<p>Email Analytics APIs enable you to get your email campaign list, email campaign analytics, and overall email analytics from your back-end without using Insider's platform.</p>\n","_postman_id":"7b47187a-1b86-4448-b919-1b39f39ee94f"},{"name":"Web Push","item":[{"name":"Get web push top metrics analytics","id":"84e062f9-afbf-474f-9a65-bdad6963be9d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n \"partner_id\": \"YOURPARTNERID\",\n \"start_date\" : \"2023-06-01\",\n \"end_date\" : \"2023-06-08\"\n}"},"url":"https://web-push.api.useinsider.com/v1/statistics/top-metrics","description":"<p>Insider's web push API allows you to get the campaigns analytics of your web push notifications from your own back-end without using the Insider's InOne panel. This API returns top metric analytics (without campaign information) in the given time interval in API request payload.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partner_id</td>\n<td>This is your partner identification number, available from InOne Settings &gt; Account Preferences.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>This specifies the date on which you will start requesting campaign analytics. The date format should be YYYY-MM-DD. The Start Date cannot be earlier than the Campaign Create Date.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>This specifies the date on which you will stop requesting campaign analytics. The date format should be YYYY-MM-DD.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To <strong>replace</strong> the <strong>authorization</strong> value with your own API key.</p>\n</li>\n<li><p>To replace the sample values in partner_id, start_date, and end_date with your own values in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --request POST 'https://web-push.api.useinsider.com/v1/statistics/top-metrics' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data '{\n \"partner_id\": \"YOURPARTNERID\",\n \"start_date\" : \"2023-06-01\",\n \"end_date\" : \"2023-06-08\"\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h4 id=\"200-ok\">200 OK</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"overview\": {\n    \"total\": {\n      \"targeted\": \"9,550,384\",\n      \"deliveryRate\": \"32.42%\",\n      \"ctr\": \"0.76%\",\n      \"conversionRate\": \"0.01%\"\n    },\n    \"targeted\": {\n      \"sent\": \"9,505,769\",\n      \"dropped\": \"44,615\"\n    },\n    \"deliveryRate\": {\n      \"delivered\": \"3,082,158\",\n      \"undelivered\": \"6,423,611\"\n    },\n    \"ctr\": {\n      \"clicks\": \"23,419\"\n    },\n    \"conversionRate\": {\n      \"conversions\": \"3\"\n    },\n    \"revenue\": \"2,480 TRY\"\n  },\n  \"performance\": [\n    {\n      \"label\": \"Bulk\",\n      \"campaignCount\": 22,\n      \"deliveryRate\": \"32.42\",\n      \"ctr\": \"0.76\",\n      \"conversionRate\": \"0.01\",\n      \"revenue\": \"2479.6600112915\"\n    },\n    {\n      \"label\": \"In Stock Alert\",\n      \"campaignCount\": 4,\n      \"deliveryRate\": \"0.00\",\n      \"ctr\": \"0.00\",\n      \"conversionRate\": \"0.00\",\n      \"revenue\": \"0\"\n    },\n    {\n      \"label\": \"Segment\",\n      \"campaignCount\": 2,\n      \"deliveryRate\": \"0.00\",\n      \"ctr\": \"0.00\",\n      \"conversionRate\": \"0.00\",\n      \"revenue\": \"0\"\n    },\n    {\n      \"label\": \"Cart Reminder\",\n      \"campaignCount\": 4,\n      \"deliveryRate\": \"0.00\",\n      \"ctr\": \"0.00\",\n      \"conversionRate\": \"0.00\",\n      \"revenue\": \"0\"\n    },\n    {\n      \"label\": \"Price Alert\",\n      \"campaignCount\": 6,\n      \"deliveryRate\": \"0.00\",\n      \"ctr\": \"0.00\",\n      \"conversionRate\": \"0.00\",\n      \"revenue\": \"0\"\n    },\n    {\n      \"label\": \"Trigger\",\n      \"campaignCount\": 10,\n      \"deliveryRate\": \"0.00\",\n      \"ctr\": \"0.00\",\n      \"conversionRate\": \"0.00\",\n      \"revenue\": \"0\"\n    }\n  ],\n  \"dropped\": [\n    {\n      \"label\": \"frequencyCapped\",\n      \"count\": \"0\",\n      \"percentage\": \"0.00\"\n    },\n    {\n      \"label\": \"silentHours\",\n      \"count\": \"0\",\n      \"percentage\": \"0.00\"\n    },\n    {\n      \"label\": \"unsubscriptions\",\n      \"count\": \"44,203\",\n      \"percentage\": \"99.08\"\n    },\n    {\n      \"label\": \"serviceProviderErrors\",\n      \"count\": \"412\",\n      \"percentage\": \"0.92\"\n    },\n    {\n      \"label\": \"internalErrors\",\n      \"count\": \"0\",\n      \"percentage\": \"0.00\"\n    }\n  ],\n  \"undelivered\": [\n    {\n      \"label\": \"offlineRecipients\",\n      \"count\": \"6,413,534\",\n      \"percentage\": \"99.84\"\n    },\n    {\n      \"label\": \"other\",\n      \"count\": \"10,077\",\n      \"percentage\": \"0.16\"\n    }\n  ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status_code\": 401\n}\n\n</code></pre>\n<h4 id=\"422-unprocessable-entity\">422 UNPROCESSABLE ENTITY</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status_code\": 422,\n    \"errors\": {\n        \"end_date\": [\n            \"The end date does not match the format Y-m-d.\"\n        ]\n    }\n}\n\n</code></pre>\n<h3 id=\"error-codes\">Error Codes</h3>\n<ul>\n<li><p>400: Bad request</p>\n</li>\n<li><p>401: Unauthorized request</p>\n</li>\n<li><p>403: Request limit exceeded</p>\n</li>\n<li><p>422: Missing parameter</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can make 30 requests per minute in aggregate. Every response you receive from the API will include two additional headers specifying the number of requests that have been used and the maximum number of requests available for your account.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","statistics","top-metrics"],"host":["web-push","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"84e062f9-afbf-474f-9a65-bdad6963be9d"},{"name":"Get web push overall metrics analytics","id":"3676d8f6-af41-476b-aaf0-0549493e827e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n \"partner_id\": \"YOURPARTNERID\",\n \"start_date\" : \"2023-06-01\",\n \"end_date\" : \"2023-06-08\",\n \"per_page\" : \"100\",\n\n\"page\" : \"1\"\n}"},"url":"https://web-push.api.useinsider.com/v1/statistics/overall-metrics","description":"<p>Insider's web push API allows you to get the campaigns analytics of your web push notifications from your own back-end without using the Insider's InOne panel. This API returns overall metric analytics with campaign information in the given time interval in API request payload.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partner_id</td>\n<td>This is your partner identification number, available from InOne Settings &gt; Account Preferences.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>This specifies the date on which you will start requesting campaign analytics. The date format should be YYYY-MM-DD. The Start Date cannot be earlier than the Campaign Create Date.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>This specifies the date on which you will stop requesting campaign analytics. The date format should be YYYY-MM-DD.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>page</td>\n<td>Specifies the number of campaigns to be listed per page. Default value is 1.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n<tr>\n<td>per_page</td>\n<td>Specifies the number of pages of campaign campaigns. Default value is 10.</td>\n<td>String</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To <strong>replace</strong> the <strong>authorization</strong> value with your own API key.</p>\n</li>\n<li><p>To replace the sample values in partner_id, start_date, and end_date with your own values in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location --POST 'https://web-push.api.useinsider.com/v1/statistics/overall-metrics' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data '{\n \"partner_id\": \"YOURPARTNERID\",\n \"start_date\": \"2023-12-02\",\n \"end_date\": \"2023-12-19\"\n \"page\": 1,\n \"per_page\": 10\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h4 id=\"200-ok\">200 OK</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"page\": 1,\n  \"per_page\": 2,\n  \"total\": 48,\n  \"data\": [\n    {\n      \"id\": 12345,\n      \"tags\": [\n        \"Discount\",\n        \"Baby\",\n        \"Powder\"\n      ],\n      \"type\": \"Bulk\",\n      \"campName\": \"08.06.2023-2100-BabyCare\",\n      \"status\": \"Active\",\n      \"builderId\": 11111,\n      \"sendDate\": \"2023-06-08 21:15:10\",\n      \"startDate\": \"2023-06-08 21:15:00\",\n      \"endDate\": \"2023-06-08 21:15:00\",\n      \"daysActive\": 1,\n      \"messageLink\": \"https://sample.useinsider.com/discount/all-baby-care-products\",\n      \"firstButtonLink\": \"N/A\",\n      \"secondButtonLink\": \"N/A\",\n      \"targeted\": 411840,\n      \"sent\": 411344,\n      \"dropped\": 496,\n      \"deliveryRate\": 0.340792621261037,\n      \"delivered\": 140183,\n      \"undelivered\": 271161,\n      \"ctr\": 0.005157544067397616,\n      \"clicks\": 723,\n      \"conversionRate\": 0,\n      \"conversions\": 0,\n      \"revenue\": 0\n    },\n    {\n      \"id\": 22222,\n      \"tags\": [\n        \"Baby\"\n      ],\n      \"type\": \"Bulk\",\n      \"campName\": \"08.06.2023-Bebekcom-BabyProducts\",\n      \"status\": \"Active\",\n      \"builderId\": 10101,\n      \"sendDate\": \"2023-06-08 16:00:27\",\n      \"startDate\": \"2023-06-08 16:00:00\",\n      \"endDate\": \"2023-06-08 16:00:00\",\n      \"daysActive\": 1,\n      \"messageLink\": \"https://sample.useinsider.com/baby-products/\",\n      \"firstButtonLink\": \"N/A\",\n      \"secondButtonLink\": \"N/A\",\n      \"targeted\": 411733,\n      \"sent\": 411279,\n      \"dropped\": 454,\n      \"deliveryRate\": 0.3351933845394489,\n      \"delivered\": 137858,\n      \"undelivered\": 273421,\n      \"ctr\": 0.008399947772345456,\n      \"clicks\": 1158,\n      \"conversionRate\": 0,\n      \"conversions\": 0,\n      \"revenue\": 0\n    }\n  ]\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status_code\": 401\n}\n\n</code></pre>\n<h4 id=\"422-unprocessable-entity\">422 UNPROCESSABLE ENTITY</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status_code\": 422,\n    \"errors\": {\n        \"end_date\": [\n            \"The end date does not match the format Y-m-d.\"\n        ]\n    }\n}\n\n</code></pre>\n<h3 id=\"error-codes\">Error Codes</h3>\n<ul>\n<li><p>400: Bad request</p>\n</li>\n<li><p>401: Unauthorized request</p>\n</li>\n<li><p>403: Request limit exceeded</p>\n</li>\n<li><p>422: Missing parameter</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can make 30 requests per minute in aggregate. Every response you receive from the API will include two additional headers specifying the number of requests that have been used and the maximum number of requests available for your account.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","statistics","overall-metrics"],"host":["web-push","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"3676d8f6-af41-476b-aaf0-0549493e827e"},{"name":"Get web push campaign metrics analytics","id":"d921be9b-f15e-45f1-a8c8-f8ba536c5b74","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n \"partner_id\": \"YOURPARTNERID\",\n \"start_date\" : \"2023-06-01\",\n \"end_date\" : \"2023-06-08\",\n\n\"campaign_id\" : \"11111\"\n}"},"url":"https://web-push.api.useinsider.com/v1/statistics/campaign-metrics","description":"<p>Insider's web push API allows you to get the campaigns analytics of your web push notifications from your own back-end without using the Insider's InOne panel. This API returns analytics specific to a single campaign in the given time interval in API request payload.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>partner_id</td>\n<td>This is your partner identification number, available from InOne Settings &gt; Account Preferences.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>This specifies the date on which you will start requesting campaign analytics. The date format should be YYYY-MM-DD. The Start Date cannot be earlier than the Campaign Create Date.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>This specifies the date on which you will stop requesting campaign analytics. The date format should be YYYY-MM-DD.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>campaign_id</td>\n<td>This is your campaign ID. It returns in the response and is needed to send push notifications.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-request\">Sample Request</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To <strong>replace</strong> the <strong>authorization</strong> value with your own API key.</p>\n</li>\n<li><p>To replace the sample values in partner_id, start_date, end_date, and campaign_id with your own values in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">\ncurl --location --POST 'https://web-push.api.useinsider.com/v1/statistics/campaign-metrics' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: {{vault:bearer-token}}' \\\n--data '{\n \"partner_id\": \"YOURPARTNERID\",\n \"start_date\" : \"2023-06-01\",\n \"end_date\" : \"2023-06-08\",\n\n\"campaign_id\" : \"11111\"\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h4 id=\"200-ok\">200 OK</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"08.06.2023-2100\",\n  \"primaryGoal\": \"salesFromClick\",\n  \"startDate\": \"2023-05-31T21:00:00.000000Z\",\n  \"endDate\": \"2023-06-08T20:59:59.999999Z\",\n  \"isRecurring\": false,\n  \"alias\": \"bulk\",\n  \"preferredCurrency\": \"USD\",\n  \"personalizationStatus\": \"Active\",\n  \"isTTLEnded\": true,\n  \"goalMenu\": {\n    \"camp-join\": \"Clicks\",\n    \"sales-from-click\": \"Purchases From Click...\"\n  },\n  \"overview\": {\n    \"total\": {\n      \"targeted\": \"411,840\",\n      \"deliveryRate\": \"34.08%\",\n      \"ctr\": \"0.52%\",\n      \"conversionRate\": \"0.00%\"\n    },\n    \"targeted\": {\n      \"sent\": \"411,344\",\n      \"dropped\": \"496\"\n    },\n    \"deliveryRate\": {\n      \"delivered\": \"140,183\",\n      \"undelivered\": \"271,161\"\n    },\n    \"ctr\": {\n      \"clicks\": \"723\"\n    },\n    \"conversionRate\": {\n      \"conversions\": \"0\"\n    },\n    \"revenue\": \"0 USD\"\n  },\n  \"deviceMetrics\": [\n    {\n      \"device\": \"Desktop\",\n      \"sent\": \"36,752\",\n      \"delivered\": \"3,077\",\n      \"deliveryRate\": \"8.37%\",\n      \"clicks\": \"4\",\n      \"ctr\": \"0.13%\",\n      \"conversions\": \"0\",\n      \"conversionRate\": \"0.00%\",\n      \"revenue\": \"USD\"\n    },\n    {\n      \"device\": \"Mobile\",\n      \"sent\": \"374,592\",\n      \"delivered\": \"137,106\",\n      \"deliveryRate\": \"36.60%\",\n      \"clicks\": \"719\",\n      \"ctr\": \"0.52%\",\n      \"conversions\": \"0\",\n      \"conversionRate\": \"0.00%\",\n      \"revenue\": \"0 USD\"\n    }\n  ],\n  \"clickMetrics\": [\n    {\n      \"name\": \"mainAction\",\n      \"header\": \"Main Element\",\n      \"clicks\": \"723\",\n      \"clickRatio\": \"100.00%\"\n    },\n    {\n      \"name\": \"primaryAction\",\n      \"header\": \"\",\n      \"clicks\": \"0\",\n      \"clickRatio\": \"0.00%\"\n    },\n    {\n      \"name\": \"secondaryAction\",\n      \"header\": \"\",\n      \"clicks\": \"0\",\n      \"clickRatio\": \"0.00%\"\n    }\n  ],\n  \"unsuccessfulMessages\": {\n    \"dropped\": [\n      {\n        \"label\": \"frequencyCapped\",\n        \"count\": \"0\",\n        \"percentage\": \"0.00\"\n      },\n      {\n        \"label\": \"silentHours\",\n        \"count\": \"0\",\n        \"percentage\": \"0.00\"\n      },\n      {\n        \"label\": \"unsubscriptions\",\n        \"count\": \"453\",\n        \"percentage\": \"91.33\"\n      },\n      {\n        \"label\": \"serviceProviderErrors\",\n        \"count\": \"43\",\n        \"percentage\": \"8.67\"\n      },\n      {\n        \"label\": \"internalErrors\",\n        \"count\": \"0\",\n        \"percentage\": \"0.00\"\n      }\n    ],\n    \"undelivered\": [\n      {\n        \"label\": \"offlineRecipients\",\n        \"count\": \"270,807\",\n        \"percentage\": \"99.87\"\n      },\n      {\n        \"label\": \"other\",\n        \"count\": \"354\",\n        \"percentage\": \"0.13\"\n      }\n    ]\n  },\n  \"comparisonData\": []\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized\">401 UNAUTHORIZED</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status_code\": 401\n}\n\n</code></pre>\n<h4 id=\"422-unprocessable-entity\">422 UNPROCESSABLE ENTITY</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status_code\": 422,\n    \"errors\": {\n        \"end_date\": [\n            \"The end date does not match the format Y-m-d.\"\n        ]\n    }\n}\n\n</code></pre>\n<h3 id=\"error-codes\">Error Codes</h3>\n<ul>\n<li><p>400: Bad request</p>\n</li>\n<li><p>401: Unauthorized request</p>\n</li>\n<li><p>403: Request limit exceeded</p>\n</li>\n<li><p>422: Missing parameter</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API Key</strong> should be provided as the authorization key on the <strong>request header</strong>. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>You can make 30 requests per minute in aggregate. Every response you receive from the API will include two additional headers specifying the number of requests that have been used and the maximum number of requests available for your account.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","statistics","campaign-metrics"],"host":["web-push","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d921be9b-f15e-45f1-a8c8-f8ba536c5b74"}],"id":"e3248e8e-df86-4864-9f34-5d4a68effe31","_postman_id":"e3248e8e-df86-4864-9f34-5d4a68effe31","description":""},{"name":"Mobile App","item":[{"name":"Get app push analytics","id":"7efb1b62-2135-4294-8fa8-ed2d94707ab1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{mobileAppApiKey}\"\n}"},"url":"https://mobile.useinsider.com/api/v1/notification/get_statistics","description":"<p>You can use this service to get the analytics of the single push notifications that are sent in the current day using a predefined web service. These analytics include the campaigns created from the beginning of the day (00:00) to the time of the API request. For instance, if you send a request at 14:50, the API will return the campaigns created between 00:00-14:50.</p>\n<h3 id=\"body-parameters\">Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>api_key</td>\n<td>Your API key. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#mobile-app-integration-settings\">API Authentication Tokens</a> to get your API key.</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-body\">Sample Body</h3>\n<p>The following is a sample body to send this request.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"api_key\": \"Your API Key goes here\"\n}\n\n</code></pre>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"campaigns\": [\n        {\n            \"id\": 5125,\n            \"name\": \"My app push name\",\n            \"delivery_count\": 1640069,\n            \"session_count\": 1085,\n            \"open_rate\": \"% 0.07\",\n            \"message\": \"This is my message\",\n            \"title\": \"This is my title\",\n            \"segment_name\": \"This is my segment\",\n            \"deep_link\": {\n                \"dl_key1\": \"value1\",\n                \"dl_key2\": \"value2\"\n            },\n            \"push_image\": \"https://pushimage1.useinsider.com\"\n        },\n        {\n            \"id\": 5126,\n            \"name\": \"My app push name 2\",\n            \"delivery_count\": 683618,\n            \"session_count\": 914,\n            \"open_rate\": \"% 0.13\",\n            \"message\": \"This is my message\",\n            \"title\": \"This is my title\",\n            \"segment_name\": \"English_lang_users\",\n            \"deep_link\": {\n                \"dl_key3\": \"value3\",\n                \"dl_key4\": \"value4\"\n            },\n            \"push_image\": \"https://pushimage2.useinsider.com\"\n        }\n    ],\n    \"total_camp_count\": 2,\n    \"total_delivery_count\": 2323687,\n    \"total_session_count\": 1999,\n    \"total_open_rate\": \"% 0.09\"\n}\n\n</code></pre>\n<p>The successful response returns the following metrics:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Definition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Campaign ID</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Campaign name</td>\n</tr>\n<tr>\n<td>delivery_count</td>\n<td>The number of users the campaign is delivered to</td>\n</tr>\n<tr>\n<td>session_count</td>\n<td>The number of users who open the campaign</td>\n</tr>\n<tr>\n<td>open_rate</td>\n<td>Opens/deliveries</td>\n</tr>\n<tr>\n<td>message</td>\n<td>The campaign message</td>\n</tr>\n<tr>\n<td>title</td>\n<td>The campaign title</td>\n</tr>\n<tr>\n<td>segment_name</td>\n<td>The name of the segment that is targeted in the campaign</td>\n</tr>\n<tr>\n<td>deep_link/deep link key</td>\n<td>The deep link the users are redirected to</td>\n</tr>\n<tr>\n<td>push_image</td>\n<td>The image URL of the campaign</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<p>The following response returns if the API Key is invalid or incorrect.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Bad Api Key.\"\n}\n\n</code></pre>\n<h4 id=\"401-unauthorized-1\">401 Unauthorized</h4>\n<p>The following response returns if the API Key is empty.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Api key can not be empty.\n\n</code></pre><h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>API key</strong> should be provided in the request body. If the key is incorrect, no operation will be executed.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","v1","notification","get_statistics"],"host":["mobile","useinsider","com"],"query":[],"variable":[]}},"response":[{"id":"f315604d-c325-4afc-af6b-ef959f3918f8","name":"Get app push analytics","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"This header specifies the media type of the resource.","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"api_key\": \"{apiKey]\"\n}","options":{"raw":{"language":"json"}}},"url":"https://mobile.useinsider.com/api/v1/notification/get_statistics"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 11 May 2023 16:38:44 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"vary","value":"Origin, Accept-Encoding","enabled":true},{"key":"x-envoy-upstream-service-time","value":"197","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7c5bda9aeeee0622-IAD","enabled":true},{"key":"Content-Encoding","value":"br","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"campaigns\": [\n        {\n            \"id\": 5125,\n            \"name\": \"My app push name\",\n            \"delivery_count\": 1640069,\n            \"session_count\": 1085,\n            \"open_rate\": \"% 0.07\",\n            \"message\": \"This is my message\",\n            \"title\": \"This is my title\",\n            \"segment_name\": \"This is my segment\",\n            \"deep_link\": {\n                \"dl_key1\": \"value1\",\n                \"dl_key2\": \"value2\"\n            },\n            \"push_image\": \"https://pushimage1.useinsider.com\"\n        },\n        {\n            \"id\": 5126,\n            \"name\": \"My app push name 2\",\n            \"delivery_count\": 683618,\n            \"session_count\": 914,\n            \"open_rate\": \"% 0.13\",\n            \"message\": \"This is my message\",\n            \"title\": \"This is my title\",\n            \"segment_name\": \"English_lang_users\",\n            \"deep_link\": {\n                \"dl_key3\": \"value3\",\n                \"dl_key4\": \"value4\"\n            },\n            \"push_image\": \"https://pushimage2.useinsider.com\"\n        }\n    ],\n    \"total_camp_count\": 2,\n    \"total_delivery_count\": 2323687,\n    \"total_session_count\": 1999,\n    \"total_open_rate\": \"% 0.09\"\n}"}],"_postman_id":"7efb1b62-2135-4294-8fa8-ed2d94707ab1"},{"name":"Export app push results with raw user data","id":"54ffdc96-bd14-42fd-8c04-e7476da86075","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"segment\": {\n        \"segment_id\": 123456789\n    },\n    \"attributes\": [\n        \"iid\",\n        \"udid\",\n        \"pn\",\n        \"uuid\",\n        \"em\",\n        \"app_version\",\n        \"mo\",\n        \"ov\"\n    ],\n    \"events\": {\n        \"start_date\": 1693907940,\n        \"end_date\": 1693994340,\n        \"wanted\": [\n            {\n                \"event_name\": \"push_delivered\",\n                \"params\": [\n                    \"timestamp\",\n                    \"camp_id\",\n                    \"camp_type\",\n                    \"variant_id\"\n                ]\n            },\n            {\n                \"event_name\": \"push_session\",\n                \"params\": [\n                    \"timestamp\",\n                    \"camp_id\",\n                    \"camp_type\",\n                    \"variant_id\"\n                ]\n            }\n        ]\n    },\n    \"format\": \"csv\",\n    \"hook\": \"xyz.test.com\"\n}"},"url":"https://unification.useinsider.com/api/raw/v1/export","description":"<p><a href=\"https://developers.useinsider.com/#e9de126f-c86d-4888-8d28-1ddfa12a3c19\">Export Raw User Data API </a>  prepares the raw data for events and attributes together, and also allows you to export <a href=\"https://academy.useinsider.com/docs/app-push\">App Push</a> results for multiple requested events and attributes of a user (e.g. name, phone number, age, city, etc.) into Insider's AWS S3 bucket. The request returns a link to partner's webhook endpoint, and this link enables you to have access to the raw user data and transfer it to your end.</p>\n<p>When you deliver an app push to a user and they click it, these actions trigger the <code>push_delivered</code> and <code>push_session</code> events respectively along with their <code>timestamp</code>, <code>camp ID</code>, <code>camp type</code>, and <code>variant ID</code> event parameters. These events and their parameters are listed on the respective user's <a href=\"https://academy.useinsider.com/docs/what-does-a-user-profile-offer#events\">User Profile</a>.</p>\n<blockquote>\n<p><strong>Suggested Reading</strong>: <a href=\"https://academy.useinsider.com/docs/understanding-events-attributes\">Understanding Events and Attributes</a> </p>\n</blockquote>\n<p>You should provide a <strong>webhook endpoint</strong> in the request to be notified when the export link is ready. After sending a request, your webhook endpoint receives an export link as follows to have access to the raw user data.</p>\n<p><code>https://insider-data-export.useinsider.com/{partner name}/p/{file name}</code></p>\n<p>You can export raw user data in the following use cases:</p>\n<ul>\n<li>Analyze user information using a business intelligence tool.</li>\n<li>Sync the data that you want via daily jobs.</li>\n</ul>\n<h2 id=\"body-parameters\">Body Parameters</h2>\n<p>Before starting the implementation, make sure to share the following information with your Insider Technical Account Manager:</p>\n<ul>\n<li>A webhook endpoint that will be notified when the export link is ready</li>\n<li>A preferred format: CSV or Parquet</li>\n<li>A list of attributes, events, and event parameters that you want to export</li>\n<li>A dynamic segment that you want to export</li>\n</ul>\n<p>You can consult your Insider Technical Account Manager on which parameters to add in the request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>segment</td>\n<td>Segment ID of the user filter. To find your dynamic segment ID, navigate to <strong>Audience</strong> &gt; <strong>Segments</strong> &gt; <strong>Saved Segments &gt; Dynamic Segments</strong>. Click on the Segment whose ID you want to get. You can see it on the top right corner on the summary page. Refer <a href=\"https://academy.useinsider.com/docs/saved-segments#dynamic-segments-page\">here</a> for further information.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>attributes</td>\n<td>Array of attributes</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>events</td>\n<td>Array of events</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>Beginning of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>End of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>wanted</td>\n<td>Object of the wanted events</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>event_name</td>\n<td>Name of the event</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>params</td>\n<td>Event parameters of the event</td>\n<td>Array (of string)</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>format</td>\n<td>The export format</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>hook</td>\n<td>Your webhook endpoint</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"sample-body\">Sample Body</h2>\n<p>The sample below displays a request to get the app template results along with raw user data (e.g. insider ID (iid), unique device ID (udid), phone number (pn), unique user ID (uuid), email (em), app version, model (mo), device software version (ov)).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"segment\": {\n        \"segment_id\": 123456789\n    },\n    \"attributes\": [\n        \"iid\",\n        \"udid\",\n        \"pn\",\n        \"uuid\",\n        \"em\",\n        \"app_version\",\n        \"mo\",\n        \"ov\"\n    ],\n    \"events\": {\n        \"start_date\": 1693907940,\n        \"end_date\": 1693994340,\n        \"wanted\": [\n            {\n                \"event_name\": \"push_delivered\",\n                \"params\": [\n                    \"timestamp\",\n                    \"camp_id\",\n                    \"camp_type\",\n                    \"variant_id\"\n                ]\n            },\n            {\n                \"event_name\": \"push_session\",\n                \"params\": [\n                    \"timestamp\",\n                    \"camp_id\",\n                    \"camp_type\",\n                    \"variant_id\"\n                ]\n            }\n        ]\n    },\n    \"format\": \"csv\",\n    \"hook\": \"xyz.test.com\"\n}\n\n</code></pre>\n<h2 id=\"sample-responses\">Sample Responses</h2>\n<h3 id=\"200-ok\">200 OK</h3>\n<p>When the data is ready to download, you will receive the export link on your webhook URL as displayed below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"url\":\"https://insider-data-export.useinsider.com/{partner name}/p/{file name}\"}\n\n</code></pre>\n<blockquote>\n<p>If a user has performed the requested event(s) <em>N</em> times, that user will be displayed in <em>N</em> rows in the exported file. However, since attributes always display the latest information of the user, the attributes on <em>N</em> rows will be the same. </p>\n</blockquote>\n<h3 id=\"429-too-many-requests\">429 Too Many Requests</h3>\n<p>If you exceed the rate limits, you receive an error shown below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"rejected: too many requests\"\n}\n\n</code></pre>\n<p>Depending on your request, you might also receive 400 Empty Partner, 400 Empty Token, or 403 Authentication Failed responses.</p>\n<h2 id=\"limitations\">Limitations</h2>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only a response that states if the request is successful or failed can be received via this API. No data can be inserted.</li>\n<li>The <strong>request token</strong> should be provided on the <strong>request header</strong>. If the token is incorrect, the operation will not be executed.</li>\n<li>The exported data can be in CSV, Parquet or JSON formats.</li>\n<li>The export link expires <strong>in 24 hours</strong> after it is ready.</li>\n<li>The rate limit is <strong>1 request per day</strong>. The API can be called <strong>only once</strong> in 24 hours with respect to the UTC time zone. The limitation timeline resets at UTC 00:00.</li>\n<li>The value of X-PARTNER-NAME header should be <strong>lowercase.</strong></li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","raw","v1","export"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"54ffdc96-bd14-42fd-8c04-e7476da86075"},{"name":"Export app template results with raw user data","id":"d68a7b61-d8dd-4684-924f-507aed95cb62","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"segment\": {\n        \"segment_id\": 123456789\n    },\n    \"attributes\": [\n        \"iid\",\n        \"udid\",\n        \"pn\",\n        \"uuid\",\n        \"em\",\n        \"app_version\",\n        \"mo\",\n        \"ov\"\n    ],\n    \"events\": {\n        \"start_date\": 1693907940,\n        \"end_date\": 1693994340,\n        \"wanted\": [\n            {\n                \"event_name\": \"inapp_seen\",\n                \"params\": [\n                    \"timestamp\",\n                    \"inapp_id\",\n                    \"variant_id\",\n                    \"dismiss_type\"\n                ]\n            }\n        ]\n    },\n    \"format\": \"csv\",\n    \"hook\": \"xyz.test.com\"\n}"},"url":"https://unification.useinsider.com/api/raw/v1/export","description":"<p><a href=\"https://developers.useinsider.com/#e9de126f-c86d-4888-8d28-1ddfa12a3c19\">Export Raw User Data API </a>  prepares the raw data for events and attributes together, and also allows you to export <a href=\"https://academy.useinsider.com/docs/app-templates\">App Template</a> results for multiple requested events and attributes of a user (e.g. name, phone number, age, city, etc.) into Insider's AWS S3 bucket. The request returns a link to partner's webhook endpoint, and this link enables you to have access to the raw user data and transfer it to your end.</p>\n<p>When a user sees an app template, this action triggers the <code>inapp_seen</code> event respectively along with its <code>timestamp</code>, <code>inapp ID</code>, <code>variant ID</code>, and <code>dismiss type</code> event parameters. These events and their parameters can be listed on the respective user's <a href=\"https://academy.useinsider.com/docs/what-does-a-user-profile-offer#events\">User Profile</a>.</p>\n<blockquote>\n<p><strong>Suggested Reading</strong>: <a href=\"https://academy.useinsider.com/docs/understanding-events-attributes\">Understanding Events and Attributes</a> </p>\n</blockquote>\n<p>You should provide a <strong>webhook endpoint</strong> in the request to be notified when the export link is ready. After sending a request, your webhook endpoint receives an export link as follows to have access to the raw user data.</p>\n<p><code>https://insider-data-export.useinsider.com/{partner name}/p/{file name}</code></p>\n<p>You can export raw user data in the following use cases:</p>\n<ul>\n<li>Analyze user information using a business intelligence tool.</li>\n<li>Sync the data that you want via daily jobs.</li>\n</ul>\n<h2 id=\"body-parameters\">Body Parameters</h2>\n<p>Before starting the implementation, make sure to share the following information with your Insider Technical Account Manager:</p>\n<ul>\n<li>A webhook endpoint that will be notified when the export link is ready</li>\n<li>A preferred format: CSV or Parquet</li>\n<li>A list of attributes, events, and event parameters that you want to export</li>\n<li>A dynamic segment that you want to export</li>\n</ul>\n<p>You can consult your Insider Technical Account Manager on which parameters to add in the request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>segment</td>\n<td>Segment ID of the user filter. To find your dynamic segment ID, navigate to <strong>Audience</strong> &gt; <strong>Segments</strong> &gt; <strong>Saved Segments &gt; Dynamic Segments</strong>. Click on the Segment whose ID you want to get. You can see it on the top right corner on the summary page. Refer <a href=\"https://academy.useinsider.com/docs/saved-segments#dynamic-segments-page\">here</a> for further information.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>attributes</td>\n<td>Array of attributes</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>events</td>\n<td>Array of events</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>Beginning of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>End of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>wanted</td>\n<td>Object of the wanted events</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>event_name</td>\n<td>Name of the event</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>params</td>\n<td>Event parameters of the event</td>\n<td>Array (of string)</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>format</td>\n<td>The export format</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>hook</td>\n<td>Your webhook endpoint</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"sample-body\">Sample Body</h2>\n<p>The sample below displays a request to get the app template results along with raw user data (e.g. insider ID (iid), unique device ID (udid), phone number (pn), unique user ID (uuid), email (em), app version, model (mo), device software version (ov)).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"segment\": {\n        \"segment_id\": 123456789\n    },\n    \"attributes\": [\n        \"iid\",\n        \"udid\",\n        \"pn\",\n        \"uuid\",\n        \"em\",\n        \"app_version\",\n        \"mo\",\n        \"ov\"\n    ],\n    \"events\": {\n        \"start_date\": 1693907940,\n        \"end_date\": 1693994340,\n        \"wanted\": [\n            {\n                \"event_name\": \"inapp_seen\",\n                \"params\": [\n                    \"timestamp\",\n                    \"inapp_id\",\n                    \"variant_id\",\n                    \"dismiss_type\"\n                ]\n            }\n        ]\n    },\n    \"format\": \"csv\",\n    \"hook\": \"xyz.test.com\"\n}\n\n</code></pre>\n<h2 id=\"sample-responses\">Sample Responses</h2>\n<h3 id=\"200-ok\">200 OK</h3>\n<p>When the data is ready to download, you will receive the export link on your webhook URL as displayed below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"url\":\"https://insider-data-export.useinsider.com/{partner name}/p/{file name}\"}\n\n</code></pre>\n<blockquote>\n<p>If a user has performed the requested event(s) <em>N</em> times, that user will be displayed in <em>N</em> rows in the exported file. However, since attributes always display the latest information of the user, the attributes on <em>N</em> rows will be the same. </p>\n</blockquote>\n<h3 id=\"429-too-many-requests\">429 Too Many Requests</h3>\n<p>If you exceed the rate limits, you receive an error shown below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"rejected: too many requests\"\n}\n</code></pre>\n<p>Depending on your request, you might also receive 400 Empty Partner, 400 Empty Token, or 403 Authentication Failed responses.</p>\n<h2 id=\"limitations\">Limitations</h2>\n<ul>\n<li><p>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>Only a response that states if the request is successful or failed can be received via this API. No data can be inserted.</p>\n</li>\n<li><p>The <strong>request token</strong> should be provided on the <strong>request header</strong>. If the token is incorrect, the operation will not be executed.</p>\n</li>\n<li><p>The exported data can be in CSV, Parquet or JSON formats.</p>\n</li>\n<li><p>The export link expires <strong>in 24 hours</strong> after it is ready.</p>\n</li>\n<li><p>The rate limit is <strong>1 request per day</strong>. The API can be called <strong>only once</strong> in 24 hours with respect to the UTC time zone. The limitation timeline resets at UTC 00:00.</p>\n</li>\n<li><p>The value of X-PARTNER-NAME header should be <strong>lowercase.</strong></p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","raw","v1","export"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d68a7b61-d8dd-4684-924f-507aed95cb62"},{"name":"Export app survey results with raw user data","id":"57dcfeef-7e38-4e3c-8e15-f40cb3b0dbe0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-PARTNER-NAME","value":"","description":"<p>This is your partner name. Navigate to Inone &gt; Inone Settings &gt; Account Preferences to copy your partner name.</p>\n","type":"text"},{"key":"X-REQUEST-TOKEN","value":"","description":"<p>This key is required to authorize your request. Navigate to Inone &gt; Inone Settings &gt; Integration Settings to generate your request token (API key).</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>This header specifies the media type of the resource.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n   \"segment\": {\n        \"segment_id\": 123456789\n    },\n   \"attributes\":[\n        \"iid\",\n        \"udid\",\n        \"pn\",\n        \"uuid\",\n        \"em\",\n        \"app_version\",\n        \"mo\",\n        \"ov\"\n    ],\n   \"events\":{\n      \"start_date\":1606311893,\n      \"end_date\":1611582293,\n      \"wanted\":[\n         {\n            \"event_name\":\"survey_result\",\n            \"params\":[\n               \"timestamp\",\n               \"answer\",\n               \"camp_id\",\n               \"question\",\n               \"variant_id\"\n            ]\n         }\n      ]\n   },\n   \"format\":\"parquet\",\n   \"hook\":\"xyz.test.com\"\n}"},"url":"https://unification.useinsider.com/api/raw/v1/export","description":"<p><a href=\"https://developers.useinsider.com/#e9de126f-c86d-4888-8d28-1ddfa12a3c19\">Export Raw User Data API </a>  prepares the raw data for events and attributes together, and also allows you to export <a href=\"https://academy.useinsider.com/docs/app-survey\">App Survey</a> results for multiple requested events and attributes of a user (e.g. name, phone number, age, city, etc.) into Insider's AWS S3 bucket. The request returns a link to partner's webhook endpoint, and this link enables you to have access to the raw user data and transfer it to your end.</p>\n<p>When a user sees an app template, this action triggers the <code>survey_result</code> event respectively along with its <code>timestamp</code>, <code>answer</code>, <code>camp ID</code>, <code>question</code>, and <code>variant ID</code> event parameters. These events and their parameters can be listed on the respective user's <a href=\"https://academy.useinsider.com/docs/what-does-a-user-profile-offer#events\">User Profile</a>.</p>\n<blockquote>\n<p><strong>Suggested Reading</strong>: <a href=\"https://academy.useinsider.com/docs/understanding-events-attributes\">Understanding Events and Attributes</a> </p>\n</blockquote>\n<p>You should provide a <strong>webhook endpoint</strong> in the request to be notified when the export link is ready. After sending a request, your webhook endpoint receives an export link as follows to have access to the raw user data.</p>\n<p><code>https://insider-data-export.useinsider.com/{partner name}/p/{file name}</code></p>\n<p>You can export raw user data in the following use cases:</p>\n<ul>\n<li>Analyze user information using a business intelligence tool.</li>\n<li>Sync the data that you want via daily jobs.</li>\n</ul>\n<h2 id=\"body-parameters\">Body Parameters</h2>\n<p>Before starting the implementation, make sure to share the following information with your Insider Technical Account Manager:</p>\n<ul>\n<li>A webhook endpoint that will be notified when the export link is ready</li>\n<li>A preferred format: CSV or Parquet</li>\n<li>A list of attributes, events, and event parameters that you want to export</li>\n<li>A dynamic segment that you want to export</li>\n</ul>\n<p>You can consult your Insider Technical Account Manager on which parameters to add in the request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Data Type</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>segment</td>\n<td>Segment ID of the user filter. To find your dynamic segment ID, navigate to <strong>Audience</strong> &gt; <strong>Segments</strong> &gt; <strong>Saved Segments &gt; Dynamic Segments</strong>. Click on the Segment whose ID you want to get. You can see it on the top right corner on the summary page. Refer <a href=\"https://academy.useinsider.com/docs/saved-segments#dynamic-segments-page\">here</a> for further information.</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>attributes</td>\n<td>Array of attributes</td>\n<td>Array (of string)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>events</td>\n<td>Array of events</td>\n<td>Object</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>Beginning of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>End of the date range for the wanted events</td>\n<td>Number</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>wanted</td>\n<td>Object of the wanted events</td>\n<td>Array</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>event_name</td>\n<td>Name of the event</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>params</td>\n<td>Event parameters of the event</td>\n<td>Array (of string)</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>format</td>\n<td>The export format</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>hook</td>\n<td>Your webhook endpoint</td>\n<td>String</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"sample-body\">Sample Body</h2>\n<p>The sample below displays a request to get the app template results along with raw user data (e.g. insider ID (iid), unique device ID (udid), phone number (pn), unique user ID (uuid), email (em), app version, model (mo), device software version (ov)).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"segment\": {\n        \"segment_id\": 123456789\n    },\n   \"attributes\":[\n        \"iid\",\n        \"udid\",\n        \"pn\",\n        \"uuid\",\n        \"em\",\n        \"app_version\",\n        \"mo\",\n        \"ov\"\n    ],\n   \"events\":{\n      \"start_date\":1606311893,\n      \"end_date\":1611582293,\n      \"wanted\":[\n         {\n            \"event_name\":\"survey_result\",\n            \"params\":[\n               \"timestamp\",\n               \"answer\",\n               \"camp_id\",\n               \"question\",\n               \"variant_id\"\n            ]\n         }\n      ]\n   },\n   \"format\":\"parquet\",\n   \"hook\":\"xyz.test.com\"\n}\n\n</code></pre>\n<h2 id=\"sample-responses\">Sample Responses</h2>\n<h3 id=\"200-ok\">200 OK</h3>\n<p>When the data is ready to download, you will receive the export link on your webhook URL as displayed below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"url\":\"https://insider-data-export.useinsider.com/{partner name}/p/{file name}\"}\n\n</code></pre>\n<blockquote>\n<p>If a user has performed the requested event(s) <em>N</em> times, that user will be displayed in <em>N</em> rows in the exported file. However, since attributes always display the latest information of the user, the attributes on <em>N</em> rows will be the same. </p>\n</blockquote>\n<h3 id=\"429-too-many-requests\">429 Too Many Requests</h3>\n<p>If you exceed the rate limits, you receive an error shown below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"rejected: too many requests\"\n}\n\n</code></pre>\n<p>Depending on your request, you might also receive 400 Empty Partner, 400 Empty Token, or 403 Authentication Failed responses.</p>\n<h2 id=\"limitations\">Limitations</h2>\n<ul>\n<li>All functions must be executed with a simple <strong>HTTPS POST</strong> request.</li>\n<li>Only a response that states if the request is successful or failed can be received via this API. No data can be inserted.</li>\n<li>The <strong>request token</strong> should be provided on the <strong>request header</strong>. If the token is incorrect, the operation will not be executed.</li>\n<li>The exported data can be in CSV, Parquet or JSON formats.</li>\n<li>The export link expires <strong>in 24 hours</strong> after it is ready.</li>\n<li>The rate limit is <strong>1 request per day</strong>. The API can be called <strong>only once</strong> in 24 hours with respect to the UTC time zone. The limitation timeline resets at UTC 00:00.</li>\n<li>The value of X-PARTNER-NAME header should be <strong>lowercase.</strong></li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","raw","v1","export"],"host":["unification","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"57dcfeef-7e38-4e3c-8e15-f40cb3b0dbe0"}],"id":"a7ec4d15-85ed-42f8-ae30-95e8e8f656a1","description":"<p>Mobile App Reporting APIs help you get your app push analytics, export your app push and inApp engagement reports, and export your survey results.</p>\n","_postman_id":"a7ec4d15-85ed-42f8-ae30-95e8e8f656a1"},{"name":"OnSite","item":[{"name":"Get onsite campaign analytics","id":"62883d70-3fa1-46bf-97c6-ebd43614792e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Go to InOne Settings &gt; Integration Settings &gt; API Keys to generate your token.</p>\n","type":"text"}],"url":"http://analytics.api.useinsider.com/onsite/v1/campaign","description":"<p>This API enables you to change the filter values on OnSite campaign analytics from your own back-end without using Insider’s platform.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>You need to send the filters in body parameters.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Sample Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>Specifies a 10-digit epoch start time</td>\n<td>1606669200</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>Specifies a 10-digit epoch end time</td>\n<td>1606755599</td>\n<td>No</td>\n</tr>\n<tr>\n<td>campaignReportType</td>\n<td>String</td>\n<td>The campaign report type to be used</td>\n<td>\"ab\", \"hundred\"</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>selectedGoalType</td>\n<td>String</td>\n<td>The goal type of the data</td>\n<td>“sales”, “click”, “salesFromClick”, “custom”</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>reportType</td>\n<td>String</td>\n<td>The report type for data to be fetched</td>\n<td>“detail”, “summary”</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>filters</td>\n<td>String</td>\n<td>Used for filtering campaigns</td>\n<td></td>\n<td>Yes (if you would like to get filtered results)</td>\n</tr>\n<tr>\n<td>field</td>\n<td>String</td>\n<td>Metrics used in analytics</td>\n<td>“impression”, “significance”</td>\n<td>Yes (if you add filters)</td>\n</tr>\n<tr>\n<td>operator</td>\n<td>String</td>\n<td>Used for searching for values in a given field.</td>\n<td>”gte”, “gt”, “eq”, “lt”, “lte”</td>\n<td>Yes (if you add filters)</td>\n</tr>\n<tr>\n<td>value</td>\n<td>Float</td>\n<td>The value of the field.</td>\n<td>0</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>Adding filters is only valid for all campaign stats.</p>\n<p>If you add filters parameter to body and there is no value, the request is sent with default values of the filters that you can see below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"filters\": [\n{\n\"field\": \"impression\",\n\"operator\": \"gte\",\n\"value\": 200\n},\n{\n\"field\": \"significance\",\n\"operator\": \"gte\",\n\"value\": 0\n}\n]\n\n</code></pre>\n<p>Before sending the request, make sure to replace the authorization value with your own OnSite Campaign Analytics API key.</p>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"details\": [\n            {\n                \"activeDays\": 239,\n                \"averageOrderValue\": 260.53068340306834,\n                \"averageOrderValueUplift\": 0.2435810228696742,\n                \"bayesianSignificance\": 0.9999,\n                \"builderType\": \"custom\",\n                \"campaignId\": 8,\n                \"campaignName\": \"My campaign\",\n                \"clickConversion\": 19598,\n                \"clickThroughRate\": 0.19069767441860466,\n                \"conversionRateUplift\": 0.4216142270861831,\n                \"goalId\": 0,\n                \"impression\": 102770,\n                \"incrementalConversion\": 1701.150115473441,\n                \"incrementalRevenue\": 649101.4595842956,\n                \"revenue\": 1494404,\n                \"revenueFromClick\": 373601,\n                \"salesConversion\": 5736,\n                \"salesConversionRate\": 0.05581395348837209,\n                \"salesFromClick\": 1434,\n                \"selectedGoalConversion\": 5736,\n                \"selectedGoalConversionRate\": 0.05581395348837209,\n                \"selectedGoalId\": 0,\n                \"significance\": 0.9999199999999999\n            },\n            {\n                \"activeDays\": 239,\n                \"averageOrderValue\": 227.98419339841934,\n                \"averageOrderValueUplift\": 0.24369133790924957,\n                \"bayesianSignificance\": 0.9999,\n                \"builderType\": \"custom\",\n                \"campaignId\": 20,\n                \"campaignName\": \"My amazing campaign\",\n                \"clickConversion\": 26768,\n                \"clickThroughRate\": 0.2196078431372549,\n                \"conversionRateUplift\": 0.39276018099547527,\n                \"goalId\": 0,\n                \"impression\": 121890,\n                \"incrementalConversion\": 1213.1695906432751,\n                \"incrementalRevenue\": 414566.7134502925,\n                \"revenue\": 980788,\n                \"revenueFromClick\": 217953,\n                \"salesConversion\": 4302,\n                \"salesConversionRate\": 0.03529411764705882,\n                \"salesFromClick\": 956,\n                \"selectedGoalConversion\": 4302,\n                \"selectedGoalConversionRate\": 0.03529411764705882,\n                \"selectedGoalId\": 0,\n                \"significance\": 0.9999199999999999\n            }\n        ],\n        \"goalIdList\": [\n            1001362,\n            1001365,\n            1001368\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we received an invalid request. The start date cannot be after the end date.</p>\n<h4 id=\"406-not-acceptable-request\">406 Not Acceptable Request</h4>\n<p>Sorry, we received an invalid request. We are able to provide the analytics data for only the last 1 year.</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with an <strong>HTTPSPOST</strong> request.</li>\n<li>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>You can send 100 requests/per minute with the same API key. If you exceed the rate limit, you will receive a 429 error.</li>\n</ul>\n","urlObject":{"protocol":"http","path":["onsite","v1","campaign"],"host":["analytics","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Specifies a 10-digit epoch start time</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"disabled":true,"description":{"content":"<p>Specifies a 10-digit epoch end time</p>\n","type":"text/plain"},"key":"endTime","value":"int64"},{"disabled":true,"description":{"content":"<p>Required. Your campaign builder ID</p>\n","type":"text/plain"},"key":"campaignBuilderId","value":"integer"}],"variable":[]}},"response":[{"id":"0958084a-b9c4-41d7-99c5-3bab6638d0cd","name":"Get analytics with campaign builder ID","originalRequest":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"This key is required to authorize your request. Go to InOne Settings > Integration Settings > API Keys to generate your token.","type":"text"}],"url":{"raw":"http://analytics.api.useinsider.com/onsite/v1/campaign?startTime=1672592719&endTime=1683738339&campaignBuilderId=68","protocol":"http","host":["analytics","api","useinsider","com"],"path":["onsite","v1","campaign"],"query":[{"key":"startTime","value":"1672592719","description":"Specifies a 10-digit epoch start time"},{"key":"endTime","value":"1683738339","description":"Specifies a 10-digit epoch end time"},{"key":"campaignBuilderId","value":"68","description":"Your campaign builder ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 10 May 2023 17:11:38 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Origin","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7c53cd6f9c1c38f9-IAD","enabled":true},{"key":"Content-Encoding","value":"gzip","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"detail\": {\n            \"click\": {\n                \"98\": [\n                    {\n                        \"averageOrderValue\": 0,\n                        \"averageOrderValueUplift\": 0,\n                        \"bayesianSignificance\": 0,\n                        \"campaignId\": 98,\n                        \"campaignName\": \"My campaign\",\n                        \"conversion\": 0,\n                        \"conversionRate\": 0,\n                        \"conversionRateUplift\": 0,\n                        \"goal\": \"click\",\n                        \"goalConversion\": 0,\n                        \"goalConversionRate\": 0,\n                        \"impression\": 2325,\n                        \"incrementalConversion\": 0,\n                        \"incrementalRevenue\": 0,\n                        \"leadCount\": 0,\n                        \"platform\": \"all\",\n                        \"revenue\": 0,\n                        \"salesConversion\": 0,\n                        \"salesConversionRate\": 0,\n                        \"significance\": 0\n                    }\n                ],\n                \"99\": [\n                    {\n                        \"averageOrderValue\": 0,\n                        \"averageOrderValueUplift\": 0,\n                        \"bayesianSignificance\": 0.9999,\n                        \"campaignId\": 99,\n                        \"campaignName\": \"My amazing campaign\",\n                        \"conversion\": 364,\n                        \"conversionRate\": 0.023144910027341516,\n                        \"conversionRateUplift\": 0,\n                        \"goal\": \"click\",\n                        \"goalConversion\": 364,\n                        \"goalConversionRate\": 0.023144910027341516,\n                        \"impression\": 15727,\n                        \"incrementalConversion\": 364,\n                        \"incrementalRevenue\": 0,\n                        \"leadCount\": 0,\n                        \"platform\": \"all\",\n                        \"revenue\": 0,\n                        \"salesConversion\": 0,\n                        \"salesConversionRate\": 0,\n                        \"significance\": 0.9999\n                    }\n                ]\n            },\n            \"sales\": {\n                \"98\": [\n                    {\n                        \"averageOrderValue\": 0,\n                        \"averageOrderValueUplift\": 0,\n                        \"bayesianSignificance\": 0.8702,\n                        \"campaignId\": 98,\n                        \"campaignName\": \"My campaign\",\n                        \"conversion\": 0,\n                        \"conversionRate\": 0,\n                        \"conversionRateUplift\": 0,\n                        \"goal\": \"sales\",\n                        \"goalConversion\": 0,\n                        \"goalConversionRate\": 0,\n                        \"impression\": 2325,\n                        \"incrementalConversion\": 0,\n                        \"incrementalRevenue\": 0,\n                        \"leadCount\": 0,\n                        \"platform\": \"all\",\n                        \"revenue\": 0,\n                        \"salesConversion\": 0,\n                        \"salesConversionRate\": 0,\n                        \"significance\": 0\n                    }\n                ],\n                \"99\": [\n                    {\n                        \"averageOrderValue\": 0,\n                        \"averageOrderValueUplift\": 0,\n                        \"bayesianSignificance\": 0.1297,\n                        \"campaignId\": 99,\n                        \"campaignName\": \"My amazing campaign\",\n                        \"conversion\": 0,\n                        \"conversionRate\": 0,\n                        \"conversionRateUplift\": 0,\n                        \"goal\": \"sales\",\n                        \"goalConversion\": 0,\n                        \"goalConversionRate\": 0,\n                        \"impression\": 15727,\n                        \"incrementalConversion\": 0,\n                        \"incrementalRevenue\": 0,\n                        \"leadCount\": 0,\n                        \"platform\": \"all\",\n                        \"revenue\": 0,\n                        \"salesConversion\": 0,\n                        \"salesConversionRate\": 0,\n                        \"significance\": 0\n                    }\n                ]\n            },\n            \"salesFromClick\": {\n                \"98\": [\n                    {\n                        \"averageOrderValue\": 0,\n                        \"averageOrderValueUplift\": 0,\n                        \"bayesianSignificance\": 0.8702,\n                        \"campaignId\": 98,\n                        \"campaignName\": \"My campaign\",\n                        \"conversion\": 0,\n                        \"conversionRate\": 0,\n                        \"conversionRateUplift\": 0,\n                        \"goal\": \"salesFromClick\",\n                        \"goalConversion\": 0,\n                        \"goalConversionRate\": 0,\n                        \"impression\": 2325,\n                        \"incrementalConversion\": 0,\n                        \"incrementalRevenue\": 0,\n                        \"leadCount\": 0,\n                        \"platform\": \"all\",\n                        \"revenue\": 0,\n                        \"salesConversion\": 0,\n                        \"salesConversionRate\": 0,\n                        \"significance\": 0\n                    }\n                ],\n                \"99\": [\n                    {\n                        \"averageOrderValue\": 0,\n                        \"averageOrderValueUplift\": 0,\n                        \"bayesianSignificance\": 0.1297,\n                        \"campaignId\": 99,\n                        \"campaignName\": \"My amazing campaign\",\n                        \"conversion\": 0,\n                        \"conversionRate\": 0,\n                        \"conversionRateUplift\": 0,\n                        \"goal\": \"salesFromClick\",\n                        \"goalConversion\": 0,\n                        \"goalConversionRate\": 0,\n                        \"impression\": 15727,\n                        \"incrementalConversion\": 0,\n                        \"incrementalRevenue\": 0,\n                        \"leadCount\": 0,\n                        \"platform\": \"all\",\n                        \"revenue\": 0,\n                        \"salesConversion\": 0,\n                        \"salesConversionRate\": 0,\n                        \"significance\": 0\n                    }\n                ]\n            }\n        },\n        \"summary\": {\n            \"98\": 64,\n            \"99\": 87\n        }\n    }\n}"}],"_postman_id":"62883d70-3fa1-46bf-97c6-ebd43614792e"},{"name":"Get onsite overall analytics","id":"a1ee4686-a07a-4317-9e1c-90a611f9016c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"<p>This key is required to authorize your request. Go to InOne Settings &gt; Integration Settings &gt; API Keys to generate your token.</p>\n","type":"text"}],"url":"http://analytics.api.useinsider.com/onsite/v1/all","description":"<p>This API enables you to change the filter values on OnSite campaign analytics from your own back-end without using Insider’s platform.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>You need to send the filters in body parameters.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Sample Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>Specifies a 10-digit epoch start time</td>\n<td>1606669200</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>Specifies a 10-digit epoch end time</td>\n<td>1606755599</td>\n<td>No</td>\n</tr>\n<tr>\n<td>campaignReportType</td>\n<td>String</td>\n<td>The campaign report type to be used</td>\n<td>\"ab\", \"hundred\"</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>selectedGoalType</td>\n<td>String</td>\n<td>The goal type of the data</td>\n<td>“sales”, “click”, “salesFromClick”, “custom”</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>reportType</td>\n<td>String</td>\n<td>The report type for data to be fetched</td>\n<td>“detail”, “summary”</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>filters</td>\n<td>String</td>\n<td>Used for filtering campaigns</td>\n<td></td>\n<td>Yes (if you would like to get filtered results)</td>\n</tr>\n<tr>\n<td>field</td>\n<td>String</td>\n<td>Metrics used in analytics</td>\n<td>“impression”, “significance”</td>\n<td>Yes (if you add filters)</td>\n</tr>\n<tr>\n<td>operator</td>\n<td>String</td>\n<td>Used for searching for values in a given field.</td>\n<td>”gte”, “gt”, “eq”, “lt”, “lte”</td>\n<td>Yes (if you add filters)</td>\n</tr>\n<tr>\n<td>value</td>\n<td>Float</td>\n<td>The value of the field.</td>\n<td>0</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>Adding filters is only valid for all campaign stats.</p>\n<p>If you add filters parameter to body and there is no value, the request is sent with default values of the filters that you can see below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"filters\": [\n{\n\"field\": \"impression\",\n\"operator\": \"gte\",\n\"value\": 200\n},\n{\n\"field\": \"significance\",\n\"operator\": \"gte\",\n\"value\": 0\n}\n]\n\n</code></pre>\n<p>Before sending the request, make sure to replace the authorization value with your own OnSite Campaign Analytics API key.</p>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"details\": [\n            {\n                \"activeDays\": 239,\n                \"averageOrderValue\": 260.53068340306834,\n                \"averageOrderValueUplift\": 0.2435810228696742,\n                \"bayesianSignificance\": 0.9999,\n                \"builderType\": \"custom\",\n                \"campaignId\": 8,\n                \"campaignName\": \"My campaign\",\n                \"clickConversion\": 19598,\n                \"clickThroughRate\": 0.19069767441860466,\n                \"conversionRateUplift\": 0.4216142270861831,\n                \"goalId\": 0,\n                \"impression\": 102770,\n                \"incrementalConversion\": 1701.150115473441,\n                \"incrementalRevenue\": 649101.4595842956,\n                \"revenue\": 1494404,\n                \"revenueFromClick\": 373601,\n                \"salesConversion\": 5736,\n                \"salesConversionRate\": 0.05581395348837209,\n                \"salesFromClick\": 1434,\n                \"selectedGoalConversion\": 5736,\n                \"selectedGoalConversionRate\": 0.05581395348837209,\n                \"selectedGoalId\": 0,\n                \"significance\": 0.9999199999999999\n            },\n            {\n                \"activeDays\": 239,\n                \"averageOrderValue\": 227.98419339841934,\n                \"averageOrderValueUplift\": 0.24369133790924957,\n                \"bayesianSignificance\": 0.9999,\n                \"builderType\": \"custom\",\n                \"campaignId\": 20,\n                \"campaignName\":\"My amazing campaign\",\n                \"clickConversion\": 26768,\n                \"clickThroughRate\": 0.2196078431372549,\n                \"conversionRateUplift\": 0.39276018099547527,\n                \"goalId\": 0,\n                \"impression\": 121890,\n                \"incrementalConversion\": 1213.1695906432751,\n                \"incrementalRevenue\": 414566.7134502925,\n                \"revenue\": 980788,\n                \"revenueFromClick\": 217953,\n                \"salesConversion\": 4302,\n                \"salesConversionRate\": 0.03529411764705882,\n                \"salesFromClick\": 956,\n                \"selectedGoalConversion\": 4302,\n                \"selectedGoalConversionRate\": 0.03529411764705882,\n                \"selectedGoalId\": 0,\n                \"significance\": 0.9999199999999999\n            }\n        ],\n        \"goalIdList\": [\n            1001362,\n            1001365,\n            1001368\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we received an invalid request. The start date cannot be after the end date.</p>\n<h4 id=\"406-not-acceptable-request\">406 Not Acceptable Request</h4>\n<p>Sorry, we received an invalid request. We are able to provide the analytics data for only the last 1 year.</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with an <strong>HTTPSPOST</strong> request.</li>\n<li>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>This API provides data for a 1 year-range.</li>\n<li>You can send 100 requests/per minute with the same API key. If you exceed the rate limit, you will receive a 429 error.</li>\n</ul>\n","urlObject":{"protocol":"http","path":["onsite","v1","all"],"host":["analytics","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Specifies a 10-digit epoch start time</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"disabled":true,"description":{"content":"<p>Specifies a 10-digit epoch end time</p>\n","type":"text/plain"},"key":"endTime","value":"int64"},{"disabled":true,"description":{"content":"<p>Required. Your campaign report time. Its values can be \"ab\", \"hundred\".</p>\n","type":"text/plain"},"key":"campaignReportType","value":"string"},{"disabled":true,"description":{"content":"<p>Required. Your goal type of the data. Its values can be \"sales\", \"click\", \"salesFromClick\".</p>\n","type":"text/plain"},"key":"selectedGoalType","value":"string"},{"disabled":true,"description":{"content":"<p>Required. Your report type for the data to be fetched. Its values can be \"detail\", \"summary\".</p>\n","type":"text/plain"},"key":"reportType","value":"string"}],"variable":[]}},"response":[{"id":"2ddf1b0c-81a3-4647-be29-4e98b8670aeb","name":"Get click goal for ab campaigns","originalRequest":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"","description":"This key is required to authorize your request. Go to InOne Settings > Integration Settings > API Keys to generate your token.","type":"text"}],"url":{"raw":"http://analytics.api.useinsider.com/onsite/v1/all?startTime=1672592719&endTime=1683738339&campaignReportType=ab&selectedGoalType=click&reportType=detail","protocol":"http","host":["analytics","api","useinsider","com"],"path":["onsite","v1","all"],"query":[{"key":"startTime","value":"1672592719","description":"Specifies a 10-digit epoch start time"},{"key":"endTime","value":"1683738339","description":"Specifies a 10-digit epoch end time"},{"key":"campaignReportType","value":"ab","description":"Your campaign report time. Its values can be \"ab\", \"hundred\"."},{"key":"selectedGoalType","value":"click","description":"Your goal type of the data. Its values can be \"sales\", \"click\", \"salesFromClick\"."},{"key":"reportType","value":"detail","description":"Your report type for the data to be fetched. Its values can be \"detail\", \"summary\"."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 10 May 2023 17:09:22 GMT","enabled":true},{"key":"Content-Type","value":"application/json; charset=UTF-8","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Origin","enabled":true},{"key":"CF-Cache-Status","value":"DYNAMIC","enabled":true},{"key":"Server","value":"cloudflare","enabled":true},{"key":"CF-RAY","value":"7c53ca19de3081df-IAD","enabled":true},{"key":"Content-Encoding","value":"gzip","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"details\": [\n            {\n                \"activeDays\": 87,\n                \"averageOrderValue\": 0,\n                \"averageOrderValueUplift\": 0,\n                \"bayesianSignificance\": 0.9999,\n                \"builderType\": \"custom\",\n                \"campaignId\": 99,\n                \"campaignName\": \"My campaign\",\n                \"clickConversion\": 364,\n                \"clickThroughRate\": 0.023144910027341516,\n                \"conversionRateUplift\": 0,\n                \"goalId\": 0,\n                \"impression\": 15727,\n                \"incrementalConversion\": 364,\n                \"incrementalRevenue\": 0,\n                \"revenue\": 0,\n                \"revenueFromClick\": 0,\n                \"salesConversion\": 0,\n                \"salesConversionRate\": 0,\n                \"salesFromClick\": 0,\n                \"selectedGoalConversion\": 364,\n                \"selectedGoalConversionRate\": 0.023144910027341516,\n                \"selectedGoalId\": 0,\n                \"significance\": 0.9999\n            },\n            {\n                \"activeDays\": 19,\n                \"averageOrderValue\": 0,\n                \"averageOrderValueUplift\": 0,\n                \"bayesianSignificance\": 0.2214,\n                \"builderType\": \"custom\",\n                \"campaignId\": 101,\n                \"campaignName\": \"My amazing campaign\",\n                \"clickConversion\": 3,\n                \"clickThroughRate\": 0.0032258064516129032,\n                \"conversionRateUplift\": 0,\n                \"goalId\": 0,\n                \"impression\": 930,\n                \"incrementalConversion\": 3,\n                \"incrementalRevenue\": 0,\n                \"revenue\": 0,\n                \"revenueFromClick\": 0,\n                \"salesConversion\": 0,\n                \"salesConversionRate\": 0,\n                \"salesFromClick\": 0,\n                \"selectedGoalConversion\": 3,\n                \"selectedGoalConversionRate\": 0.0032258064516129032,\n                \"selectedGoalId\": 0,\n                \"significance\": 0.3328\n            }\n        ],\n        \"goalIdList\": [\n            39,\n            40,\n            32,\n            41,\n            38\n        ]\n    }\n}"}],"_postman_id":"a1ee4686-a07a-4317-9e1c-90a611f9016c"},{"name":"Change filter values","id":"8c1e75b8-8d48-4159-a138-6b3d9ac60559","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"","type":"text"}],"url":"analytics.api.useinsider.com/onsite/v2/all","description":"<p>This API enables you to change the filter values on OnSite campaign analytics from your own back-end without using Insider’s platform.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<p>You need to send the filters in body parameters.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Sample Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>Specifies a 10-digit epoch start time</td>\n<td>1606669200</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>Specifies a 10-digit epoch end time</td>\n<td>1606755599</td>\n<td>No</td>\n</tr>\n<tr>\n<td>campaignReportType</td>\n<td>String</td>\n<td>The campaign report type to be used</td>\n<td>\"ab\", \"hundred\"</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>selectedGoalType</td>\n<td>String</td>\n<td>The goal type of the data</td>\n<td>“sales”, “click”, “salesFromClick”, “custom”</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>reportType</td>\n<td>String</td>\n<td>The report type for data to be fetched</td>\n<td>“detail”, “summary”</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>filters</td>\n<td>String</td>\n<td>Used for filtering campaigns</td>\n<td></td>\n<td>Yes (if you would like to get filtered results)</td>\n</tr>\n<tr>\n<td>field</td>\n<td>String</td>\n<td>Metrics used in analytics</td>\n<td>“impression”, “significance”</td>\n<td>Yes (if you add filters)</td>\n</tr>\n<tr>\n<td>operator</td>\n<td>String</td>\n<td>Used for searching for values in a given field.</td>\n<td>”gte”, “gt”, “eq”, “lt”, “lte”</td>\n<td>Yes (if you add filters)</td>\n</tr>\n<tr>\n<td>value</td>\n<td>Float</td>\n<td>The value of the field.</td>\n<td>0</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>Adding filters is only valid for all campaign stats.</p>\n<p>If you add filters parameter to body and there is no value, the request is sent with default values of the filters that you can see below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"startTime\": 1646611200,\n    \"endTime\": 1667222349,\n    \"campaignReportType\": \"ab\",\n    \"selectedGoalType\": \"sales\",\n    \"reportType\": \"detail\",\n    \"filters\": [\n        {\n            \"field\": \"impression\",\n            \"operator\": \"gte\",\n            \"value\": 90000\n        },\n         {\n            \"field\": \"significance\",\n            \"operator\": \"gte\",\n            \"value\": 0.9\n        }\n    ]\n}\n\n</code></pre>\n<p>Before sending the request, make sure to replace the authorization value with your own OnSite Campaign Analytics API key.</p>\n<h3 id=\"sample-responses\">Sample Responses</h3>\n<h4 id=\"200-ok\">200 OK</h4>\n<p>The following response returns if the request is successful.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"details\": [\n            {\n                \"activeDays\": 239,\n                \"averageOrderValue\": 260.53068340306834,\n                \"averageOrderValueUplift\": 0.2435810228696742,\n                \"bayesianSignificance\": 0.9999,\n                \"builderType\": \"custom\",\n                \"campaignId\": 8,\n                \"campaignName\": \"My campaign\",\n                \"clickConversion\": 19598,\n                \"clickThroughRate\": 0.19069767441860466,\n                \"conversionRateUplift\": 0.4216142270861831,\n                \"goalId\": 0,\n                \"impression\": 102770,\n                \"incrementalConversion\": 1701.150115473441,\n                \"incrementalRevenue\": 649101.4595842956,\n                \"revenue\": 1494404,\n                \"revenueFromClick\": 373601,\n                \"salesConversion\": 5736,\n                \"salesConversionRate\": 0.05581395348837209,\n                \"salesFromClick\": 1434,\n                \"selectedGoalConversion\": 5736,\n                \"selectedGoalConversionRate\": 0.05581395348837209,\n                \"selectedGoalId\": 0,\n                \"significance\": 0.9999199999999999\n            },\n            {\n                \"activeDays\": 239,\n                \"averageOrderValue\": 227.98419339841934,\n                \"averageOrderValueUplift\": 0.24369133790924957,\n                \"bayesianSignificance\": 0.9999,\n                \"builderType\": \"custom\",\n                \"campaignId\": 20,\n                \"campaignName\": \"My amazing campaign\",\n                \"clickConversion\": 26768,\n                \"clickThroughRate\": 0.2196078431372549,\n                \"conversionRateUplift\": 0.39276018099547527,\n                \"goalId\": 0,\n                \"impression\": 121890,\n                \"incrementalConversion\": 1213.1695906432751,\n                \"incrementalRevenue\": 414566.7134502925,\n                \"revenue\": 980788,\n                \"revenueFromClick\": 217953,\n                \"salesConversion\": 4302,\n                \"salesConversionRate\": 0.03529411764705882,\n                \"salesFromClick\": 956,\n                \"selectedGoalConversion\": 4302,\n                \"selectedGoalConversionRate\": 0.03529411764705882,\n                \"selectedGoalId\": 0,\n                \"significance\": 0.9999199999999999\n            }\n        ],\n        \"goalIdList\": [\n            1001362,\n            1000090,\n            1001132,\n            1000781,\n            1001436,\n            1000768,\n            1000030,\n            1001092,\n            1000718,\n            1000594,\n            1000765,\n            1000988,\n            1000744,\n            1000742,\n            1000854,\n            1001399,\n            1000881,\n            1001088,\n            1001390,\n            1000731,\n            1001200,\n            1001121,\n            1000795,\n            1000239,\n            1000699,\n            1001389,\n            1000709,\n            1001439,\n            1001133,\n            1000852,\n            1001151,\n            1001449,\n            1001090,\n            1001120,\n            1001017,\n            1001152,\n            1001205,\n            1000948,\n            1000858,\n            1001074,\n            1000712,\n            1000774,\n            1000720,\n            1001049,\n            1000801,\n            1000786,\n            1001184,\n            1001319,\n            1000707,\n            1000743,\n            1001169,\n            1000949,\n            1000798,\n            1001019,\n            1000991,\n            1001025,\n            1000968,\n            1001323,\n            1000831,\n            1000368,\n            1000688,\n            1000713,\n            1001354,\n            1001102,\n            1000853,\n            1001172,\n            1000685,\n            1001096,\n            1000708,\n            1000797,\n            1000824,\n            1001318,\n            1001060,\n            1000916,\n            1001353,\n            1001081,\n            1001136,\n            1001016,\n            1001104,\n            1000261,\n            1000704,\n            1000755,\n            1000884,\n            1000754,\n            1000751,\n            1001029,\n            1000933,\n            1001251,\n            1000741,\n            1000244,\n            1000819,\n            1000726,\n            1001208,\n            1001440,\n            1001199,\n            1001003,\n            1001083,\n            1001437,\n            1000730,\n            1000827,\n            1000830,\n            1001113,\n            1001028,\n            1000715,\n            1000951,\n            1001014,\n            1000800,\n            1000823,\n            1001293,\n            1000820,\n            1000862,\n            1000767,\n            1001030,\n            1000193,\n            1000947,\n            1001298\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"400-bad-request\">400 Bad Request</h4>\n<p>Sorry, we’ve received an invalid request from your side. You can try again later.</p>\n<h4 id=\"400-bad-request-1\">400 Bad Request</h4>\n<p>Sorry, we received an invalid request. The start date cannot be after the end date.</p>\n<h4 id=\"406-not-acceptable-request\">406 Not Acceptable Request</h4>\n<p>Sorry, we received an invalid request. We are able to provide the analytics data for only the last 1 year.</p>\n<h4 id=\"500-internal-server-error\">500 Internal Server Error</h4>\n<p>Sorry, we couldn’t receive any response from our server. You can try again later.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>When sending your request, make sure to follow these limitations.</p>\n<ul>\n<li>All functions must be executed with an <strong>HTTPSPOST</strong> request.</li>\n<li>The <strong>x-ins-auth-key</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</li>\n<li>You can send 100 requests/per minute with the same API key. If you exceed the rate limit, you will receive a 429 error.</li>\n</ul>\n","urlObject":{"path":["onsite","v2","all"],"host":["analytics","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"disabled":true,"description":{"content":"<p>Specifies a 10-digit epoch end time.</p>\n","type":"text/plain"},"key":"endTime","value":"int64"},{"disabled":true,"description":{"content":"<p>Required. The campaign report type to be used.</p>\n","type":"text/plain"},"key":"campaignReportType","value":"string"},{"disabled":true,"description":{"content":"<p>Required. The goal type of the data.</p>\n","type":"text/plain"},"key":"selectedGoalType","value":"string"},{"disabled":true,"description":{"content":"<p>Required. The report type for data to be fetched</p>\n","type":"text/plain"},"key":"reportType","value":"string"},{"disabled":true,"description":{"content":"<p>Required. Used for filtering campaigns</p>\n","type":"text/plain"},"key":"filters","value":"string"},{"disabled":true,"description":{"content":"<p>Required. Metrics used in analytics</p>\n","type":"text/plain"},"key":"field","value":"string"},{"disabled":true,"description":{"content":"<p>Required. Used for searching for values in a given field.</p>\n","type":"text/plain"},"key":"operator","value":"string"},{"disabled":true,"description":{"content":"<p>The value of the field.</p>\n","type":"text/plain"},"key":"value","value":"float"}],"variable":[]}},"response":[],"_postman_id":"8c1e75b8-8d48-4159-a138-6b3d9ac60559"}],"id":"6665beca-4a5b-441e-afc7-6cfd310d9483","description":"<p>This API enables you to get onsite campaign of your on-site campaigns from your own back-end without using Insider’s platform.</p>\n","_postman_id":"6665beca-4a5b-441e-afc7-6cfd310d9483"},{"name":"SMS","item":[{"name":"Get SMS campaign list","id":"c2f8e5da-59e9-4a42-a771-0cc59b785d83","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-INS-AUTH-KEY","value":"1a2b3c4d5e6f","description":"<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.\n</code></pre>","type":"text"}],"url":"https://sms.useinsider.com/analytics/v1/list?Page=Integer&PerPage=Integer","description":"<p>Insider's SMS Analytics API allows you to get the SMS campaigns list from your back-end without using the Insider's InOne panel. This API returns Active, Test, Passive, Completed, and Stopped campaigns with this endpoint.</p>\n<h4 id=\"headers\">Headers</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-INS-AUTH-KEY</td>\n<td>1a2b3c4d5e6f</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"query-parameters\">Query Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n<th>Default Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Page</td>\n<td>Integer</td>\n<td>Specifies the number of pages of SMS campaigns</td>\n<td>Yes</td>\n<td>1</td>\n</tr>\n<tr>\n<td>PerPage</td>\n<td>Integer</td>\n<td>Specifies the number of SMS campaigns to be listed per page</td>\n<td>Yes</td>\n<td>10</td>\n</tr>\n</tbody>\n</table>\n</div><p>Please note that the <strong>endTime</strong> field operates on a T-1 logic:<br />- To define a time range, ensure that the <strong>endTime</strong> is set to one second before the upper limit of the range.<br />- For example, for a time range of  11-11-2024 10:00:00 to 11-11-2024  11:00:00, set the end_date to 11-11-2024  10:59:59The minimum allowed time range for requests is 1 hour. If the requested interval is shorter, the system aggregates and returns data for the entire hour. For instance, a 30-minute request will still yield data for the full hour.</p>\n<h4 id=\"sample-query\">Sample Query</h4>\n<p>Before sending the request, make sure to replace the authorization value with your own API key.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://sms.useinsider.com/analytics/v1/list?perPage=10&amp;page=1' \\\n--header 'x-ins-auth-key:1a2b3c4d5e6f \\'\n\n</code></pre>\n<p>Campaigns are listed in order from newest to oldest.</p>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 Ok</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"current_page\":1,\n   \"data\":[\n      {\n         \"campaignId\":12692,\n         \"campaignName\":\"Sample Campaign 3\",\n         \"startTime\":1727770020,\n         \"status\":\"completed\"\n      },\n      {\n         \"campaignId\":12691,\n         \"campaignName\":\"Sample Campaign 2\",\n         \"startTime\":1727770260,\n         \"status\":\"completed\"\n      },\n      {\n         \"campaignId\":12689,\n         \"campaignName\":\"Sample Campaign 1\",\n         \"startTime\":1727770356,\n         \"status\":\"completed\"\n      },\n   ],\n   \"first_page_url\":\"https://sms.useinsider.com/analytics/v1/list?perPage=10&amp;page=1\",\n   \"from\":1,\n   \"last_page\":160,\n   \"last_page_url\":\"https://sms.useinsider.com/analytics/v1/list?perPage=10&amp;page=160\",\n   \"next_page_url\":\"https://sms.useinsider.com/analytics/v1/list?perPage=10&amp;page=2\",\n   \"per_page\":10,\n   \"prev_page_url\":null,\n   \"to\":10,\n   \"totalCampaign\":1596 }\n\n</code></pre>\n<ul>\n<li><p><strong>401:</strong> Unauthorized request. Please make sure of your authorization key correctness</p>\n</li>\n<li><p><strong>422:</strong> Your data is not valid.</p>\n</li>\n</ul>\n<h4 id=\"limitations\">Limitations</h4>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>X-INS-AUTH-KEY</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a <strong>1-year</strong> range.</p>\n</li>\n<li><p>You can send <strong>100 requests per minute</strong> with the same API Key. If you exceed the rate limit, the <strong>perPage</strong> value should be between <strong>1-100</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["analytics","v1","list"],"host":["sms","useinsider","com"],"query":[{"description":{"content":"<p>Specifies the number of pages of SMS campaigns</p>\n","type":"text/plain"},"key":"Page","value":"Integer"},{"description":{"content":"<p>Specifies the number of pages of SMS campaigns</p>\n","type":"text/plain"},"key":"PerPage","value":"Integer"}],"variable":[]}},"response":[],"_postman_id":"c2f8e5da-59e9-4a42-a771-0cc59b785d83"},{"name":"Get SMS campaign analytics","id":"4f3a83e0-d4aa-4fe2-8f4d-c446b6c7c902","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"campaignId\": 11242\n}","options":{"raw":{"language":"json"}}},"url":"https://sms.useinsider.com/analytics/v1/campaign?campaignId=Integer","description":"<p>SMS Campaign Analytics details will be listed as you send a request to this API.</p>\n<p>This API does not contain Architect Analytics.</p>\n<h4 id=\"headers\">Headers</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-INS-AUTH-KEY</td>\n<td>1a2b3c4d5e6f</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"query-parameters\">Query Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>campaignId</td>\n<td>Integer</td>\n<td>Your campaign ID that can be found on the campaign URL</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"sample-query\">Sample Query</h4>\n<p>Before sending the request, make sure: </p>\n<ul>\n<li><p>To replace the authorization value with your API key.</p>\n</li>\n<li><p>To replace the sample values in campaignID with your value in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://sms.useinsider.com/analytics/v1/campaign' \\\n--header 'x-ins-auth-key: 1a2b3c4d5e6f' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"campaignId\": 11242\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 Ok</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"targeted\":0,\n   \"messageParts\":0,\n   \"sent\":0,\n   \"dropped\":0,\n   \"delivery\":{\n      \"count\":{\n         \"delivered\":0,\n         \"undelivered\":0\n      },\n      \"rate\":\"0.00%\"\n   },\n   \"clickThrough\":{\n      \"clicks\":0,\n      \"rate\":\"0.00%\",\n      \"revenue\":\"0\"\n   },\n   \"conversion\":{\n      \"conversions\":0,\n      \"rate\":\"0.00%\"\n   },\n   \"unsubscribers\":{\n      \"count\":0,\n      \"rate\":\"0.00%\"\n   },\n   \"droppedMessages\":{\n      \"frequencyCapped\":{\n         \"count\":0,\n         \"rate\":\"0.00%\"\n      },\n      \"duplicates\":{\n         \"count\":0,\n         \"rate\":\"0.00%\"\n      },\n      \"internalErrors\":{\n         \"count\":0,\n         \"rate\":\"0.00%\"\n      },\n      \"countryCodeDrops\":{\n         \"count\":0,\n         \"rate\":\"0.00%\"\n      },\n      \"invalidPhoneNumbers\":{\n         \"count\":0,\n         \"rate\":\"0.00%\"\n      },\n      \"couponListDrops\":{\n         \"count\":0,\n         \"rate\":\"0.00%\"\n      },\n      \"silentHours\":{\n         \"count\":0,\n         \"rate\":\"0.00%\"\n      }\n   },\n   \"undeliveredMessages\":{\n      \"carrierViolations\":{\n         \"count\":0,\n         \"rate\":\"0.00%\",\n         \"details\":[\n         ]\n      },\n      \"hardBounces\":{\n         \"count\":0,\n         \"rate\":\"0.00%\",\n         \"details\":[\n         ]\n      },\n      \"softBounces\":{\n         \"count\":0,\n         \"rate\":\"0.00%\",\n         \"details\":[\n         ]\n      },\n      \"deliveryFailures\":{\n         \"count\":0,\n         \"rate\":\"0.00%\",\n         \"details\":[\n         ]\n      },\n      \"deliveryReportMissing\":{\n         \"count\":0,\n         \"rate\":\"0.00%\"\n      }\n   }\n}\n\n</code></pre>\n<ul>\n<li><p><strong>401:</strong> Unauthorized request. Please make sure of your authorization key correctness</p>\n</li>\n<li><p><strong>422:</strong> This campaign ID is not valid. Please be sure that your campaign ID belongs to your account.</p>\n</li>\n</ul>\n<h4 id=\"limitations\">Limitations</h4>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>X-INS-AUTH-KEY</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a <strong>1-year</strong> range.</p>\n</li>\n<li><p>You can send <strong>100 requests per minute</strong> with the same API Key. If you exceed the rate limit, the <strong>perPage</strong> value should be between <strong>1-100</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["analytics","v1","campaign"],"host":["sms","useinsider","com"],"query":[{"description":{"content":"<p>Your campaign ID that can be found on the campaign URL</p>\n","type":"text/plain"},"key":"campaignId","value":"Integer"}],"variable":[]}},"response":[],"_postman_id":"4f3a83e0-d4aa-4fe2-8f4d-c446b6c7c902"},{"name":"Get overall SMS campaign analytics","id":"4b35d7e3-f41d-4e5a-8232-0321c3e47c43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"startTime\": 1727643600,\n    \"endTime\": 1728334799\n}","options":{"raw":{"language":"json"}}},"url":"https://sms.useinsider.com/analytics/v1/overall?startTime=int64&endTime=int64","description":"<p>SMS Overall Campaign Analytics details will be listed for a given period as you send a request to this API.</p>\n<p>This API does not contain Architect Analytics.</p>\n<h4 id=\"headers\">Headers</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-INS-AUTH-KEY</td>\n<td>1a2b3c4d5e6f</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"query-parameters\">Query Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>The time campaign is being launched. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><p>Please note that the <strong>endTime</strong> field operates on a T-1 logic:<br />- To define a time range, ensure that the <strong>endTime</strong> is set to one second before the upper limit of the range.<br />- For example, for a time range of 11-11-2024 10:00:00 to 11-11-2024 11:00:00, set the end_date to 11-11-2024 10:59:59The minimum allowed time range for requests is 1 hour. If the requested interval is shorter, the system aggregates and returns data for the entire hour. For instance, a 30-minute request will still yield data for the full hour.</p>\n<h4 id=\"sample-query\">Sample Query</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your API key.</p>\n</li>\n<li><p>To replace the sample values in startTime, and endTime with your values in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://sms.useinsider.com/analytics/v1/overall' \\\n--header 'x-ins-auth-key: 1a2b3c4d5e6f' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"startTime\": 1727643600,\n    \"endTime\": 1728334799\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 Ok</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"summary\": {\n        \"targeted\": 19723,\n        \"messageParts\": 39446,\n        \"sent\": 19723,\n        \"dropped\": 0,\n        \"delivery\": {\n            \"count\": {\n                \"delivered\": 19031,\n                \"undelivered\": 692\n            },\n            \"rate\": \"96.49%\"\n        },\n        \"clickThrough\": {\n            \"clicks\": 214,\n            \"rate\": \"1.12%\",\n            \"revenue\": \"151\"\n        },\n        \"conversion\": {\n            \"conversions\": 1,\n            \"rate\": \"0.01%\"\n        },\n        \"unsubscribers\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        },\n        \"droppedMessages\": {\n            \"frequencyCapped\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"duplicates\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"internalErrors\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"countryCodeDrops\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"invalidPhoneNumbers\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"couponListDrops\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"silentHours\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            }\n        },\n        \"undeliveredMessages\": {\n            \"carrierViolations\": {\n                \"count\": 70,\n                \"rate\": \"10.12%\",\n                \"details\": {\n                    \"3032\": 69,\n                    \"3034\": 1\n                }\n            },\n            \"hardBounces\": {\n                \"count\": 11,\n                \"rate\": \"1.59%\",\n                \"details\": {\n                    \"3216\": 2,\n                    \"3221\": 9\n                }\n            },\n            \"softBounces\": {\n                \"count\": 186,\n                \"rate\": \"26.88%\",\n                \"details\": {\n                    \"3300\": 186\n                }\n            },\n            \"deliveryFailures\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\",\n                \"details\": {}\n            },\n            \"deliveryReportMissing\": {\n                \"count\": 425,\n                \"rate\": \"61.42%\"\n            }\n        }\n    },\n    \"detail\": [\n        {\n            \"campaignId\":1234,\n            \"campaignName\": \"Sample Campaign 1\",\n            \"status\": \"completed\",\n            \"startTime\": 1728381600,\n            \"endTime\": 1728382560,\n            \"targeted\": 19723,\n            \"messageParts\": 39446,\n            \"sent\": 19723,\n            \"dropped\": 0,\n            \"delivery\": {\n                \"count\": {\n                    \"delivered\": 19031,\n                    \"undelivered\": 692\n                },\n                \"rate\": \"96.49%\"\n            },\n            \"clickThrough\": {\n                \"clicks\": 214,\n                \"rate\": \"1.12%\",\n                \"revenue\": \"151\"\n            },\n            \"conversion\": {\n                \"conversions\": 1,\n                \"rate\": \"0.01%\"\n            },\n            \"unsubscribers\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"droppedMessages\": {\n                \"frequencyCapped\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"duplicates\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"internalErrors\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"countryCodeDrops\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"invalidPhoneNumbers\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"couponListDrops\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"silentHours\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                }\n            },\n            \"undeliveredMessages\": {\n                \"carrierViolations\": {\n                    \"count\": 70,\n                    \"rate\": \"10.12%\",\n                    \"details\": {\n                        \"3032\": 69,\n                        \"3034\": 1\n                    }\n                },\n                \"hardBounces\": {\n                    \"count\": 11,\n                    \"rate\": \"1.59%\",\n                    \"details\": {\n                        \"3216\": 2,\n                        \"3221\": 9\n                    }\n                },\n                \"softBounces\": {\n                    \"count\": 186,\n                    \"rate\": \"26.88%\",\n                    \"details\": {\n                        \"3300\": 186\n                    }\n                },\n                \"deliveryFailures\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\",\n                    \"details\": {}\n                },\n                \"deliveryReportMissing\": {\n                    \"count\": 425,\n                    \"rate\": \"61.42%\"\n                }\n            }\n        },\n        {\n            \"campaignId\": 12345,\n            \"campaignName\": \"Sample Campaign 2\",\n            \"status\": \"passive\",\n            \"startTime\": 1690281000,\n            \"endTime\": 2050214340,\n            \"targeted\": 0,\n            \"messageParts\": 0,\n            \"sent\": 0,\n            \"dropped\": 0,\n            \"delivery\": {\n                \"count\": {\n                    \"delivered\": 0,\n                    \"undelivered\": 0\n                },\n                \"rate\": \"0.00%\"\n            },\n            \"clickThrough\": {\n                \"clicks\": 0,\n                \"rate\": \"0.00%\",\n                \"revenue\": \"0\"\n            },\n            \"conversion\": {\n                \"conversions\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"unsubscribers\": {\n                \"count\": 0,\n                \"rate\": \"0.00%\"\n            },\n            \"droppedMessages\": {\n                \"frequencyCapped\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"duplicates\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"internalErrors\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"countryCodeDrops\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"invalidPhoneNumbers\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"couponListDrops\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                },\n                \"silentHours\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                }\n            },\n            \"undeliveredMessages\": {\n                \"carrierViolations\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\",\n                    \"details\": {}\n                },\n                \"hardBounces\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\",\n                    \"details\": {}\n                },\n                \"softBounces\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\",\n                    \"details\": {}\n                },\n                \"deliveryFailures\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\",\n                    \"details\": {}\n                },\n                \"deliveryReportMissing\": {\n                    \"count\": 0,\n                    \"rate\": \"0.00%\"\n                }\n            }\n        }\n    ]\n}\n\n</code></pre>\n<ul>\n<li><p><strong>401:</strong> Unauthorized request. Please make sure of your authorization key correctness</p>\n</li>\n<li><p><strong>422</strong></p>\n<ul>\n<li><p>The start time parameter must be earlier than the end time.</p>\n</li>\n<li><p>The start time parameter must be within the last 1 year.</p>\n</li>\n<li><p>The end time parameter must be earlier than the current time.</p>\n</li>\n<li><p>The start time parameter must be a valid integer.</p>\n</li>\n<li><p>The end time parameter must be a valid integer.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>429:</strong> Your request exceeds the limit.</p>\n</li>\n</ul>\n<h4 id=\"limitations\">Limitations</h4>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>X-INS-AUTH-KEY</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a <strong>1-year</strong> range.</p>\n</li>\n<li><p>You can send <strong>100 requests per minute</strong> with the same API Key. If you exceed the rate limit, the <strong>perPage</strong> value should be between <strong>1-100</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["analytics","v1","overall"],"host":["sms","useinsider","com"],"query":[{"description":{"content":"<p>The time campaign is being launched. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"description":{"content":"<p>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"endTime","value":"int64"}],"variable":[]}},"response":[],"_postman_id":"4b35d7e3-f41d-4e5a-8232-0321c3e47c43"},{"name":"Get Transactional SMS analytics","id":"9497ffff-69c2-4298-96f4-f78f82d08d9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"startTime\": 1727643600,\n    \"endTime\": 1728334799\n}","options":{"raw":{"language":"json"}}},"url":"https://sms.useinsider.com/analytics/v1/transactional?startTime=Int64&endTime=Int64","description":"<p>Transactional SMS Analytics details will be listed for a given time period as you send a request to this API.</p>\n<h4 id=\"headers\">Headers</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-INS-AUTH-KEY</td>\n<td>1a2b3c4d5e6f</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"query-parameters\">Query Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>The time campaign is being launched. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><p>Please note that the <strong>endTime</strong> field operates on a T-1 logic:<br />- To define a time range, ensure that the <strong>endTime</strong> is set to one second before the upper limit of the range.<br />- For example, for a time range of 11-11-2024 10:00:00 to 11-11-2024 11:00:00, set the end_date to 11-11-2024 10:59:59The minimum allowed time range for requests is 1 hour. If the requested interval is shorter, the system aggregates and returns data for the entire hour. For instance, a 30-minute request will still yield data for the full hour.</p>\n<h3 id=\"sample-query\">Sample Query</h3>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your API key.</p>\n</li>\n<li><p>To replace the sample values in startTime, and endTime with your values in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://sms.useinsider.com/analytics/v1/transactional' \\\n--header 'x-ins-auth-key: 1a2b3c4d5e6f' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"startTime\": 1727643600,\n    \"endTime\": 1728334799\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 Ok</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"messageParts\": 0,\n    \"sent\": 0,\n    \"dropped\": 0,\n    \"delivery\": {\n        \"count\": {\n            \"delivered\": 0,\n            \"undelivered\": 0\n        },\n        \"rate\": \"0.00%\"\n    },\n    \"clickThrough\": {\n        \"clicks\": 0,\n        \"rate\": \"0.00%\"\n    },\n    \"droppedMessages\": {\n        \"internalErrors\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        },\n        \"countryCodeDrops\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        },\n        \"invalidPhoneNumbers\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        }\n    },\n    \"undeliveredMessages\": {\n        \"carrierViolations\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\",\n            \"details\": {}\n        },\n        \"hardBounces\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\",\n            \"details\": {}\n        },\n        \"softBounces\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\",\n            \"details\": {}\n        },\n        \"deliveryFailures\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\",\n            \"details\": {}\n        },\n        \"deliveryReportMissing\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        }\n    }\n}\n\n</code></pre>\n<ul>\n<li><p><strong>401:</strong> Unauthorized request. Please make sure of your authorization key correctness</p>\n</li>\n<li><p><strong>422</strong></p>\n<ul>\n<li><p>The start time parameter must be earlier than the end time.</p>\n</li>\n<li><p>The start time parameter must be within the last 1 year.</p>\n</li>\n<li><p>The end time parameter must be earlier than the current time.</p>\n</li>\n<li><p>The start time parameter must be a valid integer.</p>\n</li>\n<li><p>The end time parameter must be a valid integer.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>429:</strong> Your request exceeds the limit.</p>\n</li>\n</ul>\n<h4 id=\"limitations\">Limitations</h4>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>X-INS-AUTH-KEY</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a <strong>1-year</strong> range.</p>\n</li>\n<li><p>You can send <strong>100 requests per minute</strong> with the same API Key. If you exceed the rate limit, the <strong>perPage</strong> value should be between <strong>1-100</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["analytics","v1","transactional"],"host":["sms","useinsider","com"],"query":[{"description":{"content":"<p>The time campaign is being launched. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"startTime","value":"Int64"},{"description":{"content":"<p>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"endTime","value":"Int64"}],"variable":[]}},"response":[],"_postman_id":"9497ffff-69c2-4298-96f4-f78f82d08d9c"},{"name":"Get OTP / Verify SMS analytics","id":"bcaa0068-f319-4ec5-898d-5cf28003f152","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-INS-AUTH-KEY","value":"1a2b3c4d5e6f","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"startTime\": 1727643600,\n    \"endTime\": 1728334799\n}","options":{"raw":{"language":"json"}}},"url":"https://sms.useinsider.com/analytics/v1/verify","description":"<p>SMS OTP / Verify Analytics details will be listed for a given time period as you send a request to this API.</p>\n<h4 id=\"headers\">Headers</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-INS-AUTH-KEY</td>\n<td>1a2b3c4d5e6f</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"query-parameters\">Query Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startTime</td>\n<td>int64</td>\n<td>The time campaign is being launched. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>endTime</td>\n<td>int64</td>\n<td>The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><p>Please note that the <strong>endTime</strong> field operates on a T-1 logic:<br />- To define a time range, ensure that the <strong>endTime</strong> is set to one second before the upper limit of the range.<br />- For example, for a time range of 11-11-2024 10:00:00 to 11-11-2024 11:00:00, set the end_date to 11-11-2024 10:59:59The minimum allowed time range for requests is 1 hour. If the requested interval is shorter, the system aggregates and returns data for the entire hour. For instance, a 30-minute request will still yield data for the full hour.</p>\n<h3 id=\"sample-query\">Sample Query</h3>\n<p>Before sending the request, make sure: </p>\n<ul>\n<li><p>To replace the authorization value with your API key.</p>\n</li>\n<li><p>To replace the sample values in startTime, and endTime with your values in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl --location 'https://sms.useinsider.com/analytics/v1/verify' \\\n--header 'x-ins-auth-key: 1a2b3c4d5e6f' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"startTime\": 1727643600,\n    \"endTime\": 1728334799\n}'\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 Ok</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"messageParts\": 0,\n    \"sent\": 0,\n    \"dropped\": 0,\n    \"delivery\": {\n        \"count\": {\n            \"delivered\": 0,\n            \"undelivered\": 0\n        },\n        \"rate\": \"0.00%\"\n    },\n    \"verification\": {\n        \"count\": {\n            \"verified\": 0,\n            \"unverified\": 0\n        },\n        \"rate\": \"0.00%\"\n    },\n    \"droppedMessages\": {\n        \"internalErrors\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        },\n        \"countryCodeDrops\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        },\n        \"invalidPhoneNumbers\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        }\n    },\n    \"undeliveredMessages\": {\n        \"carrierViolations\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\",\n            \"details\": {}\n        },\n        \"hardBounces\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\",\n            \"details\": {}\n        },\n        \"softBounces\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\",\n            \"details\": {}\n        },\n        \"deliveryFailures\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\",\n            \"details\": {}\n        },\n        \"deliveryReportMissing\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        }\n    },\n    \"unverifiedMessages\": {\n        \"attemptFailures\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        },\n        \"timeoutFailures\": {\n            \"count\": 0,\n            \"rate\": \"0.00%\"\n        }\n    }\n}\n\n</code></pre>\n<ul>\n<li><p><strong>401:</strong> Unauthorized request. Please make sure of your authorization key correctness</p>\n</li>\n<li><p><strong>422</strong></p>\n<ul>\n<li><p>The start time parameter must be earlier than the end time.</p>\n</li>\n<li><p>The start time parameter must be within the last 1 year.</p>\n</li>\n<li><p>The end time parameter must be earlier than the current time.</p>\n</li>\n<li><p>The start time parameter must be a valid integer.</p>\n</li>\n<li><p>The end time parameter must be a valid integer.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>429:</strong> Your request exceeds the limit.</p>\n</li>\n</ul>\n<h4 id=\"limitations\">Limitations</h4>\n<ul>\n<li><p>All functions must be executed with an <strong>HTTPS POST</strong> request.</p>\n</li>\n<li><p>The <strong>X-INS-AUTH-KEY</strong> should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.</p>\n</li>\n<li><p>This API provides data for a <strong>1-year</strong> range.</p>\n</li>\n<li><p>You can send <strong>100 requests per minute</strong> with the same API Key. If you exceed the rate limit, the <strong>perPage</strong> value should be between <strong>1-100</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["analytics","v1","verify"],"host":["sms","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Required. The time campaign is being launched. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"startTime","value":"int64"},{"disabled":true,"description":{"content":"<p>Required. The current date (today’s date on the payload). It can be customizable according to your use case. Specifies a 10-digit epoch start time.</p>\n","type":"text/plain"},"key":"endTime","value":"int64"}],"variable":[]}},"response":[],"_postman_id":"bcaa0068-f319-4ec5-898d-5cf28003f152"}],"id":"93a1d9f0-aa52-4110-9c2e-01517c49516f","_postman_id":"93a1d9f0-aa52-4110-9c2e-01517c49516f","description":""},{"name":"Architect","item":[{"name":"Get Architect Overall Analytics","id":"c3d12a7f-7169-423f-b69d-b20c6ebb2deb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"{{vault:bearer-token}}","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token. You should enter the word {{vault:bearer-token}} by the API key you generated.</p>\n","type":"text"},{"key":"Accept","value":"application/json","description":"<p>You should enter it as application/json at all times.</p>\n","type":"text"}],"url":"https://architect-analytics.api.useinsider.com/v1/overall?statDate=String","description":"<p>The Architect overall analytics endpoint provides comprehensive analytics data for all user journeys. This data includes key user metrics, journey statuses, and performance insights broken down by channels and journeys, offering a high-level overview of campaign effectiveness and user interactions.</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token. You should enter the word <em>Bearer</em> followed by the API key you generated.</td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n<td>You should enter it as <em>application/json</em> at all times.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Sample Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>statDate</td>\n<td>String</td>\n<td>Defines the date range for statistics. Format: DD/MM/YYYY - DD/MM/YYYY</td>\n<td>statDate=01/08/2024 - 30/08/2024</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>statuses</td>\n<td>Array of Strings</td>\n<td>Array filter for journey statuses. Default is <em>active</em> if not provided.  <br />Allowed values are <em>active</em>, <em>test</em>, <em>passive</em>, <em>sunset</em>.</td>\n<td>statuses[]=active&amp;statuses[]=passive</td>\n<td>No</td>\n</tr>\n<tr>\n<td>channels</td>\n<td>Array of Strings</td>\n<td>Array filter specifying which channels' analytics data to return. If not provided, all channels are included. Allowed values are <em>web-push</em>, <em>app-push</em>, <em>email</em>, <em>sms</em>, <em>whatsapp</em>, <em>in-app</em>, <em>journey-web</em>, <em>call-api</em></td>\n<td>channels[]=email&amp;channels[]=sms</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ids</td>\n<td>Array of Integers</td>\n<td>Array of journey IDs for filtering</td>\n<td>ids[]=89&amp;ids[]=90</td>\n<td>No</td>\n</tr>\n<tr>\n<td>conversionGoal</td>\n<td>Integer</td>\n<td>A number representing the conversion goal ID filter. Default is <em>0</em> which is the <em>Purchase</em> goal.</td>\n<td>conversionGoal=123</td>\n<td>No</td>\n</tr>\n<tr>\n<td>goalType</td>\n<td>Integer</td>\n<td>Attribution type for reporting. <em>0</em> for <em>Click-Through</em> attribution (default). <em>1</em> for <em>View-Through</em> attribution.</td>\n<td>0</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>The <strong>statDate</strong> parameter is essential for defining the time range for analytics. The start date must be earlier than the end date. You can select any time range, including those longer than one year or before the past year. However, if you encounter a timeout when exporting a range longer than one year, try selecting a shorter range.</p>\n<p>Use <strong>statuses</strong>, <strong>channels</strong>, <strong>ids</strong>, and <strong>conversionGoal</strong> filters to tailor your analytics queries to specific requirements.</p>\n<p>For overall analytics, you can only get the conversion metrics for one goal at a time. You can enter the <strong>goal id</strong> as a parameter to select which conversion goal you want to see the metrics. You can obtain the <strong>Goal ID</strong> either from the goal dropdown in the InOne panel or by using the <a href=\"https://academy.useinsider.com/docs/get-architect-analytics-api#conversion-goals-information\">conversion goals information</a> endpoint.</p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/image-1732693611876.png\" width=\"116\" height=\"160\" />\n\n<h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-query\">Sample Query</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your own API key.</p>\n</li>\n<li><p>To replace the sample values in parameters with your own values in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X GET \"https://architect-analytics.api.useinsider.com/v1/overall?statDate=01/08/2024 - 30/08/2024&amp;statuses[]=active&amp;channels[]=email&amp;channels[]=sms\" \\\n-H \"Authorization: {{vault:bearer-token}}\" \\\n-H \"Accept: application/json\"\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 OK</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"filterDate\": \"01/08/2024 - 30/08/2024\",\n    \"attributionType\": \"Click-Through\",\n    \"goal\": \"confirmation_page_view\",\n    \"partner\": {\n        \"exportTime\": \"11/11/2024 11:29\",\n        \"accountName\": \"shopbagg\"\n    },\n    \"statuses\": [],\n    \"journeysCount\": {\n        \"active\": 1,\n        \"passive\": 1,\n        \"sunset\": 0,\n        \"test\": 0\n    },\n    \"journeyTags\": [\n        \"Survey\",\n        \"Tag1\"\n    ],\n    \"journeyIds\": [\n        89,\n        90\n    ],\n    \"userMetrics\": {\n        \"dropped\": 282138,\n        \"exited\": 109647,\n        \"completed\": 2391841,\n        \"entered\": 2805589,\n        \"sent\": 6250485,\n        \"delivered\": 6022681,\n        \"dropRate\": 10.06,\n        \"completeRate\": 85.25,\n        \"deliveryRate\": 96.36\n    },\n    \"exitCriteria\": {\n        \"112\": {\n            \"type\": \"Event\",\n            \"name\": \"email_click\",\n            \"parameters\": [],\n            \"exited\": 58,\n            \"journeys\": [\n                {\n                    \"id\": 89,\n                    \"name\": \"Journey Name 1\"\n                }\n            ]\n        },\n        \"255\": {\n            \"type\": \"Event\",\n            \"name\": \"payment_successful\",\n            \"parameters\": [],\n            \"exited\": 14022,\n            \"journeys\": [\n                {\n                    \"id\": 90,\n                    \"name\": \"Journey Name 2\"\n                }\n            ]\n        }\n    },\n    \"performanceMetrics\": {\n        \"totalClicks\": 123137,\n        \"totalConversions\": 0,\n        \"revenue\": 0,\n        \"conversionRate\": 0,\n        \"clickThroughRate\": 2.04,\n        \"averageOrderValue\": 0\n    },\n    \"performanceOfChannels\": {\n        \"email\": {\n            \"conversions\": 0,\n            \"drops\": 15120,\n            \"delivered\": 3945177,\n            \"totalClicks\": 37067,\n            \"totalOpens\": 544420,\n            \"revenue\": 0,\n            \"uniqueClicks\": 13395,\n            \"sent\": 3975505,\n            \"uniqueOpens\": 452539,\n            \"unsubscribes\": 2392,\n            \"numberOfChannels\": 697,\n            \"averageOrderValue\": 0,\n            \"clickThroughRate\": 0.34,\n            \"dropRate\": 0.38,\n            \"conversionRate\": 0,\n            \"openRate\": 11.47,\n            \"deliveryRate\": 99.24,\n            \"unsubscribeRate\": 0.06\n        },\n        \"app-push\": {\n            \"conversions\": 0,\n            \"drops\": 0,\n            \"delivered\": 0,\n            \"totalClicks\": 63,\n            \"revenue\": 0,\n            \"sent\": 0,\n            \"numberOfChannels\": 106,\n            \"averageOrderValue\": 0,\n            \"clickThroughRate\": 0,\n            \"dropRate\": 0,\n            \"conversionRate\": 0,\n            \"deliveryRate\": 0\n        },\n        \"sms\": {\n            \"conversions\": 0,\n            \"drops\": 252852,\n            \"delivered\": 2041121,\n            \"totalClicks\": 53552,\n            \"revenue\": 0,\n            \"sent\": 2274980,\n            \"smsMessageParts\": 3049175,\n            \"unsubscribes\": 36745,\n            \"numberOfChannels\": 318,\n            \"averageOrderValue\": 0,\n            \"clickThroughRate\": 2.62,\n            \"dropRate\": 9.93,\n            \"conversionRate\": 0,\n            \"deliveryRate\": 89.72,\n            \"unsubscribeRate\": 1.8\n        },\n        \"in-app\": {\n            \"conversions\": 0,\n            \"drops\": 181,\n            \"delivered\": 36383,\n            \"totalClicks\": 32455,\n            \"revenue\": 0,\n            \"sent\": 0,\n            \"numberOfChannels\": 15,\n            \"averageOrderValue\": 0,\n            \"clickThroughRate\": 89.2,\n            \"dropRate\": 0.06,\n            \"conversionRate\": 0,\n            \"deliveryRate\": 0\n        }\n    },\n    \"performanceOfJourneys\": {\n        \"89\": {\n            \"journeyId\": 89,\n            \"journeyName\": \"Journey Name 1\",\n            \"status\": \"passive\",\n            \"averageOrderValue\": 0,\n            \"conversions\": 0,\n            \"delivered\": 0,\n            \"totalClicks\": 11,\n            \"totalOpens\": 437,\n            \"revenue\": 0,\n            \"uniqueClicks\": 11,\n            \"sent\": 0,\n            \"drops\": 0,\n            \"uniqueOpens\": 372,\n            \"smsMessageParts\": 0,\n            \"unsubscribes\": 1,\n            \"clickThroughRate\": 0,\n            \"dropRate\": 0,\n            \"conversionRate\": 0,\n            \"openRate\": 0,\n            \"deliveryRate\": 0,\n            \"unsubscribeRate\": 0\n        },\n        \"90\": {\n            \"journeyId\": 90,\n            \"journeyName\": \"Journey Name 2\",\n            \"status\": \"active\",\n            \"averageOrderValue\": 0,\n            \"conversions\": 0,\n            \"delivered\": 0,\n            \"totalClicks\": 9,\n            \"totalOpens\": 300,\n            \"revenue\": 0,\n            \"uniqueClicks\": 7,\n            \"sent\": 0,\n            \"drops\": 0,\n            \"uniqueOpens\": 125,\n            \"smsMessageParts\": 0,\n            \"unsubscribes\": 0,\n            \"clickThroughRate\": 0,\n            \"dropRate\": 0,\n            \"conversionRate\": 0,\n            \"openRate\": 0,\n            \"deliveryRate\": 0,\n            \"unsubscribeRate\": 0\n        }\n    }\n}\n\n</code></pre>\n<h5 id=\"401-unauthorized\">401 Unauthorized</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Invalid API key\"\n}\n\n</code></pre>\n<h5 id=\"422-bad-request\">422 Bad Request</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"The stat date field is required.\",\n    \"errors\": {\n        \"statDate\": [\n            \"The stat date field is required.\"\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"response-details\">Response Details</h4>\n<ul>\n<li><p><strong>id</strong>: The unique ID of the conversion goal.</p>\n</li>\n<li><p><strong>name</strong>: The name of the conversion goal.</p>\n</li>\n<li><p><strong>type</strong>: The type of conversion goal (e.g., on-event, on-attribute).</p>\n</li>\n<li><p><strong>parameters</strong>: An array detailing the conditions for the goal, such as key-value pairs with operators and value types.</p>\n</li>\n<li><p><strong>journeys</strong>: A list of journeys where the conversion goal is used, including journey IDs and names.</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>The request must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is <strong>incorrect</strong>, the operation will not be executed and an <strong>authorization error</strong> will return in the response.</p>\n</li>\n<li><p>You can send <strong>200 requests per minute</strong> with the same API Key. If you exceed the rate limit, you will receive a <strong>429 error</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","overall"],"host":["architect-analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>Defines the date range for statistics. Format: DD/MM/YYYY - DD/MM/YYYY</p>\n","type":"text/plain"},"key":"statDate","value":"String"},{"disabled":true,"description":{"content":"<p>Array filter for journey statuses. Default is active if not provided.\nAllowed values are active, test, passive, sunset.</p>\n","type":"text/plain"},"key":"statuses","value":"Array of Strings"},{"disabled":true,"description":{"content":"<p>Array filter specifying which channels' analytics data to return. If not provided, all channels are included. Allowed values are web-push, app-push, email, sms, whatsapp, in-app, journey-web, call-api</p>\n","type":"text/plain"},"key":"channels","value":"Array of Strings"},{"disabled":true,"description":{"content":"<p>Array of journey IDs for filtering</p>\n","type":"text/plain"},"key":"ids","value":"Array of Integers"},{"disabled":true,"description":{"content":"<p>A number representing the conversion goal ID filter. Default is 0 which is the Purchase goal.</p>\n","type":"text/plain"},"key":"conversionGoal","value":"Integer"},{"disabled":true,"description":{"content":"<p>Attribution type for reporting. 0 for Click-Through attribution (default). 1 for View-Through attribution.</p>\n","type":"text/plain"},"key":"goalType","value":"Integer"}],"variable":[]}},"response":[],"_postman_id":"c3d12a7f-7169-423f-b69d-b20c6ebb2deb"},{"name":"Get Architect Journey Analytics","id":"306ea458-652c-41f5-8334-b143f9e08293","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"{{vault:bearer-token}}","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token. You should enter the word {{vault:bearer-token}} by the API key you generated.</p>\n","type":"text"},{"key":"Accept","value":"application/json","description":"<p>You should enter it as application/json at all times.</p>\n","type":"text"}],"url":"https://architect-analytics.api.useinsider.com/v1/journey/{journeyId}?statDate=String","description":"<p>The Architect journey analytics endpoint provides detailed analytics for a specific journey within the Architect product. Use this endpoint to retrieve detailed analytics on a journey to monitor performance, metrics, and channel activities.</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token. You should enter the word <em>Bearer</em> followed by the API key you generated.</td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n<td>You should enter it as <em>application/json</em> at all times.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Sample Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>statDate</td>\n<td>String</td>\n<td>Defines the date range for statistics. Format: DD/MM/YYYY - DD/MM/YYYY</td>\n<td>statDate=01/08/2024 - 30/08/2024</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>conversionGoal</td>\n<td>Integer</td>\n<td>A number representing the conversion goal ID filter. Default is <em>0</em> which is the <em>Purchase</em> goal.</td>\n<td>conversionGoal=123</td>\n<td>No</td>\n</tr>\n<tr>\n<td>goalType</td>\n<td>Integer</td>\n<td>Attribution type for reporting. <em>0</em> for <em>Click-Through</em> attribution (default). <em>1</em> for <em>View-Through</em> attribution.</td>\n<td>0</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>The <strong>statDate</strong> parameter is essential for defining the time range for analytics. The start date must be earlier than the end date. You can select any time range, including those longer than one year or before the past year. However, if you encounter a timeout when exporting a range longer than one year, try selecting a shorter range.</p>\n<p>Use <strong>conversionGoal</strong> filter to tailor your analytics queries to specific requirements.</p>\n<p>For journey analytics, you can only get the conversion metrics for one goal at a time. You can enter the <strong>goal id</strong> as a parameter to select which conversion goal you want to see the metrics. You can obtain the <strong>Goal ID</strong> either from the goal dropdown in the InOne panel or by using the <a href=\"https://academy.useinsider.com/docs/get-architect-analytics-api#conversion-goals-information\">conversion goals information</a> endpoint.</p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/image-1732698455540.png\" width=\"144\" height=\"233\" />\n\n<h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-query\">Sample Query</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your own API key.</p>\n</li>\n<li><p>To replace <strong>journeyId</strong> with the specific journey's ID.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X GET \"https://architect-analytics.api.useinsider.com/v1/journey/251?statDate=01/08/2024 - 30/08/2024&amp;conversionGoal=123&amp;goalType=0\" \\\n  -H \"Authorization: {{vault:bearer-token}}\" \\\n  -H \"Accept: application/json\"\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 OK</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"filterDate\": \"20/05/2024 - 17/10/2024\",\n    \"attributionType\": \"Click-Through\",\n    \"goal\": \"confirmation_page_view\",\n    \"partner\": {\n        \"exportTime\": \"11/11/2024 12:13\",\n        \"accountName\": \"shopbagg\"\n    },\n    \"journey\": {\n        \"status\": \"active\",\n        \"startDate\": \"01/07/2024 16:10\",\n        \"endDate\": \"20/12/2034 17:09\",\n        \"daysActive\": 133,\n        \"journeyId\": 251,\n        \"journeyName\": \"Journey Name\",\n        \"journeyTags\": [\n            \"Lorem ipsum\"\n        ]\n    },\n    \"userMetrics\": {\n        \"dropped\": 30167,\n        \"exited\": 51412,\n        \"completed\": 199181,\n        \"entered\": 285966,\n        \"sent\": 421412,\n        \"delivered\": 414186,\n        \"dropRate\": 10.55,\n        \"completeRate\": 69.65,\n        \"deliveryRate\": 98.29\n    },\n    \"performanceMetrics\": {\n        \"totalClicks\": 15641,\n        \"totalConversions\": 0,\n        \"revenue\": 0,\n        \"conversionRate\": 0,\n        \"clickThroughRate\": 3.78,\n        \"averageOrderValue\": 0\n    },\n    \"exitCriteria\": {\n        \"386\": {\n            \"type\": \"Event\",\n            \"name\": \"application_declined\",\n            \"parameters\": [],\n            \"exited\": 51412\n        }\n    },\n    \"performanceOfChannels\": {\n        \"app-push\": {\n            \"conversions\": 0,\n            \"drops\": 0,\n            \"delivered\": 6,\n            \"totalClicks\": 0,\n            \"revenue\": 0,\n            \"sent\": 6,\n            \"numberOfChannels\": 2,\n            \"averageOrderValue\": 0,\n            \"clickThroughRate\": 0,\n            \"dropRate\": 0,\n            \"conversionRate\": 0,\n            \"deliveryRate\": 100\n        },\n        \"email\": {\n            \"conversions\": 0,\n            \"drops\": 3,\n            \"delivered\": 399,\n            \"totalClicks\": 177,\n            \"totalOpens\": 235,\n            \"revenue\": 0,\n            \"uniqueClicks\": 31,\n            \"sent\": 406,\n            \"uniqueOpens\": 151,\n            \"unsubscribes\": 3,\n            \"numberOfChannels\": 1,\n            \"averageOrderValue\": 0,\n            \"clickThroughRate\": 7.77,\n            \"dropRate\": 0.73,\n            \"conversionRate\": 0,\n            \"openRate\": 37.84,\n            \"deliveryRate\": 98.28,\n            \"unsubscribeRate\": 0.75\n        },\n        \"sms\": {\n            \"conversions\": 0,\n            \"drops\": 0,\n            \"delivered\": 0,\n            \"totalClicks\": 0,\n            \"revenue\": 0,\n            \"sent\": 0,\n            \"smsMessageParts\": 0,\n            \"unsubscribes\": 0,\n            \"numberOfChannels\": 1,\n            \"averageOrderValue\": 0,\n            \"clickThroughRate\": 0,\n            \"dropRate\": 0,\n            \"conversionRate\": 0,\n            \"deliveryRate\": 0,\n            \"unsubscribeRate\": 0\n        }\n    },\n    \"channelsByLayersMetrics\": {\n        \"1\": [\n            {\n                \"sent\": 2,\n                \"conversions\": 0,\n                \"drops\": 0,\n                \"delivered\": 2,\n                \"totalClicks\": 0,\n                \"revenue\": 0,\n                \"averageOrderValue\": 0,\n                \"conversionRate\": 0,\n                \"dropRate\": 0,\n                \"clickThroughRate\": 0,\n                \"deliveryRate\": 100,\n                \"layer\": 1,\n                \"channel\": \"app-push\",\n                \"channelName\": \"Paid Ads Lead Nurture_mobile App Push 1\",\n                \"campaignId\": 4098\n            },\n            {\n                \"sent\": 140,\n                \"conversions\": 0,\n                \"drops\": 0,\n                \"delivered\": 137,\n                \"totalClicks\": 67,\n                \"uniqueClicks\": 11,\n                \"totalOpens\": 66,\n                \"uniqueOpens\": 44,\n                \"revenue\": 0,\n                \"unsubscribes\": 3,\n                \"averageOrderValue\": 0,\n                \"conversionRate\": 0,\n                \"dropRate\": 0,\n                \"clickThroughRate\": 8.03,\n                \"openRate\": 32.12,\n                \"deliveryRate\": 97.86,\n                \"unsubscribeRate\": 2.19,\n                \"layer\": 1,\n                \"channel\": \"email\",\n                \"channelName\": \"Paid Ads Lead Nurture_mobile Email 1\",\n                \"campaignId\": 4104\n            },\n            {\n                \"sent\": 0,\n                \"conversions\": 0,\n                \"drops\": 0,\n                \"delivered\": 0,\n                \"totalClicks\": 0,\n                \"revenue\": 0,\n                \"smsMessageParts\": 0,\n                \"unsubscribes\": 0,\n                \"averageOrderValue\": 0,\n                \"conversionRate\": 0,\n                \"dropRate\": 0,\n                \"clickThroughRate\": 0,\n                \"deliveryRate\": 0,\n                \"unsubscribeRate\": 0,\n                \"layer\": 1,\n                \"channel\": \"sms\",\n                \"channelName\": \"Paid Ads Lead Nurture_mobile SMS 1\",\n                \"campaignId\": 4110\n            }\n        ],\n        \"2\": [\n            {\n                \"sent\": 2,\n                \"conversions\": 0,\n                \"drops\": 0,\n                \"delivered\": 2,\n                \"totalClicks\": 0,\n                \"revenue\": 0,\n                \"averageOrderValue\": 0,\n                \"conversionRate\": 0,\n                \"dropRate\": 0,\n                \"clickThroughRate\": 0,\n                \"deliveryRate\": 100,\n                \"layer\": 2,\n                \"channel\": \"app-push\",\n                \"channelName\": \"Paid Ads Lead Nurture_mobile App Push 2\",\n                \"campaignId\": 4100\n            }\n        ]\n    }\n}\n\n</code></pre>\n<h5 id=\"401-unauthorized\">401 Unauthorized</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Invalid API key\"\n}\n\n</code></pre>\n<h5 id=\"422-bad-request\">422 Bad Request</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"The stat date field is required.\",\n    \"errors\": {\n        \"statDate\": [\n            \"The stat date field is required.\"\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"response-details\">Response Details</h4>\n<ul>\n<li><p><strong>id</strong>: The unique ID of the conversion goal.</p>\n</li>\n<li><p><strong>name</strong>: The name of the conversion goal.</p>\n</li>\n<li><p><strong>type</strong>: The type of conversion goal (e.g., on-event, on-attribute).</p>\n</li>\n<li><p><strong>parameters</strong>: An array detailing the conditions for the goal, such as key-value pairs with operators and value types.</p>\n</li>\n<li><p><strong>journeys</strong>: A list of journeys where the conversion goal is used, including journey IDs and names.</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>The request must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is <strong>incorrect</strong>, the operation will not be executed and an <strong>authorization error</strong> will return in the response.</p>\n</li>\n<li><p>You can send <strong>200 requests per minute</strong> with the same API Key. If you exceed the rate limit, you will receive a <strong>429 error</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","journey","{journeyId}"],"host":["architect-analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>Defines the date range for statistics. Format: DD/MM/YYYY - DD/MM/YYYY</p>\n","type":"text/plain"},"key":"statDate","value":"String"},{"disabled":true,"description":{"content":"<p>A number representing the conversion goal ID filter. Default is 0 which is the Purchase goal.</p>\n","type":"text/plain"},"key":"conversionGoal","value":"Integer"},{"disabled":true,"description":{"content":"<p>Attribution type for reporting. 0 for Click-Through attribution (default). 1 for View-Through attribution.</p>\n","type":"text/plain"},"key":"goalType","value":"Integer"}],"variable":[]}},"response":[],"_postman_id":"306ea458-652c-41f5-8334-b143f9e08293"},{"name":"Get Architect Channel Analytics","id":"118409ba-35a8-4cf3-8a1a-64390df73123","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"{{vault:bearer-token}}","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token. You should enter the word {{vault:bearer-token}} by the API key you generated.</p>\n","type":"text"},{"key":"Accept","value":"application/json","description":"<p>You should enter it as application/json at all times.</p>\n","type":"text"}],"url":"https://architect-analytics.api.useinsider.com/v1/element/{campaignId}?statDate=String","description":"<p>The Architect channel analytics endpoint provides analytics for a specific campaign element in the Architect product. Use this endpoint to gather analytics data for individual campaign elements and track user interactions, click-through rates, open rates, and other relevant metrics.</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token. You should enter the word <em>Bearer</em> followed by the API key you generated.</td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n<td>You should enter it as <em>application/json</em> at all times.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Data Type</th>\n<th>Description</th>\n<th>Sample Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>statDate</td>\n<td>String</td>\n<td>Defines the date range for statistics. Format: DD/MM/YYYY - DD/MM/YYYY</td>\n<td>statDate=01/08/2024 - 30/08/2024</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>conversionGoal</td>\n<td>Integer</td>\n<td>A number representing the conversion goal ID filter. Default is <em>0</em> which is the <em>Purchase</em> goal.</td>\n<td>conversionGoal=123</td>\n<td>No</td>\n</tr>\n<tr>\n<td>goalType</td>\n<td>Integer</td>\n<td>Attribution type for reporting. <em>0</em> for <em>Click-Through</em> attribution (default). <em>1</em> for <em>View-Through</em> attribution.</td>\n<td>0</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p>The <strong>statDate</strong> parameter is essential for defining the time range for analytics. The start date must be earlier than the end date. You can select any time range, including those longer than one year or before the past year. However, if you encounter a timeout when exporting a range longer than one year, try selecting a shorter range.</p>\n<p>Use <strong>conversionGoal</strong> filter to tailor your analytics queries to specific requirements.</p>\n<p>For journey analytics, you can only get the conversion metrics for one goal at a time. You can enter the <strong>goal id</strong> as a parameter to select which conversion goal you want to see the metrics. You can obtain the <strong>Goal ID</strong> either from the goal dropdown in the InOne panel or by using the <a href=\"https://academy.useinsider.com/docs/get-architect-analytics-api#conversion-goals-information\">conversion goals information</a> endpoint.</p>\n<img src=\"https://cdn.document360.io/c6df4583-da94-4cb2-bb8a-be0cbdd11109/Images/Documentation/image-1732698455540.png\" width=\"144\" height=\"233\" />\n\n<h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-query\">Sample Query</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your own API key.</p>\n</li>\n<li><p>To replace <strong>campaignId</strong> with the specific campaign's ID. You can find this ID on the inner page of the element.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X GET \"https://architect-analytics.api.useinsider.com/v1/element/12345?statDate=01/08/2024 - 30/08/2024&amp;conversionGoal=789&amp;goalType=1\" \\\n  -H \"Authorization: {{vault:bearer-token}}\" \\\n  -H \"Accept: application/json\"\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 OK</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"filterDate\": \"22/05/2024 - 11/11/2024\",\n    \"attributionType\": \"Click-Through\",\n    \"goal\": \"confirmation_page_view\",\n    \"partner\": {\n        \"exportTime\": \"11/11/2024 12:27\",\n        \"accountName\": \"shopbagg\"\n    },\n    \"elementMetrics\": {\n        \"averageOrderValue\": 0,\n        \"block\": 95,\n        \"bounce\": 0,\n        \"bounceRate\": 0,\n        \"clickThroughRate\": 1.49,\n        \"clickToOpenRate\": 5.7,\n        \"conversions\": 0,\n        \"conversionRate\": 0,\n        \"delivered\": 18889,\n        \"deliveryRate\": 99.57,\n        \"droppedMessages\": [],\n        \"drops\": {\n            \"frequencyDrops\": 0,\n            \"frequencyDropPercentage\": 0,\n            \"sendingDrops\": 98,\n            \"sendingDropPercentage\": 100,\n            \"systemDrops\": 0,\n            \"systemDropPercentage\": 0\n        },\n        \"linkActivity\": [\n            {\n                \"link\": \"https://example.com/app/\",\n                \"totalClick\": 910,\n                \"uniqueClick\": 256\n            },\n            {\n                \"link\": \"https://example.com/about/\",\n                \"totalClick\": 211,\n                \"uniqueClick\": 207\n            },\n            {\n                \"link\": \"https://example.com/pay/\",\n                \"totalClick\": 211,\n                \"uniqueClick\": 208\n            }\n        ],\n        \"machineOpen\": 0,\n        \"openRate\": 26.2,\n        \"revenue\": 0,\n        \"sent\": 18971,\n        \"spam\": 2,\n        \"totalClicks\": 3896,\n        \"totalOpens\": 6355,\n        \"uniqueClicks\": 282,\n        \"uniqueMachineOpens\": 3232,\n        \"uniqueMachineOpensRate\": 17.11,\n        \"uniqueOpens\": 4949,\n        \"uniqueOpenRate\": 26.2,\n        \"unsubscribe\": 15,\n        \"unsubscribeRate\": 0.08\n    }\n}\n\n</code></pre>\n<h5 id=\"401-unauthorized\">401 Unauthorized</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Invalid API key\"\n}\n\n</code></pre>\n<h5 id=\"422-bad-request\">422 Bad Request</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"The stat date field is required.\",\n    \"errors\": {\n        \"statDate\": [\n            \"The stat date field is required.\"\n        ]\n    }\n}\n\n</code></pre>\n<h4 id=\"response-details\">Response Details</h4>\n<ul>\n<li><p><strong>id</strong>: The unique ID of the conversion goal.</p>\n</li>\n<li><p><strong>name</strong>: The name of the conversion goal.</p>\n</li>\n<li><p><strong>type</strong>: The type of conversion goal (e.g., on-event, on-attribute).</p>\n</li>\n<li><p><strong>parameters</strong>: An array detailing the conditions for the goal, such as key-value pairs with operators and value types.</p>\n</li>\n<li><p><strong>journeys</strong>: A list of journeys where the conversion goal is used, including journey IDs and names.</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>The request must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is <strong>incorrect</strong>, the operation will not be executed and an <strong>authorization error</strong> will return in the response.</p>\n</li>\n<li><p>You can send <strong>200 requests per minute</strong> with the same API Key. If you exceed the rate limit, you will receive a <strong>429 error</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","element","{campaignId}"],"host":["architect-analytics","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>A number representing the conversion goal ID filter. Default is 0 which is the Purchase goal.</p>\n","type":"text/plain"},"key":"conversionGoal","value":"Integer"},{"disabled":true,"description":{"content":"<p>Attribution type for reporting. 0 for Click-Through attribution (default). 1 for View-Through attribution.</p>\n","type":"text/plain"},"key":"goalType","value":"Integer"},{"description":{"content":"<p>Defines the date range for statistics. Format: DD/MM/YYYY - DD/MM/YYYY</p>\n","type":"text/plain"},"key":"statDate","value":"String"}],"variable":[]}},"response":[],"_postman_id":"118409ba-35a8-4cf3-8a1a-64390df73123"},{"name":"Get Conversion Goals Analytics","id":"007f2978-5566-4140-be19-1946a26238a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"{{vault:bearer-token}}","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token. You should enter the word {{vault:bearer-token}} by the API key you generated.</p>\n","type":"text"},{"key":"Accept","value":"application/json","description":"<p>You should enter it as application/json at all times.</p>\n","type":"text"}],"url":"https://architect-analytics.api.useinsider.com/v1/goals-analytics?statDate=statDate=01/08/2024 - 30/08/2024","description":"<p>For overall and journey analytics, you can get all conversion metrics for all goals at the same time.</p>\n<p>If you provide the <strong>journey ID</strong> in the payload, you will also get that journey’s <strong>conversion metrics</strong> for goals. You should provide the journey ID inside the <strong>IDs filter array</strong>.</p>\n<p>This endpoint retrieves a list of conversion goals across various journeys. You can use the <a href=\"https://academy.insiderone.com/docs/get-conversion-goals-information\">Conversion Goals Information API</a> together with this API to combine conversion goal metrics and see which journeys they are used in.</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token. You should enter the word <em>Bearer</em> followed by the API key you generated.</td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n<td>You should enter it as <em>application/json</em> at all times.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Sample Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>statDate</td>\n<td>Defines the date range for statistics. <strong>Format:</strong> DD/MM/YYYY - DD/MM/YYYY</td>\n<td>statDate=01/08/2024 - 30/08/2024</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>statuses</td>\n<td>Array filter for journey statuses. Default is <strong>active</strong> if not provided.  <br />Allowed values: active, test, passive, sunset</td>\n<td>statuses[]=active&amp;statuses[]=passive</td>\n<td>No</td>\n</tr>\n<tr>\n<td>channels</td>\n<td>Array filter specifying which channels' analytics data to return. If not provided, all channels are included.  <br />Allowed values: web-push, app-push, email, sms, whatsapp, in-app, journey-web, call-api</td>\n<td>channels[]=email&amp;channels[]=sms</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ids</td>\n<td>Array of journey IDs for filtering</td>\n<td>ids[]=89&amp;ids[]=90</td>\n<td>No</td>\n</tr>\n<tr>\n<td>goalType</td>\n<td>Attribution type for reporting.  <br />0 for <strong>Click-Through</strong> attribution (default)  <br />1 for <strong>View-Through</strong> attribution</td>\n<td>0</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-query\">Sample Query</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li><p>To replace the authorization value with your own API key.</p>\n</li>\n<li><p>To replace the sample values in parameters with your own values in the required data type.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X GET \"https://architect-analytics.api.useinsider.com/v1/goals-analytics\" \\\n-H \"Authorization: {{vault:bearer-token}}\" \\\n-H \"Accept: application/json\"\n\n</code></pre>\n<h4 id=\"sample-responses\">Sample Responses</h4>\n<h5 id=\"200-ok\">200 OK</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": [\n        {\n            \"conversionRateReference\": 35010,\n            \"goalId\": 0,\n            \"goalName\": \"confirmation_page_view\",\n            \"conversion\": 4,\n            \"conversionRate\": 0.01,\n            \"revenue\": 123088700,\n            \"aov\": 30772175\n        },\n        {\n            \"conversionRateReference\": 35010,\n            \"goalId\": 2,\n            \"goalName\": \"item_added_to_cart\",\n            \"conversion\": 30,\n            \"conversionRate\": 0.09,\n            \"revenue\": 565852200,\n            \"aov\": 18861740\n        },\n        {\n            \"conversionRateReference\": 35010,\n            \"goalId\": 3,\n            \"goalName\": \"product_detail_page_view\",\n            \"conversion\": 125,\n            \"conversionRate\": 0.36,\n            \"revenue\": 11732341800,\n            \"aov\": 93858734\n        }\n    ]\n}\n\n</code></pre>\n<h5 id=\"401-unauthorized\">401 Unauthorized</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Invalid API key\"\n}\n\n</code></pre>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>The request must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is <strong>incorrect</strong>, the operation will not be executed and an <strong>authorization error</strong> will return in the response.</p>\n</li>\n<li><p>You can send <strong>200 requests per minute</strong> with the same API Key. If you exceed the rate limit, you will receive a <strong>429 error</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","goals-analytics"],"host":["architect-analytics","api","useinsider","com"],"query":[{"description":{"content":"<p>Defines the date range for statistics. Format: DD/MM/YYYY - DD/MM/YYYY</p>\n","type":"text/plain"},"key":"statDate","value":"statDate=01/08/2024 - 30/08/2024"},{"disabled":true,"description":{"content":"<p>Array filter for journey statuses. Default is active if not provided.\nAllowed values: active, test, passive, sunset</p>\n","type":"text/plain"},"key":"statuses","value":"statuses[]=active&statuses[]=passive"},{"disabled":true,"description":{"content":"<p>Array filter specifying which channels' analytics data to return. If not provided, all channels are included.\nAllowed values: web-push, app-push, email, sms, whatsapp, in-app, journey-web, call-api</p>\n","type":"text/plain"},"key":"channels","value":"channels[]=email&channels[]=sms"},{"disabled":true,"description":{"content":"<p>Array of journey IDs for filtering</p>\n","type":"text/plain"},"key":"ids","value":"ids[]=89&ids[]=90"},{"disabled":true,"description":{"content":"<p>Attribution type for reporting.\n0 for Click-Through attribution (default)\n1 for View-Through attribution</p>\n","type":"text/plain"},"key":"goalType","value":"0"}],"variable":[]}},"response":[],"_postman_id":"007f2978-5566-4140-be19-1946a26238a5"},{"name":"Get Conversion Goals Information","id":"445eecad-04cb-4ac2-a44a-6c054cd1975e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"{{vault:bearer-token}}","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token. You should enter the word {{vault:bearer-token}} by the API key you generated.</p>\n","type":"text"},{"key":"Accept","value":"application/json","description":"<p>You should enter it as application/json at all times.</p>\n","type":"text"}],"url":"https://architect-analytics.api.useinsider.com/v1/goals","description":"<p>For Architect overall, journey, and channel analytics, you can only get the conversion metrics for one goal at a time. You can enter the <strong>goal id</strong> as a parameter to select which conversion goal you want to see the metrics. You can obtain the <strong>Goal ID</strong> either from the goal dropdown in the InOne panel or by using this endpoint.</p>\n<p>This endpoint retrieves a list of conversion goals across various journeys in the Architect product, their IDs, and which journeys they are used in.</p>\n<h4 id=\"headers\">Headers</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Sample Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>{{vault:bearer-token}}</td>\n<td>This key is required to authorize your request. Refer to <a href=\"https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key\">API Authentication Tokens</a> to generate your token. You should enter the word <em>Bearer</em> followed by the API key you generated.</td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>application/json</td>\n<td>You should enter it as <em>application/json</em> at all times.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"query-parameters\">Query Parameters</h3>\n<p>This endpoint does not require any query parameters.</p>\n<h3 id=\"sample-example\">Sample Example</h3>\n<h4 id=\"sample-query\">Sample Query</h4>\n<p>Before sending the request, make sure:</p>\n<ul>\n<li>To replace the authorization value with your own API key.</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-shell\">curl -X GET \"https://architect-analytics.api.useinsider.com/v1/goals\" \\\n  -H \"Authorization: {{vault:bearer-token}}\" \\\n  -H \"Accept: application/json\"\n\n</code></pre>\n<h4 id=\"sample-response\">Sample Response</h4>\n<h5 id=\"200-ok\">200 OK</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"payment_successful\",\n            \"type\": \"on-event\",\n            \"parameters\": [\n                [\n                    {\n                        \"key\": \"retailer_name\",\n                        \"operator\": \"cnt\",\n                        \"type\": \"string\",\n                        \"values\": [\n                            \"VCC\"\n                        ]\n                    }\n                ]\n            ],\n            \"journeys\": [\n                {\n                    \"id\": 89,\n                    \"name\": \"Journey Name 1\"\n                }\n            ]\n        },\n        {\n            \"id\": 2,\n            \"name\": \"payment_failed\",\n            \"type\": \"on-event\",\n            \"parameters\": [\n                [\n                    {\n                        \"key\": \"retailer_name\",\n                        \"operator\": \"cnt\",\n                        \"type\": \"string\",\n                        \"values\": [\n                            \"VCC\",\n                            \"Direct\"\n                        ]\n                    }\n                ]\n            ],\n            \"journeys\": [\n                {\n                    \"id\": 90,\n                    \"name\": \"Journey Name 2\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre>\n<h5 id=\"401-unauthorized\">401 Unauthorized</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Invalid API key\"\n}\n\n</code></pre>\n<h4 id=\"response-details\">Response Details</h4>\n<ul>\n<li><p><strong>id</strong>: The unique ID of the conversion goal.</p>\n</li>\n<li><p><strong>name</strong>: The name of the conversion goal.</p>\n</li>\n<li><p><strong>type</strong>: The type of conversion goal (e.g., on-event, on-attribute).</p>\n</li>\n<li><p><strong>parameters</strong>: An array detailing the conditions for the goal, such as key-value pairs with operators and value types.</p>\n</li>\n<li><p><strong>journeys</strong>: A list of journeys where the conversion goal is used, including journey IDs and names.</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>The request must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is <strong>incorrect</strong>, the operation will not be executed and an <strong>authorization error</strong> will return in the response.</p>\n</li>\n<li><p>You can send <strong>200 requests per minute</strong> with the same API Key. If you exceed the rate limit, you will receive a <strong>429 error</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","goals"],"host":["architect-analytics","api","useinsider","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"445eecad-04cb-4ac2-a44a-6c054cd1975e"},{"name":"Export Journey List","id":"075b5dc2-29d8-4539-bef1-1dc0a037d953","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"{{vault:bearer-token}}","description":"<p>This key is required to authorize your request. Refer to API Authentication Tokens to generate your token. You should enter the word {{vault:bearer-token}} by the API key you generated.</p>\n","type":"text"},{"key":"Accept","value":"application/json","description":"<p>You should enter it as application/json at all times.</p>\n","type":"text"}],"url":"https://architect-analytics.api.useinsider.com/v1/journeys","description":"<p>The Journey List API enables you to export detailed information for all journeys created in Architect. This endpoint provides metadata such as journey name, status, creation and execution dates, tags, conversion goals, and exit criteria — allowing you to easily audit, analyze, or back up journey configurations externally.</p>\n<p>It’s particularly useful for teams that want to integrate Architect data with external analytics platforms or maintain synchronized journey catalogs.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n<th>Sample Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>statuses</td>\n<td>Filters journeys by status.  <br />Allowed values are <em>active</em>, <em>test</em>, <em>passive</em>, <em>sunset</em>.</td>\n<td>?statuses[]=active&amp;statuses[]=test</td>\n<td>No</td>\n</tr>\n<tr>\n<td>ids</td>\n<td>Filters by specific journey IDs</td>\n<td>?ids[]=1&amp;ids[]=2&amp;ids[]=3</td>\n<td>No</td>\n</tr>\n<tr>\n<td>search</td>\n<td>Returns journeys whose names partially match the provided text.</td>\n<td>?search=welcome</td>\n<td>No</td>\n</tr>\n<tr>\n<td>tags</td>\n<td>Filters journeys by their assigned tags. Each tag must exist in the tags table.</td>\n<td>?tags[]=cart abandonment&amp;tags[]=retention</td>\n<td>No</td>\n</tr>\n<tr>\n<td>limit, page</td>\n<td>Pagination for the export. You can determine which page and for what limit you want to get an export for. You can get at most 300 journeys per export.</td>\n<td>?limit=100&amp;page=1 → Brings the 100 journeys of the first page.  <br />If you have 900 journeys, and you want to get an export for all of them, you need 3 API calls:  <br />  <br />?limit=300&amp;page=1  <br />?limit=300&amp;page=2  <br />?limit=300&amp;page=3</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"sample-responses\">Sample Responses</h2>\n<h3 id=\"200-ok\">200 OK</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"journeys\": [\n    {\n      \"journeyId\": 5756,\n      \"parentJourneyId\": 38,\n      \"journeyName\": \"Demo Journey\",\n      \"status\": \"active\",\n      \"createdAt\": \"2025-10-14T11:42:29.000000Z\",\n      \"startDate\": \"2025-10-14T11:44:53.000000Z\",\n      \"endDate\": \"2025-11-13T11:42:45.000000Z\",\n      \"tags\": [\"Demo\"],\n      \"description\": null,\n      \"starterType\": \"on-event\",\n      \"languages\": [\"ar_AE\", \"ja_JP\", \"ka_GA\"],\n      \"reEligibility\": {\n        \"rule\": \"Users re-enter after 3 day\",\n        \"value\": 3\n      },\n      \"conversionGoals\": [\n        {\n          \"id\": 216,\n          \"event\": \"confirmation_page_view\",\n          \"eventParameters\": [\n            {\n              \"display_name\": \"Event Source\",\n              \"key\": \"source\",\n              \"operator\": \"eq\",\n              \"type\": \"string\",\n              \"values\": [\"crm\", \"mobile\"]\n            }\n          ]\n        }\n      ],\n      \"exitCriteria\": [\n        {\n          \"event\": \"item_added_to_cart\",\n          \"parameters\": {\n            \"name\": \"item_added_to_cart\",\n            \"type\": \"event\",\n            \"params\": [],\n            \"identifierParameter\": \"\",\n            \"hash\": \"item_added_to_cartnacntstring3/4 Sleeve Kimono DressProduct Name\",\n            \"consistencyStatus\": false,\n            \"groupPartners\": [],\n            \"value\": \"item_added_to_cart\"\n          }\n        },\n        {\n          \"event\": \"login\",\n          \"parameters\": {\n            \"name\": \"login\",\n            \"type\": \"event\",\n            \"params\": [],\n            \"identifierParameter\": \"\",\n            \"hash\": \"login\",\n            \"consistencyStatus\": false,\n            \"groupPartners\": [],\n            \"value\": \"login\"\n          }\n        }\n      ],\n      \"campaigns\": [\n                {\n                    \"id\": 64592,\n                    \"name\": \"Demo Journey Web Push 1\",\n                    \"channel\": \"Web Push\"\n                },\n                {\n                    \"id\": 64596,\n                    \"name\": \"Demo Journey Web Push 2\",\n                    \"channel\": \"Web Push\"\n                },\n                {\n                    \"id\": 64595,\n                    \"name\": \"Demo Journey SMS 2\",\n                    \"channel\": \"SMS\"\n                },\n                {\n                    \"id\": 64599,\n                    \"name\": \"Demo Journey SMS 1\",\n                    \"channel\": \"SMS\"\n                },\n                {\n                    \"id\": 64591,\n                    \"name\": \"Demo Journey On-Site 1\",\n                    \"channel\": \"On-Site\"\n                }\n            ]\n    }\n  ]\n}\n\n\n</code></pre>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Invalid API key\"\n}\n\n</code></pre>\n<h2 id=\"limitations\">Limitations</h2>\n<ul>\n<li><p>The request must be executed with an <strong>HTTPS GET</strong> request.</p>\n</li>\n<li><p>The API Key should be provided as the authorization key on the request header. If the key is <strong>incorrect</strong>, the operation will not be executed and an <strong>authorization error</strong> will return in the response.</p>\n</li>\n<li><p>You can send <strong>200 requests per minute</strong> with the same API Key. If you exceed the rate limit, you will receive a <strong>429 error</strong>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","journeys"],"host":["architect-analytics","api","useinsider","com"],"query":[{"disabled":true,"description":{"content":"<p>Filters journeys by status.\nAllowed values are active, test, passive, sunset.</p>\n","type":"text/plain"},"key":"statuses","value":"?statuses[]=active&statuses[]=test"},{"disabled":true,"description":{"content":"<p>Filters by specific journey IDs</p>\n","type":"text/plain"},"key":"ids","value":"?ids[]=1&ids[]=2&ids[]=3"},{"disabled":true,"description":{"content":"<p>Returns journeys whose names partially match the provided text.</p>\n","type":"text/plain"},"key":"search","value":"?search=welcome"},{"disabled":true,"description":{"content":"<p>Filters journeys by their assigned tags. Each tag must exist in the tags table.</p>\n","type":"text/plain"},"key":"tags","value":"?tags[]=cart%20abandonment&tags[]=retention"},{"disabled":true,"description":{"content":"<p>Pagination for the export. You can determine which page and for what limit you want to get an export for. You can get at most 300 journeys per export.</p>\n","type":"text/plain"},"key":"limit,page","value":"?limit=100&page=1"}],"variable":[]}},"response":[],"_postman_id":"075b5dc2-29d8-4539-bef1-1dc0a037d953"}],"id":"573cd59c-65b7-4dbd-b07f-b95ab912b48a","_postman_id":"573cd59c-65b7-4dbd-b07f-b95ab912b48a","description":""}],"id":"167f3b10-62e6-4115-9263-bee535afec92","description":"<p>Reports &amp; Analysis APIs allow you to get the campaign analytics from your own back-end without using the Insider's Inone panel. As a result, you can analyze your users' engagement, and manage your campaigns accordingly.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API</strong></th>\n<th><strong>Function</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#5f7f8a25-b4f4-4be8-937c-047b7d50843e\">Get email campaign list</a></td>\n<td>You can get a full list of your available email campaigns.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#d1b6c42c-b6c9-4417-af36-f27c3c34f5e9\">Get email campaign analytics</a></td>\n<td>You can get the analytics of your email campaigns for a given time period.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#f5f9f0c8-f304-4e1f-a570-07b24ef14b9a\">Get overall analytics</a></td>\n<td>You can get the overall analytics of your email campaigns for a given time period.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#aa064f3a-c24b-48fa-843f-55efb547f33b\">Get web push analytics</a></td>\n<td>You can get the campaign analytics of your web push notifications from your own back-end without using Insider's panel.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#a2917883-fe4c-46d6-8cbf-ad8be0eb91bd\">Get app push analytics</a></td>\n<td>You can tet the analytics of your single app push notifications.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#6c65e8e4-b61e-4f72-9af5-cab89232e2a8\">Export app push results with raw user data</a></td>\n<td>You can export your app push engagement reports.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#56aa5f8b-89fe-4290-9acb-4d424b3cce7f\">Export app template results with raw user data</a></td>\n<td>You can export your app template engagement reports.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#79788615-9eb0-45f7-8e1d-1e6f027ce118\">Export app survey results with raw user data</a></td>\n<td>You can export campaign results and leads of individual users.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#507677b9-101c-47f9-b6ac-371c9d2608b1\">Get onsite campaign analytics</a></td>\n<td>You can get the analytics of the campaign for the time period you selected.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#8d5267ef-5ae3-48e6-8bec-6795dcc19acb\">Get onsite overall analytics</a></td>\n<td>You can get all the results for the time period selected together with the filters applied.</td>\n</tr>\n<tr>\n<td><a href=\"https://developers.useinsider.com/#6b39af39-64ea-42e5-bbb4-f7b251bcd900\">Change filter values for onsite analytics</a></td>\n<td>You can change the filter values on onsite campaign analytics from your own back-end without using Insider’s platform.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"167f3b10-62e6-4115-9263-bee535afec92"}],"event":[{"listen":"prerequest","script":{"id":"90f245e2-4a94-42f3-afc1-818377e36dac","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"9cd90813-7f1c-4d81-83ae-c67755569286","type":"text/javascript","exec":[""]}}],"variable":[{"id":"3738420f-0982-4cd3-8e08-2df8bab972a7","key":"X-PARTNER-NAME","value":""},{"id":"5df61b0c-97e5-4620-b7db-7ccc83332c53","key":"X-REQUEST-TOKEN","value":""},{"id":"600d42f9-3d20-47fb-8e33-e7080b18eb64","key":"transactionalEmailApiKey","value":""},{"id":"5c9e75d5-5079-48f6-8345-c6e17fa81d95","key":"emailContentApiKey","value":""},{"id":"08227a9a-192e-4d71-a676-5aaf0ce9424a","key":"webPushAuthorizationKey","value":"Bearer"},{"id":"77bcf3f5-e617-4379-b713-aa0d9af2866b","key":"emailCampaignAnalyticsApiKey","value":""},{"id":"7b0f275a-caab-4e66-b721-ddb465fb44f1","key":"onsiteCampaignAnalyticsApiKey","value":""},{"id":"6befcb4d-e2ac-4a70-8333-1278b6e55b63","key":"globalUnsubscribeApiKey","value":""},{"id":"12e08a3d-9fc7-4aab-bfb9-95b0daca2bc1","key":"resubscribeApiKey","value":""},{"id":"207d77d1-96ed-45b0-85a4-1bd9a73d00bc","key":"firstPartySegmentsApiKey","value":""},{"id":"eab7e6ba-cec5-48e1-b9be-378621d279c3","key":"mobileAppApiKey","value":""},{"id":"0940a8d7-43c3-4dbc-b2cd-028511976446","key":"partnerName","value":""},{"id":"ce657a73-e924-4e35-bcbe-c5431b680286","key":"transactionalWhatsappApiKey","value":""}]}