{"info":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","description":"<html><head></head><body><h2 id=\"introduction\">Introduction</h2>\n<p>The Highp API provides a modern interface for sending campaigns, contacts, media, and messages within the Highp platform. This API requires authentication and is structured around RESTful principles.</p>\n<h2 id=\"base-url\"><strong>Base URL</strong></h2>\n<p>All API requests should be made to:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{tenant_domain}/api/\n\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>To access the API, you must include an HTTP <code>Authorization</code> header with a Bearer token in your requests:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n\n</code></pre></body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"28380767","collectionId":"b92333ab-b270-432d-99a9-6e9d40b4481a","publishedId":"2sA3JQ6Ljh","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-05-27T09:57:37.000Z"},"item":[{"name":"Authorization","item":[{"name":"OAuth","item":[{"name":"Get Token","event":[{"listen":"test","script":{"id":"90f5bdfb-fb42-4528-8fad-e548e29bf167","exec":["// Stores the access token in an environment or global variable\r","var responseBody = pm.response.json();\r","pm.environment.set(\"token\", responseBody.access_token);\r","pm.environment.set(\"refresh_token\", responseBody.refresh_token);\r","pm.environment.set(\"access_token\", responseBody.refresh_token);\r","pm.environment.set(\"userUuid\", responseBody.userUuid);\r","pm.environment.set(\"userId\", responseBody.userId);\r","pm.environment.set(\"tenantId\", responseBody.tenantId);\r","\r",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"cae97f6c-f826-4802-addf-8774a9df23f8","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{vault:secret}}"},{"key":"password","value":"{{vault:secret}}"}]},"isInherited":false},"method":"POST","header":[{"key":"username","value":"","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"username","value":"{{login}}","type":"text","uuid":"d6e296df-d911-45c9-a585-4396f6c6cd38"},{"key":"password","value":"{{password}}","type":"text","uuid":"768386bf-c032-4f25-acca-d26f0dd4b584"},{"key":"tenant_domain","value":"https://{{tenant_domain}}","type":"text","uuid":"16e3754c-4a5b-4633-96af-8d77558ef6e0"},{"key":"grant_type","value":"password","type":"text","uuid":"e330ea2f-01c9-4b6e-ba58-1eef658f586f"}]},"url":"https://{{tenant_domain}}/api/auth/oauth/token","description":"<p><strong>POST</strong> /api/auth/oauth/token – <strong>Endpoint Description</strong></p>\n<p>This endpoint is used to get the current access token (access_token) using the OAuth 2.0 Refresh Token Grant mechanism.<br />It extends the validity of the session without requiring the user to re-enter login credentials.</p>\n<p>It allows the system to obtain a new access token using a previously issued refresh token.</p>\n<p>The response includes:</p>\n<p><strong>access_token</strong> – A new token used to authorize requests to other parts of the API.<br /><strong>refresh_token</strong> – A new token used to refresh the session again when needed.<br /><strong>User information</strong> – e.g. userId, email, username, tenantId, role, etc.</p>\n<h2 id=\"endpoint-url\">Endpoint URL:</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{tenant-domain}/api/auth/oauth/token\n\n</code></pre><h2 id=\"header\">HEADER:</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>method: 'POST',\nheaders: {\n    'Content-Type': 'application/x-www-form-urlencoded',\n    'Authorization': `Basic {Base64(secretLogin:secretPassword)}`\n}\n\n</code></pre><p>⚠️ The Authorization header must include <strong>Basic Auth credentials</strong> (username and password) which are <strong>environment-specific</strong>.<br />These values must be obtained from the Highp administrator per environment.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Basic {Base64(secretLogin:secretPassword)}\n\n</code></pre><h2 id=\"body\">BODY:</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>body: new URLSearchParams({\n    tenant_domain: process.env.NEXT_PUBLIC_TENANT || '',\n    grant_type: 'password',\n    username: email,\n    password: password\n})\n\n</code></pre><p><strong>Example Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>curl -X POST \"https://example.com/api/auth/oauth/token\" \\\n  -H \"Authorization: Basic EncodedSecret010101\" \\\n  -H \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=password\" \\\n  -d \"username=user@example.com\" \\\n  -d \"password=secret123\" \\\n  -d \"tenant_domain=https://example.com\"\n\n</code></pre><p><strong>Response: 200 OK (application/json)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"token_type\": \"bearer\",\n  \"refresh_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"expires_in\": 899,\n  \"scope\": \"read write\",\n  \"role\": \"Project Manager\",\n  \"isPm\": true,\n  \"roles\": \"[\\\"SRF\\\",\\\"FIN\\\",\\\"ROLE_PM\\\"]\",\n  \"iss\": \"com.connectmedica\",\n  \"userUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n  \"tenantId\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n  \"active\": true,\n  \"userId\": 1,\n  \"email\": \"testsandbox@connectmedica.com\",\n  \"username\": \"Test Sandbox\",\n  \"jti\": \"51491b9b-74d0-4a85-98d4-2bc52df70947\"\n}\n\n</code></pre><p><strong>Response Error 400:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"error\": \"invalid_grant\",\n    \"error_description\": \"Bad credentials\"\n}\n\n</code></pre><p><strong>Response Error 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"error\": \"unauthorized\",\n    \"error_description\": \"Unknown tenant domain: testsandbox.highp.me provided!\"\n}\n\n</code></pre><p><strong>Response Fields:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>access_token</td>\n<td>string</td>\n<td>Token for authorization in future requests</td>\n</tr>\n<tr>\n<td>token_type</td>\n<td>string</td>\n<td>Usually bearer</td>\n</tr>\n<tr>\n<td>refresh_token</td>\n<td>string</td>\n<td>Token to refresh the access_token</td>\n</tr>\n<tr>\n<td>expires_in</td>\n<td>integer</td>\n<td>Time (in seconds) before the token expires</td>\n</tr>\n<tr>\n<td>scope</td>\n<td>string</td>\n<td>Access scopes (e.g. read write)</td>\n</tr>\n<tr>\n<td>role</td>\n<td>string</td>\n<td>Role assigned to the user</td>\n</tr>\n<tr>\n<td>roles</td>\n<td>string</td>\n<td>Array of assigned roles</td>\n</tr>\n<tr>\n<td>isPm</td>\n<td>boolean</td>\n<td>Whether the user is a Project Manager</td>\n</tr>\n<tr>\n<td>userUuid</td>\n<td>string</td>\n<td>UUID of the user</td>\n</tr>\n<tr>\n<td>tenantId</td>\n<td>string</td>\n<td>UUID of the tenant</td>\n</tr>\n<tr>\n<td>active</td>\n<td>boolean</td>\n<td>Whether the account is active</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>integer</td>\n<td>Numeric ID of the user</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>User's email</td>\n</tr>\n<tr>\n<td>username</td>\n<td>string</td>\n<td>Display name</td>\n</tr>\n<tr>\n<td>jti</td>\n<td>string</td>\n<td>JWT Token identifier</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","auth","oauth","token"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"7eb12545-c881-4528-8910-814d80f23081","name":"Get Token","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: basic","key":"Authorization","value":"Basic <credentials>"}],"url":"testsandbox.highp.me/api/auth/oauth/token"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 11:51:42 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"authorization"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 11:51:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-584f0cc4a0b4c09b724dd8da4ad2824f' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-584f0cc4a0b4c09b724dd8da4ad2824f' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json;charset=UTF-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUHJvamVjdCBNYW5hZ2VyIiwicm9sZXMiOiJbXCJTUkZcIixcIkZJTlwiLFwiUk9MRV9QTVwiXSIsImlzcyI6ImNvbS5jb25uZWN0bWVkaWNhIiwiYWN0aXZlIjp0cnVlLCJ1c2VySWQiOjEsImNsaWVudF9pZCI6InRlc3QiLCJ0ZW5hbnROYW1lIjoidGVzdHNhbmRib3giLCJpc1BtIjp0cnVlLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwidXNlclV1aWQiOiI2YmJjZTUwNy1hY2E5LTQ0MWYtODdhNS02NGI5NDdjNTgwYTAiLCJ0ZW5hbnRJZCI6IjM5NTFlMTIzLTBjMDItNGI0Yi04NmQ1LWMxODIzZDJiYmY0YiIsImV4cCI6MTc2MzcyNjgwMSwianRpIjoiYjMzOTBhMjQtNDY2NC00NzkyLWI4OTktNTMzYjQxZjg3YTdiIiwiZW1haWwiOiJ0ZXN0c2FuZGJveF85MTU4OTc1NDc0MTYyNDQxQGNvbm5lY3RtZWRpY2EuY29tIiwidXNlcm5hbWUiOiJUZXN0IFNhbmRib3gifQ.irgFJdQJlnXzD1j_VUTQeoB3x2fN7Zd8rm5U0qHbvSkpbzs3_C2skwhqJEDx4S5TpSpgRMaW4XfRzeMHWEcA-957q8Byo0hNCrJRhAMrnpqQ27xG88MIqstPpW4A1sSflBxrTYbvbzB0BHEsj6sl072DdpN69-7m0V4lw9RrFX45Lys7NrRc90eoi5HdfT-GS5f5njUwiv4rg1PD9qwrTzWwvowOIac95aXIEYT95ntaixEfrjlKg6nRSS_2ey108CPowhYRIXZcmgzwX44gZlPa8xdCPxMnRVLDGg5w27g-vrcOjw_4zhEATFL_6NIpeaHjEGqGQDNkXQvuqXv5oA\",\n    \"token_type\": \"bearer\",\n    \"refresh_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUHJvamVjdCBNYW5hZ2VyIiwicm9sZXMiOiJbXCJTUkZcIixcIkZJTlwiLFwiUk9MRV9QTVwiXSIsImlzcyI6ImNvbS5jb25uZWN0bWVkaWNhIiwiYWN0aXZlIjp0cnVlLCJ1c2VySWQiOjEsImNsaWVudF9pZCI6InRlc3QiLCJ0ZW5hbnROYW1lIjoidGVzdHNhbmRib3giLCJpc1BtIjp0cnVlLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwiYXRpIjoiYjMzOTBhMjQtNDY2NC00NzkyLWI4OTktNTMzYjQxZjg3YTdiIiwidXNlclV1aWQiOiI2YmJjZTUwNy1hY2E5LTQ0MWYtODdhNS02NGI5NDdjNTgwYTAiLCJ0ZW5hbnRJZCI6IjM5NTFlMTIzLTBjMDItNGI0Yi04NmQ1LWMxODIzZDJiYmY0YiIsImV4cCI6MTc2NDMzMDcwMSwianRpIjoiNjNhOWI1NTktYjIwYi00NTg2LWFlZDAtYTZmNzg1NjNlYjQ1IiwiZW1haWwiOiJ0ZXN0c2FuZGJveF85MTU4OTc1NDc0MTYyNDQxQGNvbm5lY3RtZWRpY2EuY29tIiwidXNlcm5hbWUiOiJUZXN0IFNhbmRib3gifQ.IxBQOyDwbTmHuPg39-UvhlcnZp6PIwtIIGb3IDBEOUThpLRFTsALSWwhxCwB1vypdhwfnjmyI6B9fkiCVYSb07WoXPwDhL7bDOjL7RBSFIZESK_44VUrG1dNJ7v9oRjNrWqJJnSBj0OX4REJwzXZNJlZi0Xn5uImNFLFERGZ078WCx-zrZyGWeYoXyUkOUJZ8NtHHeVnI52MBfEepRHY_nx96ZWkUKGwRgdMn6x-DVsNQIaHKqJtrNBpYe7o1yW7zIRq3PQ7xZQt_7I4RPgxNSVi8NTwiLyVyKqALmP4qP7oEmtW30Yy6O_uEb55UC96lAAD8eFx71F7YZLsqMbkOA\",\n    \"expires_in\": 899,\n    \"scope\": \"read write\",\n    \"role\": \"Project Manager\",\n    \"tenantName\": \"testsandbox\",\n    \"isPm\": true,\n    \"roles\": \"[\\\"SRF\\\",\\\"FIN\\\",\\\"ROLE_PM\\\"]\",\n    \"iss\": \"com.connectmedica\",\n    \"userUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"tenantId\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n    \"active\": true,\n    \"userId\": 1,\n    \"email\": \"testsandbox_9158975474162441@connectmedica.com\",\n    \"username\": \"Test Sandbox\",\n    \"jti\": \"b3390a24-4664-4792-b899-533b41f87a7b\"\n}"}],"_postman_id":"cae97f6c-f826-4802-addf-8774a9df23f8"},{"name":"Refresh Token","id":"d4056b60-299f-40c3-b2b6-7ab87f876b4e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{vault:secret}}"},{"key":"password","value":"{{vault:secret}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"tenant_id","value":"example_uuid","disabled":true},{"key":"tenant_domain","value":"https://testsandbox.highp.me"},{"key":"grant_type","value":"refresh_token"},{"key":"user_id","value":"{{userId}}"},{"key":"refresh_token","value":"{{refresh_token}}"}]},"url":"https://{{tenant_domain}}/api/auth/oauth/token","description":"<h1 id=\"refresh-token\">Refresh Token</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>The Refresh Token endpoint allows you to obtain a new access token by using a valid refresh token. This is essential for maintaining user sessions without requiring re-authentication. When an access token expires, you can use this endpoint to get a fresh access token and a new refresh token, ensuring continuous API access.</p>\n<p><strong>Endpoint:</strong> <code>POST /api/auth/oauth/token</code></p>\n<p><strong>Content-Type:</strong> <code>application/x-www-form-urlencoded</code></p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>HTTP Basic Authentication</strong> using client credentials.</p>\n<ul>\n<li><p><strong>Username:</strong> Your client ID (contact Highp administrator)</p>\n</li>\n<li><p><strong>Password:</strong> Your client secret (contact Highp administrator)</p>\n</li>\n</ul>\n<p>The credentials must be base64-encoded and included in the <code>Authorization</code> header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Basic &lt;base64(username:password)&gt;\n\n</code></pre><hr />\n<h2 id=\"request-parameters\">Request Parameters</h2>\n<h3 id=\"body-parameters-x-www-form-urlencoded\">Body Parameters (x-www-form-urlencoded)</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<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>grant_type</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>Must be set to <code>refresh_token</code></td>\n<td><code>refresh_token</code></td>\n</tr>\n<tr>\n<td><code>refresh_token</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>The current valid refresh token issued to the client/user</td>\n<td><code>eyJhbGciOi...</code></td>\n</tr>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>string</td>\n<td>Conditional*</td>\n<td>Tenant domain URL. Either <code>tenant_id</code> or <code>tenant_domain</code> is required. If both are present, <code>tenant_domain</code> takes precedence.</td>\n<td><code>https://testsandbox.gethighp.com</code></td>\n</tr>\n<tr>\n<td><code>tenant_id</code></td>\n<td>string</td>\n<td>Conditional*</td>\n<td>UUID of the tenant. Either <code>tenant_id</code> or <code>tenant_domain</code> is required.</td>\n<td><code>3951e123-0c02-4b4b-86d5-c1823d2bbf4b</code></td>\n</tr>\n<tr>\n<td><code>user_id</code></td>\n<td>string/number</td>\n<td>No</td>\n<td>The user identifier tied to the refresh token. Not always required depending on client configuration.</td>\n<td><code>12345</code></td>\n</tr>\n</tbody>\n</table>\n</div><p>*At least one of <code>tenant_id</code> or <code>tenant_domain</code> must be provided.</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>Required</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Content-Type</code></td>\n<td><strong>Yes</strong></td>\n<td>Must be <code>application/x-www-form-urlencoded</code></td>\n<td><code>application/x-www-form-urlencoded</code></td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td><strong>Yes</strong></td>\n<td>HTTP Basic Auth credentials</td>\n<td><code>Basic dGVzdDpzZWNyZXQ=</code></td>\n</tr>\n<tr>\n<td><code>X-Tenant-Domain</code></td>\n<td>No</td>\n<td>Optional tenant domain header</td>\n<td><code>testsandbox.gethighp.com</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Upon successful token refresh, the server returns a JSON object containing the new access token, refresh token, and user information.</p>\n<h4 id=\"response-structure\">Response Structure</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"access_token\": \"string\",           // New JWT access token for API authentication\n  \"token_type\": \"string\",             // Token type (typically \"bearer\")\n  \"refresh_token\": \"string\",          // New refresh token for future token refreshes\n  \"expires_in\": number,               // Access token lifetime in seconds (e.g., 899 = ~15 minutes)\n  \"scope\": \"string\",                  // Space-separated list of granted scopes (e.g., \"read write\")\n  \"applications_access\": null,        // Application-specific access permissions\n  \"role\": \"string\",                   // Primary user role (e.g., \"Representative\")\n  \"roles\": \"string\",                  // JSON string array of all user roles (e.g., \"[\\\"ROLE_REP\\\"]\")\n  \"api_token\": \"string\",              // API token UUID for additional authentication\n  \"iss\": \"string\",                    // Token issuer identifier\n  \"userUuid\": \"string\",               // User's unique identifier (UUID)\n  \"tenantId\": \"string\",               // Tenant's unique identifier (UUID)\n  \"active\": boolean,                  // Whether the user account is active\n  \"applications_versions\": object,    // Application version information\n  \"userId\": number,                   // Numeric user identifier\n  \"email\": \"string\",                  // User's email address\n  \"username\": \"string\",               // User's display name\n  \"jti\": \"string\"                     // JWT ID - unique identifier for this token\n}\n\n</code></pre>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUmVwcmVzZW50YXRpdmUi...\",\n  \"token_type\": \"bearer\",\n  \"refresh_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUmVwcmVzZW50YXRpdmUi...\",\n  \"expires_in\": 899,\n  \"scope\": \"read write\",\n  \"applications_access\": null,\n  \"role\": \"Representative\",\n  \"roles\": \"[\\\"ROLE_REP\\\"]\",\n  \"api_token\": \"315ddb84-a8ac-4488-94ec-7de75a1fa7c6\",\n  \"iss\": \"com.connectmedica\",\n  \"userUuid\": \"31e26dac-5af7-4635-8d51-8c82e9a15b6f\",\n  \"tenantId\": \"0264b712-6f8c-4380-8b39-e3f3218a65b9\",\n  \"active\": true,\n  \"applications_versions\": {},\n  \"userId\": 9,\n  \"email\": \"igorgnot@gmail.com\",\n  \"username\": \"igor gnot\",\n  \"jti\": \"5b3f1159-d4f4-41ef-bfd6-e4d7293da317\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<p>Returned when authentication credentials are invalid or missing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"unauthorized\",\n  \"error_description\": \"Full authentication is required to access this resource\"\n}\n\n</code></pre>\n<p><strong>Common causes:</strong></p>\n<ul>\n<li><p>Missing or invalid Basic Auth credentials</p>\n</li>\n<li><p>Incorrect client ID or secret</p>\n</li>\n</ul>\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<p>Returned when the refresh token is invalid, expired, or request parameters are incorrect.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_grant\",\n  \"error_description\": \"Invalid refresh token\"\n}\n\n</code></pre>\n<p><strong>Common causes:</strong></p>\n<ul>\n<li><p>Expired refresh token</p>\n</li>\n<li><p>Refresh token has been revoked</p>\n</li>\n<li><p>Invalid <code>grant_type</code> parameter</p>\n</li>\n<li><p>Missing required parameters (<code>grant_type</code>, <code>refresh_token</code>)</p>\n</li>\n<li><p>Invalid tenant information</p>\n</li>\n</ul>\n<h3 id=\"403-forbidden\">403 Forbidden</h3>\n<p>Returned when the client doesn't have permission to refresh tokens for the specified tenant.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"access_denied\",\n  \"error_description\": \"Access is denied\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\nasync function refreshAccessToken(refreshToken, tenantDomain, userId) {\n  // Your client credentials (obtain from Highp administrator)\n  const clientId = 'your_client_id';\n  const clientSecret = 'your_client_secret';\n  // Encode credentials for Basic Auth\n  const credentials = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');\n  // Prepare form data\n  const formData = new URLSearchParams();\n  formData.append('grant_type', 'refresh_token');\n  formData.append('refresh_token', refreshToken);\n  formData.append('tenant_domain', tenantDomain);\n  formData.append('user_id', userId);\n  try {\n    const response = await fetch(`${tenantDomain}/api/auth/oauth/token`, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/x-www-form-urlencoded',\n        'Authorization': `Basic ${credentials}`\n      },\n      body: formData.toString()\n    });\n    if (!response.ok) {\n      const errorData = await response.json();\n      throw new Error(`Token refresh failed: ${errorData.error_description || response.statusText}`);\n    }\n    const data = await response.json();\n    // Store the new tokens securely\n    console.log('New access token:', data.access_token);\n    console.log('New refresh token:', data.refresh_token);\n    console.log('Expires in:', data.expires_in, 'seconds');\n    return data;\n  } catch (error) {\n    console.error('Error refreshing token:', error.message);\n    throw error;\n  }\n}\n// Usage example\nconst refreshToken = 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...';\nconst tenantDomain = 'https://testsandbox.gethighp.com';\nconst userId = '12345';\nrefreshAccessToken(refreshToken, tenantDomain, userId)\n  .then(tokenData =&gt; {\n    console.log('Token refreshed successfully');\n    // Use the new access token for subsequent API calls\n  })\n  .catch(error =&gt; {\n    console.error('Failed to refresh token:', error);\n    // Handle error (e.g., redirect to login)\n  });\n\n</code></pre>\n<h3 id=\"curl\">cURL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location 'https://testsandbox.gethighp.com/api/auth/oauth/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--header 'Authorization: Basic dGVzdDpzZWNyZXQ=' \\\n--data-urlencode 'grant_type=refresh_token' \\\n--data-urlencode 'refresh_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...' \\\n--data-urlencode 'tenant_domain=https://testsandbox.gethighp.com' \\\n--data-urlencode 'user_id=12345'\n\n</code></pre>\n<hr />\n<h2 id=\"best-practices\">Best Practices</h2>\n<ol>\n<li><p><strong>Secure Storage</strong>: Store refresh tokens securely (encrypted storage, secure cookies, or secure key storage)</p>\n</li>\n<li><p><strong>Token Rotation</strong>: Always use the new refresh token returned in the response for subsequent refresh requests</p>\n</li>\n<li><p><strong>Proactive Refresh</strong>: Refresh the access token before it expires (e.g., when <code>expires_in</code> is less than 60 seconds)</p>\n</li>\n<li><p><strong>Error Handling</strong>: Implement proper error handling for expired or invalid refresh tokens</p>\n</li>\n<li><p><strong>Credential Security</strong>: Never expose client credentials in client-side code</p>\n</li>\n<li><p><strong>HTTPS Only</strong>: Always use HTTPS for token refresh requests</p>\n</li>\n<li><p><strong>Token Expiration</strong>: Monitor the <code>expires_in</code> field and implement automatic token refresh logic</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The <code>expires_in</code> value is in seconds (typically 899 seconds ≈ 15 minutes)</p>\n</li>\n<li><p>Both the access token and refresh token are rotated with each refresh request</p>\n</li>\n<li><p>The old refresh token becomes invalid once a new one is issued</p>\n</li>\n<li><p>To obtain client credentials for Basic Auth, contact your Highp administrator</p>\n</li>\n<li><p>The <code>tenant_domain</code> parameter takes precedence over <code>tenant_id</code> if both are provided</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","auth","oauth","token"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"1d4e1411-26dd-46e5-8c9a-25703b40e310","name":"Refresh Token","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"tenant_id","value":"example_uuid","disabled":true},{"key":"tenant_domain","value":"https://testsandbox.highp.me"},{"key":"grant_type","value":"refresh_token"},{"key":"user_id","value":"{{userId}}"},{"key":"refresh_token","value":"{{refresh_token}}"}]},"url":"https://{{tenant_domain}}/api/auth/oauth/token"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.18.0 (Ubuntu)"},{"key":"Date","value":"Mon, 11 Aug 2025 11:44:29 GMT"},{"key":"Content-Type","value":"application/json;charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-store"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"authorization"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUmVwcmVzZW50YXRpdmUiLCJyb2xlcyI6IltcIlJPTEVfUkVQXCJdIiwiYXBpX3Rva2VuIjoiMzE1ZGRiODQtYThhYy00NDg4LTk0ZWMtN2RlNzVhMWZhN2M2IiwiaXNzIjoiY29tLmNvbm5lY3RtZWRpY2EiLCJhY3RpdmUiOnRydWUsInVzZXJJZCI6OSwiY2xpZW50X2lkIjoidGVzdCIsImFwcGxpY2F0aW9uc19hY2Nlc3MiOm51bGwsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJ1c2VyVXVpZCI6IjMxZTI2ZGFjLTVhZjctNDYzNS04ZDUxLThjODJlOWExNWI2ZiIsInRlbmFudElkIjoiMDI2NGI3MTItNmY4Yy00MzgwLThiMzktZTNmMzIxOGE2NWI5IiwiZXhwIjoxNzU0OTEzNTY4LCJhcHBsaWNhdGlvbnNfdmVyc2lvbnMiOnt9LCJqdGkiOiI1YjNmMTE1OS1kNGY0LTQxZWYtYmZkNi1lNGQ3MjkzZGEzMTciLCJlbWFpbCI6Imlnb3Jnbm90QGdtYWlsLmNvbSIsInVzZXJuYW1lIjoiaWdvciBnbm90In0.Ds8XhaX1PvoBqyvL0c3m11znj3RacLloE5VEb-RHs6aqhpmXty9RJTnqylPKNIxtwAwwB6p_fGjcZBNGqn26eEq--Ze2wGI_XRmDwkQrZZrYbKBKTSzzi9FimPTlxgNUjFOVMGXrCIBtWgT5p037Wk0sdiRl-4Mpi7P75QqVQOG-TyBohEjGEit0i3Zfhz2xK-3pe5tBrYnr3d4PrjobvLZyw1rvWZ70zz-iTRRDTP8sPug-8_U0dNrqtK1iGIzNpXHGbucRrhnfanzpjlvYdipJwSc1ybFTIjk8oIkOJm3RqPiLqcW3jTLQQHXlX8m66CDPDRNDry3nc_wIgko7aQ\",\n    \"token_type\": \"bearer\",\n    \"refresh_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUmVwcmVzZW50YXRpdmUiLCJyb2xlcyI6IltcIlJPTEVfUkVQXCJdIiwiYXBpX3Rva2VuIjoiMzE1ZGRiODQtYThhYy00NDg4LTk0ZWMtN2RlNzVhMWZhN2M2IiwiaXNzIjoiY29tLmNvbm5lY3RtZWRpY2EiLCJhY3RpdmUiOnRydWUsInVzZXJJZCI6OSwiY2xpZW50X2lkIjoidGVzdCIsImFwcGxpY2F0aW9uc19hY2Nlc3MiOm51bGwsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJhdGkiOiI1YjNmMTE1OS1kNGY0LTQxZWYtYmZkNi1lNGQ3MjkzZGEzMTciLCJ1c2VyVXVpZCI6IjMxZTI2ZGFjLTVhZjctNDYzNS04ZDUxLThjODJlOWExNWI2ZiIsInRlbmFudElkIjoiMDI2NGI3MTItNmY4Yy00MzgwLThiMzktZTNmMzIxOGE2NWI5IiwiZXhwIjoxNzU1NTEwMDE5LCJhcHBsaWNhdGlvbnNfdmVyc2lvbnMiOnt9LCJqdGkiOiJjYTE2ZWU1Mi1jM2QwLTQwNzctODQxMi04MWMwNzg4ZDMwYmMiLCJlbWFpbCI6Imlnb3Jnbm90QGdtYWlsLmNvbSIsInVzZXJuYW1lIjoiaWdvciBnbm90In0.DddmM-wJ-QNL3zmNKnctDQwGZayCk2qPiRp15lTuNMegW9Toc8KXOUNS17k-MNmIvM7b1NszRNdBFLd0fLdMPCLHZZIyNoy_mlgfmmIq_1OSQPSPFtFilrAEFiPpI41-VBATA9CMsbdriySZy2GxlSw_jr7Hjg-YsdMq-Gvl0xvbIrVTPROyhVLzAjFO5IV_ohONJi0nWNq_VCAbf0H6sftlIs_m3tIzneJM4erFbt7SsXslm9FL58ji0kP_wSY4Xf20rySFMh_N_q5qgy4RX0rZagTUhr00b7y4UwBrYqX9bXKBTysdphMtrk9YUI-wXFPpxl_zu_KUHPW0GUit1A\",\n    \"expires_in\": 899,\n    \"scope\": \"read write\",\n    \"applications_access\": null,\n    \"role\": \"Representative\",\n    \"roles\": \"[\\\"ROLE_REP\\\"]\",\n    \"api_token\": \"315ddb84-a8ac-4488-94ec-7de75a1fa7c6\",\n    \"iss\": \"com.connectmedica\",\n    \"userUuid\": \"31e26dac-5af7-4635-8d51-8c82e9a15b6f\",\n    \"tenantId\": \"0264b712-6f8c-4380-8b39-e3f3218a65b9\",\n    \"active\": true,\n    \"applications_versions\": {},\n    \"userId\": 9,\n    \"email\": \"igorgnot@gmail.com\",\n    \"username\": \"igor gnot\",\n    \"jti\": \"5b3f1159-d4f4-41ef-bfd6-e4d7293da317\"\n}"}],"_postman_id":"d4056b60-299f-40c3-b2b6-7ab87f876b4e"},{"name":"Check Token","id":"fd5f4ac7-a069-422e-bb80-c8073e096697","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"<username>"},{"key":"password","value":"<password>"}]},"isInherited":false},"method":"POST","header":[],"url":"testsandbox.highp.me/api/auth/oauth/check_token?token={{token}}","description":"<h1 id=\"check-token-api\">Check Token API</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint validates OAuth 2.0 access tokens and returns detailed information about the token's claims, including user identity, roles, permissions, and expiration details. Use this endpoint to verify token validity and retrieve associated user and tenant information.</p>\n<hr />\n<h2 id=\"request-details\">Request Details</h2>\n<h3 id=\"http-method\">HTTP Method</h3>\n<p><code>POST</code></p>\n<h3 id=\"endpoint-url\">Endpoint URL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{{tenant_domain}}/api/auth/oauth/check_token?token={{token}}\n</code></pre><h3 id=\"authentication\">Authentication</h3>\n<p><strong>Type:</strong> Basic Auth</p>\n<p><strong>Credentials:</strong> Contact your Highp administrator to obtain the username and password for Basic Authentication.</p>\n<hr />\n<h2 id=\"parameters\">Parameters</h2>\n<h3 id=\"pathdomain-variables\">Path/Domain Variables</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The domain of your tenant instance (e.g., <code>yourtenant.highp.me</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> The parameters <code>tenant_id</code> and <code>tenant_domain</code> are used interchangeably; at least one of these parameters is required.</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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>token</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The OAuth 2.0 access token to validate. This should be the JWT token string you want to check.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body\">Request Body</h3>\n<p>This endpoint does not require a request body.</p>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response\">Success Response</h3>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"response-model\">Response Model</h3>\n<p>The response returns a JSON object with the following structure:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>active</code></td>\n<td>boolean</td>\n<td>Indicates whether the token is currently active and valid. <code>true</code> means the token is valid and not expired.</td>\n</tr>\n<tr>\n<td><code>role</code></td>\n<td>string</td>\n<td>The primary role assigned to the user (e.g., \"Project Manager\", \"Admin\").</td>\n</tr>\n<tr>\n<td><code>roles</code></td>\n<td>string</td>\n<td>A comma-separated string or list of all roles assigned to the user.</td>\n</tr>\n<tr>\n<td><code>userId</code></td>\n<td>integer</td>\n<td>The unique numeric identifier of the user in the system.</td>\n</tr>\n<tr>\n<td><code>userUuid</code></td>\n<td>string</td>\n<td>The universally unique identifier (UUID) of the user.</td>\n</tr>\n<tr>\n<td><code>username</code></td>\n<td>string</td>\n<td>The username of the authenticated user.</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>The email address associated with the user account.</td>\n</tr>\n<tr>\n<td><code>client_id</code></td>\n<td>string</td>\n<td>The OAuth client identifier that requested the token.</td>\n</tr>\n<tr>\n<td><code>isPm</code></td>\n<td>boolean</td>\n<td>Indicates if the user has Project Manager privileges.</td>\n</tr>\n<tr>\n<td><code>scope</code></td>\n<td>array of strings</td>\n<td>An array of OAuth scopes granted to this token (e.g., <code>[\"read\", \"write\"]</code>).</td>\n</tr>\n<tr>\n<td><code>tenantId</code></td>\n<td>string</td>\n<td>The UUID of the tenant/organization the user belongs to.</td>\n</tr>\n<tr>\n<td><code>iss</code></td>\n<td>string</td>\n<td>The issuer of the token (typically \"com.connectmedica\" or your identity provider).</td>\n</tr>\n<tr>\n<td><code>exp</code></td>\n<td>integer</td>\n<td>The expiration timestamp of the token in Unix epoch format (seconds since January 1, 1970).</td>\n</tr>\n<tr>\n<td><code>jti</code></td>\n<td>string</td>\n<td>JWT Token Identifier - a unique identifier for this specific token.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"active\": true,\n  \"role\": \"Project Manager\",\n  \"roles\": \"Project Manager,Admin\",\n  \"userId\": 12345,\n  \"userUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n  \"username\": \"john.doe\",\n  \"email\": \"john.doe@example.com\",\n  \"client_id\": \"highp-web-client\",\n  \"isPm\": true,\n  \"scope\": [\"read\", \"write\"],\n  \"tenantId\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n  \"iss\": \"com.connectmedica\",\n  \"exp\": 1699512424,\n  \"jti\": \"0b1fb902-d655-42c9-9b20-d647152033ae\"\n}\n</code></pre>\n<hr />\n<h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const checkToken = async (tenantDomain, token, username, password) =&gt; {\n  // Encode Basic Auth credentials\n  const credentials = Buffer.from(`${username}:${password}`).toString('base64');\n  \n  const url = `https://${tenantDomain}/api/auth/oauth/check_token?token=${encodeURIComponent(token)}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Basic ${credentials}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    \n    // Check if token is active\n    if (data.active) {\n      console.log('Token is valid');\n      console.log('User:', data.username);\n      console.log('Email:', data.email);\n      console.log('Roles:', data.roles);\n      console.log('Expires at:', new Date(data.exp * 1000).toISOString());\n    } else {\n      console.log('Token is inactive or invalid');\n    }\n    \n    return data;\n  } catch (error) {\n    console.error('Error checking token:', error);\n    throw error;\n  }\n};\n\n// Usage example\nconst tenantDomain = 'yourtenant.highp.me';\nconst accessToken = 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...';\nconst basicAuthUsername = 'your-username';\nconst basicAuthPassword = 'your-password';\n\ncheckToken(tenantDomain, accessToken, basicAuthUsername, basicAuthPassword)\n  .then(tokenInfo =&gt; {\n    console.log('Token information:', tokenInfo);\n  })\n  .catch(error =&gt; {\n    console.error('Failed to check token:', error);\n  });\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<p>Returned when Basic Auth credentials are invalid or missing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"unauthorized\",\n  \"error_description\": \"Full authentication is required to access this resource\"\n}\n</code></pre>\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<p>Returned when the token parameter is missing or malformed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_request\",\n  \"error_description\": \"Token parameter is required\"\n}\n</code></pre>\n<h3 id=\"400-bad-request-invalid-token\">400 Bad Request (Invalid Token)</h3>\n<p>Returned when the token is invalid, expired, or cannot be parsed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"active\": false\n}\n</code></pre>\n<hr />\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ol>\n<li><p><strong>Token Expiration:</strong> Always check the <code>exp</code> field to determine when the token will expire. The value is in Unix timestamp format (seconds since epoch).</p>\n</li>\n<li><p><strong>Active Status:</strong> A token with <code>\"active\": false</code> should be considered invalid, even if other fields are present. The client should obtain a new token.</p>\n</li>\n<li><p><strong>Scope Validation:</strong> Use the <code>scope</code> array to verify that the token has the necessary permissions for the operation you're attempting.</p>\n</li>\n<li><p><strong>Security:</strong> Never expose Basic Auth credentials in client-side code. This endpoint should be called from a secure backend service.</p>\n</li>\n<li><p><strong>Rate Limiting:</strong> Be mindful of rate limits when checking tokens. Consider caching token validation results until near expiration.</p>\n</li>\n<li><p><strong>Tenant Context:</strong> The <code>tenantId</code> field identifies which organization/tenant the token belongs to. Ensure this matches your expected tenant context.</p>\n</li>\n<li><p><strong>Role-Based Access:</strong> Use the <code>role</code>, <code>roles</code>, and <code>isPm</code> fields to implement role-based access control in your application.</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li><strong>Token Generation:</strong> Use the OAuth token endpoint to obtain access tokens</li>\n<li><strong>Token Refresh:</strong> Use the refresh token endpoint to obtain new access tokens without re-authentication</li>\n<li><strong>Token Revocation:</strong> Use the revoke endpoint to invalidate tokens before expiration</li>\n</ul>\n<hr />\n<h2 id=\"support\">Support</h2>\n<p>For questions about authentication, token management, or to obtain Basic Auth credentials, please contact your Highp administrator.</p>\n","urlObject":{"path":["api","auth","oauth","check_token"],"host":["testsandbox.highp.me"],"query":[{"key":"token","value":"{{token}}"}],"variable":[]}},"response":[{"id":"ffd1f1cd-3373-42ea-9da4-ab7e3042c7f6","name":"Check Token","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: basic","key":"Authorization","value":"Basic <credentials>"}],"url":{"raw":"testsandbox.highp.me/api/auth/oauth/check_token?token={{token}}","host":["testsandbox.highp.me"],"path":["api","auth","oauth","check_token"],"query":[{"key":"token","value":"{{token}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 11:56:27 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 11:56:26 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"authorization"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9423f4bb70693bc437f4a3b020b16edc' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9423f4bb70693bc437f4a3b020b16edc' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"role\": \"Representative\",\n    \"roles\": \"[\\\"ROLE_REP\\\"]\",\n    \"api_token\": \"f2ca98a8-de77-41bc-931d-c3e8b8ab23ec\",\n    \"iss\": \"com.connectmedica\",\n    \"active\": true,\n    \"userId\": 136,\n    \"client_id\": \"test\",\n    \"applications_access\": \"training platform,highp,datuso,DBE\",\n    \"tenantName\": \"testsandbox\",\n    \"scope\": [\n        \"read\",\n        \"write\"\n    ],\n    \"userUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\",\n    \"tenantId\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n    \"exp\": 1763726418,\n    \"applications_versions\": {\n        \"presenter\": \"3.6\",\n        \"datuso\": \"3.4\",\n        \"rep\": \"3.5\"\n    },\n    \"jti\": \"71b4b34b-a869-4a9c-8b01-0348df85e067\",\n    \"email\": \"nowytest988@gmail.com\",\n    \"username\": \"Wojciecheee Bojarski\"\n}"}],"_postman_id":"fd5f4ac7-a069-422e-bb80-c8073e096697"},{"name":"Get Token for Code","id":"d494b6eb-06db-414d-999e-3db10574c50f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{secret}}"},{"key":"password","value":"{{secret}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"grant_type","value":"authorization_code"},{"key":"code","value":"xyzabc"},{"key":"redirect_uri","value":"http://example.domain/callback"},{"key":"tenant_domain","value":"https://testsandbox.highp.me"}]},"url":"https://{{tenant_domain}}/api/auth/oauth/token","description":"<h2 id=\"api-endpoint-oauth-token-generation\">API Endpoint: OAuth Token Generation</h2>\n<p>This endpoint is used to obtain an OAuth token by exchanging an authorization code. It is part of the authentication process that allows clients to securely access protected resources.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><strong>Method</strong>: POST</li>\n<li><strong>URL</strong>: <code>https://testsandbox.highp.me/api/auth/oauth/token</code></li>\n</ul>\n<h4 id=\"request-headers\">Request Headers</h4>\n<ul>\n<li><strong>Content-Type</strong>: <code>application/x-www-form-urlencoded</code></li>\n<li><strong>X-Tenant-Domain</strong>: The tenant domain (e.g., <code>testsandbox.gethighp.com</code>)</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request must be sent in <code>x-www-form-urlencoded</code> format, containing the following parameters:</p>\n<ul>\n<li><strong>grant_type</strong> (string, required): The OAuth grant type. Use <code>authorization_code</code> for this flow.</li>\n<li><strong>code</strong> (string, required): The authorization code received from the authorization server. This code is required to obtain the token.</li>\n<li><strong>redirect_uri</strong> (string, required): The redirect URI that was used in the authorization request. Must match exactly.</li>\n<li><strong>tenant_domain</strong> (string, required): The domain of the tenant requesting the token. This helps identify the context of the request.</li>\n</ul>\n<hr />\n<h2 id=\"code-example\">Code Example</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'https://testsandbox.gethighp.com';\nconst authorizationCode = 'xyzabc'; // Replace with actual code from authorization flow\nconst redirectUri = 'http://example.domain/callback';\n\nconst params = new URLSearchParams({\n  grant_type: 'authorization_code',\n  code: authorizationCode,\n  redirect_uri: redirectUri,\n  tenant_domain: tenantDomain\n});\n\nfetch(`${tenantDomain}/api/auth/oauth/token`, {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/x-www-form-urlencoded',\n    'X-Tenant-Domain': 'testsandbox.gethighp.com'\n  },\n  body: params.toString()\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Access Token:', data.access_token);\n    console.log('Refresh Token:', data.refresh_token);\n    console.log('Expires In:', data.expires_in);\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"successful-response-200-ok\">Successful Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"access_token\": \"string\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 3600,\n  \"refresh_token\": \"string\",\n  \"scope\": \"string\"\n}\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<ul>\n<li><strong>access_token</strong> (string): The OAuth access token used to authenticate API requests</li>\n<li><strong>token_type</strong> (string): The type of token issued, typically \"Bearer\"</li>\n<li><strong>expires_in</strong> (integer): The lifetime in seconds of the access token</li>\n<li><strong>refresh_token</strong> (string): The refresh token used to obtain new access tokens when the current one expires</li>\n<li><strong>scope</strong> (string, optional): The scope of access granted by the token</li>\n</ul>\n<hr />\n<h2 id=\"response-examples\">Response Examples</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 3600,\n  \"refresh_token\": \"def50200a1b2c3d4e5f6...\",\n  \"scope\": \"read write\"\n}\n</code></pre>\n<h3 id=\"error-response-400-bad-request\">Error Response (400 Bad Request)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_grant\",\n  \"error_description\": \"The provided authorization code is invalid, expired, or has already been used.\"\n}\n</code></pre>\n<h4 id=\"common-error-codes\">Common Error Codes</h4>\n<ul>\n<li><strong>invalid_request</strong>: The request is missing a required parameter or is malformed</li>\n<li><strong>invalid_grant</strong>: The authorization code is invalid, expired, or revoked</li>\n<li><strong>invalid_client</strong>: Client authentication failed</li>\n<li><strong>unauthorized_client</strong>: The client is not authorized to use this grant type</li>\n<li><strong>unsupported_grant_type</strong>: The grant type is not supported by the server</li>\n</ul>\n<hr />\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<p>This endpoint is crucial for applications that require user authentication and authorization through OAuth, allowing them to securely access APIs and resources. </p>\n<p><strong>Important</strong>: Authorization codes are single-use and typically expire within 10 minutes. Ensure you exchange the code for a token promptly after receiving it from the authorization flow.</p>\n","urlObject":{"protocol":"https","path":["api","auth","oauth","token"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"a8c9ee0a-2fa4-44a1-adbf-417c4188722b","name":"Get Token for Code","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"tenant_id","value":"exmaple_uuid","disabled":true},{"key":"tenant_domain","value":"https://testsandbox.highp.me"},{"key":"grant_type","value":"authorization_code"},{"key":"code","value":"xyzabc"},{"key":"redirect_url","value":"http://example.domain/callback"}]},"url":"https://testsandbox.highp.me/api/auth/oauth/token"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Date","value":"Fri, 21 Nov 2025 11:51:42 GMT"},{"key":"Content-Type","value":"application/json;charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"authorization"},{"key":"Expires","value":"Fri, 21 Nov 2025 11:51:41 GMT"},{"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-584f0cc4a0b4c09b724dd8da4ad2824f' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-584f0cc4a0b4c09b724dd8da4ad2824f' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUHJvamVjdCBNYW5hZ2VyIiwicm9sZXMiOiJbXCJTUkZcIixcIkZJTlwiLFwiUk9MRV9QTVwiXSIsImlzcyI6ImNvbS5jb25uZWN0bWVkaWNhIiwiYWN0aXZlIjp0cnVlLCJ1c2VySWQiOjEsImNsaWVudF9pZCI6InRlc3QiLCJ0ZW5hbnROYW1lIjoidGVzdHNhbmRib3giLCJpc1BtIjp0cnVlLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwidXNlclV1aWQiOiI2YmJjZTUwNy1hY2E5LTQ0MWYtODdhNS02NGI5NDdjNTgwYTAiLCJ0ZW5hbnRJZCI6IjM5NTFlMTIzLTBjMDItNGI0Yi04NmQ1LWMxODIzZDJiYmY0YiIsImV4cCI6MTc2MzcyNjgwMSwianRpIjoiYjMzOTBhMjQtNDY2NC00NzkyLWI4OTktNTMzYjQxZjg3YTdiIiwiZW1haWwiOiJ0ZXN0c2FuZGJveF85MTU4OTc1NDc0MTYyNDQxQGNvbm5lY3RtZWRpY2EuY29tIiwidXNlcm5hbWUiOiJUZXN0IFNhbmRib3gifQ.irgFJdQJlnXzD1j_VUTQeoB3x2fN7Zd8rm5U0qHbvSkpbzs3_C2skwhqJEDx4S5TpSpgRMaW4XfRzeMHWEcA-957q8Byo0hNCrJRhAMrnpqQ27xG88MIqstPpW4A1sSflBxrTYbvbzB0BHEsj6sl072DdpN69-7m0V4lw9RrFX45Lys7NrRc90eoi5HdfT-GS5f5njUwiv4rg1PD9qwrTzWwvowOIac95aXIEYT95ntaixEfrjlKg6nRSS_2ey108CPowhYRIXZcmgzwX44gZlPa8xdCPxMnRVLDGg5w27g-vrcOjw_4zhEATFL_6NIpeaHjEGqGQDNkXQvuqXv5oA\",\n    \"token_type\": \"bearer\",\n    \"refresh_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUHJvamVjdCBNYW5hZ2VyIiwicm9sZXMiOiJbXCJTUkZcIixcIkZJTlwiLFwiUk9MRV9QTVwiXSIsImlzcyI6ImNvbS5jb25uZWN0bWVkaWNhIiwiYWN0aXZlIjp0cnVlLCJ1c2VySWQiOjEsImNsaWVudF9pZCI6InRlc3QiLCJ0ZW5hbnROYW1lIjoidGVzdHNhbmRib3giLCJpc1BtIjp0cnVlLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwiYXRpIjoiYjMzOTBhMjQtNDY2NC00NzkyLWI4OTktNTMzYjQxZjg3YTdiIiwidXNlclV1aWQiOiI2YmJjZTUwNy1hY2E5LTQ0MWYtODdhNS02NGI5NDdjNTgwYTAiLCJ0ZW5hbnRJZCI6IjM5NTFlMTIzLTBjMDItNGI0Yi04NmQ1LWMxODIzZDJiYmY0YiIsImV4cCI6MTc2NDMzMDcwMSwianRpIjoiNjNhOWI1NTktYjIwYi00NTg2LWFlZDAtYTZmNzg1NjNlYjQ1IiwiZW1haWwiOiJ0ZXN0c2FuZGJveF85MTU4OTc1NDc0MTYyNDQxQGNvbm5lY3RtZWRpY2EuY29tIiwidXNlcm5hbWUiOiJUZXN0IFNhbmRib3gifQ.IxBQOyDwbTmHuPg39-UvhlcnZp6PIwtIIGb3IDBEOUThpLRFTsALSWwhxCwB1vypdhwfnjmyI6B9fkiCVYSb07WoXPwDhL7bDOjL7RBSFIZESK_44VUrG1dNJ7v9oRjNrWqJJnSBj0OX4REJwzXZNJlZi0Xn5uImNFLFERGZ078WCx-zrZyGWeYoXyUkOUJZ8NtHHeVnI52MBfEepRHY_nx96ZWkUKGwRgdMn6x-DVsNQIaHKqJtrNBpYe7o1yW7zIRq3PQ7xZQt_7I4RPgxNSVi8NTwiLyVyKqALmP4qP7oEmtW30Yy6O_uEb55UC96lAAD8eFx71F7YZLsqMbkOA\",\n    \"expires_in\": 899,\n    \"scope\": \"read write\",\n    \"role\": \"Project Manager\",\n    \"tenantName\": \"testsandbox\",\n    \"isPm\": true,\n    \"roles\": \"[\\\"SRF\\\",\\\"FIN\\\",\\\"ROLE_PM\\\"]\",\n    \"iss\": \"com.connectmedica\",\n    \"userUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"tenantId\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n    \"active\": true,\n    \"userId\": 1,\n    \"email\": \"testsandbox_9158975474162441@connectmedica.com\",\n    \"username\": \"Test Sandbox\",\n    \"jti\": \"b3390a24-4664-4792-b899-533b41f87a7b\"\n}"}],"_postman_id":"d494b6eb-06db-414d-999e-3db10574c50f"}],"id":"d9f3cb9c-d7d2-4903-8026-a73710e88ca7","_postman_id":"d9f3cb9c-d7d2-4903-8026-a73710e88ca7","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Token Ticket","item":[{"name":"Create Token Ticket","event":[{"listen":"test","script":{"id":"d9d2d5eb-64a2-40d6-8438-cb126c6b2c7f","exec":["var responseBody = pm.response.json();","pm.environment.set(\"token_ticket\", responseBody.uuid);"],"type":"text/javascript","packages":{}}}],"id":"55c0debe-f77a-4674-84c3-b994fc9c6782","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"refreshToken\": \"{{refresh_token}}\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/auth/token-ticket/create","description":"<h1 id=\"create-token-ticket\">Create Token Ticket</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>The Create Token Ticket endpoint generates a temporary token ticket that can be exchanged for a new session. This endpoint is a critical component of the authentication flow, allowing users to obtain a token ticket using their existing refresh token. The token ticket serves as an intermediate credential that can be used to establish a new authenticated session without requiring the user to re-enter their credentials.</p>\n<p><strong>Use Case</strong>: This endpoint is typically used when you need to create a new session or transfer authentication context, such as when opening a new browser tab, switching devices, or implementing single sign-on (SSO) functionality.</p>\n<hr />\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Property</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Method</strong></td>\n<td><code>POST</code></td>\n</tr>\n<tr>\n<td><strong>URL</strong></td>\n<td><code>https://testsandbox.highp.me/api/auth/token-ticket/create</code></td>\n</tr>\n<tr>\n<td><strong>Content-Type</strong></td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td><strong>Authentication</strong></td>\n<td>Requires valid refresh token</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"request\">Request</h2>\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>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n<td>Indicates the request body format</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-schema\">Request Body Schema</h3>\n<p>The request body must be a JSON object with the following structure:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>refreshToken</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>A valid refresh token obtained from a previous authentication. This token is used to verify the user's identity and generate a new token ticket.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"refreshToken\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUmVwcmVzZW50YXRpdmUiLCJyb2xlcyI6IltcIlJPTEVfUkVQXCJdIiwiYXV0aG9yaXRpZXMiOiJbXCJST0xFX1JFUFwiXSIsInVzZXJVdWlkIjoiMTIzNDU2NzgtYWJjZC0xMjM0LTU2NzgtYWJjZGVmZ2hpamtsIiwidGVuYW50VXVpZCI6Ijk4NzY1NDMyLXp5eHctOTg3Ni01NDMyLXp5eHd2dXRzcnFwbyIsImlhdCI6MTYxNjE2MTYxNiwiZXhwIjoxNjE2MjQ4MDE2fQ.signature\"\n}\n</code></pre>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the request is successful, the server returns a JSON object containing the newly created token ticket UUID.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string (UUID v4)</td>\n<td>A unique identifier for the token ticket. This UUID can be used to exchange for a new session token via the \"Get Session From Token Ticket\" endpoint. The token ticket is typically valid for a short period (e.g., 5-10 minutes) and can only be used once.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"7ae0e3f5-01ae-4f0e-a444-8f98ae09ba5a\"\n}\n</code></pre>\n<h4 id=\"response-model\">Response Model</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface TokenTicketResponse {\n  uuid: string; // UUID v4 format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\n}\n</code></pre>\n<hr />\n<h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const createTokenTicket = async (tenantDomain, refreshToken) =&gt; {\n  try {\n    const response = await fetch(`https://${tenantDomain}/api/auth/token-ticket/create`, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify({\n        refreshToken: refreshToken\n      })\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Token Ticket UUID:', data.uuid);\n    \n    // Store the token ticket for later use\n    return data.uuid;\n  } catch (error) {\n    console.error('Error creating token ticket:', error);\n    throw error;\n  }\n};\n\n// Usage example\nconst tenantDomain = 'your-tenant.example.com';\nconst refreshToken = 'your-refresh-token-here';\n\ncreateTokenTicket(tenantDomain, refreshToken)\n  .then(tokenTicketUuid =&gt; {\n    console.log('Successfully created token ticket:', tokenTicketUuid);\n    // Use the tokenTicketUuid to get a new session\n  })\n  .catch(error =&gt; {\n    console.error('Failed to create token ticket:', error);\n  });\n</code></pre>\n<h3 id=\"curl\">cURL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request POST 'https://testsandbox.highp.me/api/auth/token-ticket/create' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"refreshToken\": \"{{refresh_token}}\"\n}'\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<p>Returned when the request body is malformed or missing required fields.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Bad Request\",\n  \"message\": \"refreshToken is required\",\n  \"statusCode\": 400\n}\n</code></pre>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<p>Returned when the provided refresh token is invalid, expired, or revoked.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or expired refresh token\",\n  \"statusCode\": 401\n}\n</code></pre>\n<h3 id=\"403-forbidden\">403 Forbidden</h3>\n<p>Returned when the refresh token is valid but the user doesn't have permission to create token tickets.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Forbidden\",\n  \"message\": \"Insufficient permissions to create token ticket\",\n  \"statusCode\": 403\n}\n</code></pre>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred while processing your request\",\n  \"statusCode\": 500\n}\n</code></pre>\n<hr />\n<h2 id=\"authentication-flow\">Authentication Flow</h2>\n<p>This endpoint is part of a multi-step authentication flow:</p>\n<ol>\n<li><strong>Initial Authentication</strong>: User logs in with credentials and receives an access token and refresh token</li>\n<li><strong>Create Token Ticket</strong> (This Endpoint): Use the refresh token to generate a token ticket UUID</li>\n<li><strong>Exchange Token Ticket</strong>: Use the token ticket UUID to obtain a new session with access token</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>┌─────────────┐         ┌──────────────────┐         ┌─────────────────┐\n│   Client    │         │  Token Ticket    │         │  Get Session    │\n│             │────────&gt;│  Create Endpoint │────────&gt;│  From Ticket    │\n│             │ refresh │                  │  uuid   │  Endpoint       │\n│             │  token  │                  │         │                 │\n└─────────────┘         └──────────────────┘         └─────────────────┘\n                                                              │\n                                                              v\n                                                      ┌───────────────┐\n                                                      │ New Session   │\n                                                      │ (Access Token)│\n                                                      └───────────────┘\n</code></pre><hr />\n<h2 id=\"usage-notes-and-best-practices\">Usage Notes and Best Practices</h2>\n<h3 id=\"security-considerations\">Security Considerations</h3>\n<ul>\n<li><strong>Secure Storage</strong>: Always store refresh tokens securely (e.g., in httpOnly cookies, secure storage, or encrypted databases). Never expose them in client-side code or logs.</li>\n<li><strong>HTTPS Only</strong>: Always use HTTPS when making requests to this endpoint to prevent token interception.</li>\n<li><strong>Token Expiration</strong>: Token tickets are short-lived and typically expire within 5-10 minutes. Use them immediately after creation.</li>\n<li><strong>Single Use</strong>: Token tickets can typically only be used once. After exchanging a token ticket for a session, it becomes invalid.</li>\n</ul>\n<h3 id=\"best-practices\">Best Practices</h3>\n<ol>\n<li><strong>Error Handling</strong>: Always implement proper error handling to manage expired or invalid refresh tokens gracefully.</li>\n<li><strong>Token Rotation</strong>: Consider implementing refresh token rotation for enhanced security.</li>\n<li><strong>Retry Logic</strong>: Implement exponential backoff for retry logic in case of temporary network failures.</li>\n<li><strong>Logging</strong>: Log token ticket creation events (without logging the actual tokens) for audit and debugging purposes.</li>\n<li><strong>Environment Variables</strong>: Store the <code>tenant-domain</code> and <code>refresh_token</code> as environment variables or in secure configuration management systems.</li>\n</ol>\n<h3 id=\"common-use-cases\">Common Use Cases</h3>\n<ul>\n<li><strong>Session Extension</strong>: Create a new session when the current access token expires</li>\n<li><strong>Cross-Tab Authentication</strong>: Share authentication state across multiple browser tabs</li>\n<li><strong>Device Switching</strong>: Transfer authentication from one device to another</li>\n<li><strong>SSO Implementation</strong>: Implement single sign-on across multiple applications</li>\n</ul>\n<h3 id=\"post-response-processing\">Post-Response Processing</h3>\n<p>After receiving the token ticket UUID, you typically need to:</p>\n<ol>\n<li>Store the UUID temporarily (in memory or session storage)</li>\n<li>Call the \"Get Session From Token Ticket\" endpoint with the UUID</li>\n<li>Receive and store the new access token</li>\n<li>Use the new access token for subsequent API requests</li>\n</ol>\n<p><strong>Automated Script</strong>: This request includes a post-response script that automatically stores the token ticket UUID in the environment variable <code>token_ticket</code> for use in subsequent requests:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">var responseBody = pm.response.json();\npm.environment.set(\"token_ticket\", responseBody.uuid);\n</code></pre>\n<hr />\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li><strong>Get Session From Token Ticket</strong>: Exchange the token ticket UUID for a new session</li>\n<li><strong>Get Token</strong>: Obtain initial access and refresh tokens using credentials</li>\n<li><strong>Refresh Token</strong>: Refresh an expired access token using a refresh token</li>\n</ul>\n<hr />\n<h2 id=\"variables-reference\">Variables Reference</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>testsandbox.highp.me</code></td>\n<td>Your tenant's domain</td>\n<td><code>your-tenant.example.com</code></td>\n</tr>\n<tr>\n<td><code>{{refresh_token}}</code></td>\n<td>Valid refresh token from previous authentication</td>\n<td><code>eyJhbGciOiJSUzI1Ni...</code></td>\n</tr>\n<tr>\n<td><code>{{token_ticket}}</code></td>\n<td>Token ticket UUID (set automatically by post-response script)</td>\n<td><code>7ae0e3f5-01ae-4f0e-a444-8f98ae09ba5a</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"support\">Support</h2>\n<p>For additional support or questions about this endpoint, please contact your API administrator or refer to the complete API documentation.</p>\n","urlObject":{"path":["api","auth","token-ticket","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"eabc15a1-b356-41e9-90e3-f694372b2f7a","name":"Create Token Ticket","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"refreshToken\": \"{{refresh_token}}\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/auth/token-ticket/create"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Server","value":"nginx/1.29.0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Tue, 29 Jul 2025 14:20:59 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"authorization"}],"cookie":[],"responseTime":null,"body":"{\n  \"uuid\": \"03f72650-649b-4bd5-8359-b58555198c4e\"\n}"}],"_postman_id":"55c0debe-f77a-4674-84c3-b994fc9c6782"},{"name":"Get Session From Token Ticket","event":[{"listen":"test","script":{"id":"5bf3ee43-eb75-43d2-bea3-cda59b2ecce0","exec":["var responseBody = pm.response.json();","pm.environment.set(\"refresh_token\", responseBody.refreshToken);"],"type":"text/javascript","packages":{}}}],"id":"55364b15-3b23-4530-9691-0193de914bf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"testsandbox.highp.me/api/auth/token-ticket/:token_ticket","description":"<h1 id=\"get-session-from-token-ticket\">Get Session From Token Ticket</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves an authentication session by exchanging a token ticket for a refresh token and user ID. It is a critical component in the authentication flow, typically used after a token ticket has been created through an authorization process. The endpoint validates the token ticket and returns session credentials that can be used for subsequent API requests.</p>\n<p><strong>Use Case</strong>: This endpoint is commonly used in OAuth-like flows, SSO implementations, or when establishing a session after email verification or magic link authentication.</p>\n<hr />\n<h2 id=\"request-details\">Request Details</h2>\n<h3 id=\"http-method\">HTTP Method</h3>\n<p><code>GET</code></p>\n<h3 id=\"endpoint-url\">Endpoint URL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://testsandbox.highp.me/api/auth/token-ticket/{{token_ticket}}\n</code></pre><h3 id=\"path-parameters\">Path 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>token_ticket</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier for the token ticket obtained from the \"Create Token Ticket\" endpoint. This is a one-time use token that expires after retrieval or after a set time period.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"headers\">Headers</h3>\n<p>No special headers required beyond standard HTTP headers.</p>\n<h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint does not require prior authentication as the token ticket itself serves as the authentication mechanism.</p>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p><strong>Content-Type</strong>: <code>application/json</code></p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>refreshToken</code></td>\n<td>string (JWT)</td>\n<td>A JSON Web Token (JWT) that can be used to refresh the user's session and obtain new access tokens. This token should be stored securely and used to maintain long-lived sessions. The refresh token typically has a longer expiration time than access tokens.</td>\n</tr>\n<tr>\n<td><code>userId</code></td>\n<td>integer</td>\n<td>The unique identifier of the authenticated user. This ID can be used to fetch user profile information or associate actions with the specific user account.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"refreshToken\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.NHVaYe26MbtOYhSKkoKYdFVomg4i8ZJd8_-RU8VNbftc4TSMb4bXP3l3YlNWACwyXPGffz5aXHc6lty1Y2t4SWRqGteragsVdZufDn5BlnJl9pdR_kdVFUsra2rWKEofkZeIC4yWytE58sMIihvo9H1ScmmVwBcQP6XETqYd0aSHp1gOa9RdUPDvoXQ5oqygTqVtxaDr6wUFKrKItgBMzWIdNZ6y7O9E0DhEPTbE9rfBo6KTFsHAZnMg4k68CDp2woYIaXbmYTWcvbzIuHO7_37GT79XdIwkm95QJ7hYC9RiwrV7mesbY4PAahERJawntho0my942XheVLmGwLMBkQ\",\n  \"userId\": 136\n}\n</code></pre>\n<hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Define your variables\nconst tenantDomain = 'your-tenant.example.com'; // Replace with your tenant domain\nconst tokenTicket = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'; // Replace with actual token ticket\n\n// Make the API request\nasync function getSessionFromTokenTicket() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/auth/token-ticket/${tokenTicket}`,\n      {\n        method: 'GET',\n        headers: {\n          'Accept': 'application/json'\n        }\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    \n    // Store the refresh token securely (e.g., in httpOnly cookie or secure storage)\n    const refreshToken = data.refreshToken;\n    const userId = data.userId;\n    \n    console.log('Session established successfully');\n    console.log('User ID:', userId);\n    console.log('Refresh Token:', refreshToken);\n    \n    // Store refresh token for future use\n    localStorage.setItem('refresh_token', refreshToken);\n    localStorage.setItem('user_id', userId);\n    \n    return data;\n    \n  } catch (error) {\n    console.error('Error retrieving session:', error);\n    throw error;\n  }\n}\n\n// Usage\ngetSessionFromTokenTicket()\n  .then(session =&gt; {\n    console.log('Authentication successful:', session);\n  })\n  .catch(error =&gt; {\n    console.error('Authentication failed:', error);\n  });\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<p>The token ticket format is invalid or malformed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Invalid token ticket format\",\n  \"message\": \"The provided token ticket is not a valid UUID\"\n}\n</code></pre>\n<h3 id=\"404-not-found\">404 Not Found</h3>\n<p>The token ticket does not exist, has already been used, or has expired.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Token ticket not found\",\n  \"message\": \"The token ticket is invalid, expired, or has already been consumed\"\n}\n</code></pre>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<p>The token ticket has been revoked or is not authorized for use.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Token ticket is not authorized\"\n}\n</code></pre>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<p>An unexpected error occurred on the server.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal server error\",\n  \"message\": \"An unexpected error occurred while processing your request\"\n}\n</code></pre>\n<hr />\n<h2 id=\"authentication-flow\">Authentication Flow</h2>\n<p>This endpoint is part of a multi-step authentication process:</p>\n<ol>\n<li><strong>Create Token Ticket</strong>: First, call the \"Create Token Ticket\" endpoint to generate a token ticket (typically after user login or authorization)</li>\n<li><strong>Get Session</strong> (This Endpoint): Exchange the token ticket for a refresh token and user ID</li>\n<li><strong>Use Refresh Token</strong>: Use the refresh token to obtain access tokens for authenticated API requests</li>\n<li><strong>Token Refresh</strong>: When access tokens expire, use the refresh token to obtain new ones without requiring re-authentication</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>┌─────────────────┐\n│ User Login/Auth │\n└────────┬────────┘\n         │\n         ▼\n┌─────────────────────┐\n│ Create Token Ticket │\n└────────┬────────────┘\n         │\n         ▼\n┌──────────────────────┐\n│ Get Session (HERE)   │◄── You are here\n└────────┬─────────────┘\n         │\n         ▼\n┌─────────────────────┐\n│ Store Refresh Token │\n└────────┬────────────┘\n         │\n         ▼\n┌─────────────────────┐\n│ Make API Requests   │\n└─────────────────────┘\n</code></pre><hr />\n<h2 id=\"usage-notes-and-best-practices\">Usage Notes and Best Practices</h2>\n<h3 id=\"security-considerations\">Security Considerations</h3>\n<ol>\n<li><p><strong>One-Time Use</strong>: Token tickets are typically single-use. Once exchanged for a refresh token, the token ticket becomes invalid and cannot be reused.</p>\n</li>\n<li><p><strong>Secure Storage</strong>: Store the refresh token securely:</p>\n<ul>\n<li><strong>Web Applications</strong>: Use httpOnly, secure cookies</li>\n<li><strong>Mobile Apps</strong>: Use secure storage mechanisms (Keychain on iOS, KeyStore on Android)</li>\n<li><strong>Never</strong> store refresh tokens in localStorage in production environments if security is critical</li>\n</ul>\n</li>\n<li><p><strong>Token Expiration</strong>: Token tickets usually have a short expiration time (e.g., 5-15 minutes). Ensure you exchange them promptly after creation.</p>\n</li>\n<li><p><strong>HTTPS Only</strong>: Always use HTTPS in production to prevent token interception.</p>\n</li>\n<li><p><strong>Token Rotation</strong>: Implement refresh token rotation for enhanced security - issue a new refresh token each time the old one is used.</p>\n</li>\n</ol>\n<h3 id=\"best-practices\">Best Practices</h3>\n<ol>\n<li><p><strong>Error Handling</strong>: Always implement proper error handling for expired or invalid token tickets.</p>\n</li>\n<li><p><strong>Retry Logic</strong>: Do not retry failed requests with the same token ticket, as it may have been consumed on the first attempt.</p>\n</li>\n<li><p><strong>Logging</strong>: Log authentication events (without logging sensitive token values) for security auditing.</p>\n</li>\n<li><p><strong>Environment Variables</strong>: Store the <code>tenant-domain</code> in environment variables rather than hardcoding it.</p>\n</li>\n<li><p><strong>Post-Response Actions</strong>: After successfully retrieving the session, the refresh token is automatically stored in the environment variable <code>refresh_token</code> via the post-response script for use in subsequent requests.</p>\n</li>\n</ol>\n<h3 id=\"common-use-cases\">Common Use Cases</h3>\n<ul>\n<li><strong>Email Verification Flow</strong>: After user clicks verification link with token ticket</li>\n<li><strong>Magic Link Authentication</strong>: Passwordless login via email link</li>\n<li><strong>OAuth Callback</strong>: After successful OAuth authorization</li>\n<li><strong>SSO Integration</strong>: Single sign-on session establishment</li>\n<li><strong>Mobile App Authentication</strong>: Deep linking with authentication tokens</li>\n</ul>\n<hr />\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li><strong>Create Token Ticket</strong>: Generate a new token ticket for authentication</li>\n<li><strong>Refresh Access Token</strong>: Use the refresh token to obtain new access tokens</li>\n<li><strong>Revoke Refresh Token</strong>: Invalidate a refresh token (logout)</li>\n</ul>\n<hr />\n<h2 id=\"testing-tips\">Testing Tips</h2>\n<ol>\n<li>First, call the \"Create Token Ticket\" endpoint to obtain a valid <code>token_ticket</code></li>\n<li>Immediately use that token ticket with this endpoint (before it expires)</li>\n<li>Verify that the <code>refreshToken</code> is a valid JWT format</li>\n<li>Verify that the <code>userId</code> matches the expected user</li>\n<li>Test with an expired or invalid token ticket to verify error handling</li>\n<li>Test with an already-used token ticket to ensure one-time use enforcement</li>\n</ol>\n","urlObject":{"path":["api","auth","token-ticket",":token_ticket"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{token_ticket}}","key":"token_ticket"}]}},"response":[{"id":"e4b3d1aa-ee11-4dd6-9607-3667e5f19787","name":"Get Session From Token Ticket","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"testsandbox.highp.me/api/auth/token-ticket/:token_ticket","host":["testsandbox.highp.me"],"path":["api","auth","token-ticket",":token_ticket"],"variable":[{"key":"token_ticket","value":"{{token_ticket}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Server","value":"nginx/1.29.0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Tue, 29 Jul 2025 14:21:06 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"authorization"}],"cookie":[],"responseTime":null,"body":"{\n  \"refreshToken\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiUHJvamVjdCBNYW5hZ2VyIiwicm9sZXMiOiJbXCJTR0ZYXCIsXCJBVURcIixcIlJPTEVfUFJPRlwiLFwiU1JWXCIsXCJTUkZcIixcIkdGWFwiLFwiRklOXCIsXCJST0xFX1BNXCIsXCJEVE1cIl0iLCJpc3MiOiJjb20uY29ubmVjdG1lZGljYSIsImFjdGl2ZSI6dHJ1ZSwidXNlcklkIjoyLCJjbGllbnRfaWQiOiJ0ZXN0IiwiaXNQbSI6dHJ1ZSwic2NvcGUiOlsicmVhZCIsIndyaXRlIl0sImF0aSI6ImQ1ZGIxZDkyLWVjNDItNDBlNi05NzIxLWI5ZTQ2ODQ0ZDUxNyIsInVzZXJVdWlkIjoiNTUwZmQ0NDktZDdmYi00YTcxLTk5YWYtNjU1NWY3Y2I1OGFlIiwidGVuYW50SWQiOiIwMjY0YjcxMi02ZjhjLTQzODAtOGIzOS1lM2YzMjE4YTY1YjkiLCJleHAiOjE3NTQ0MDM2NTYsImp0aSI6IjgyZGJlMThmLWZlNWUtNGIyYi1hMTIwLWQ0Zjc2ZmE1NThiYiIsImVtYWlsIjoiaWdvci5nbm90QGNvbm5lY3RtZWRpY2EuY29tIiwidXNlcm5hbWUiOiJuZTMgbmVyMyJ9.FYovHL5TuZQvpDfG79XE_YSAyaSQFf8gOhFTsFDaWX-ccvmyk4hIacRtiSBMi5NLepACiOWW8ppywdbrKQQCmgjTsHo9OpcXbU8wN9q3W40SVYloX29vAePriXZE2qktYlrbfq43WbD3f6hKFI_8lNTzyPka9TJTYXjI7EtM0PCmkyQDTPueIyWnYiu89LJ3QlvEcKhXYVNUvErN5Z6qnJtwHUzDcb74Gy31iwZw17n-0xOZfyU9tWU26eVkoUfF6RW3FWuGT31pz0hfdyIfFF_hSMsFNBWSlspeTFFBbb39BJkO54mbhztyruaxKNjo16i_Lxwvy52vDo0PecnZYA\"\n}"}],"_postman_id":"55364b15-3b23-4530-9691-0193de914bf3"}],"id":"49e5b50a-2b1b-4370-b873-0934c38c3338","_postman_id":"49e5b50a-2b1b-4370-b873-0934c38c3338","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Contact Login","item":[{"name":"Generate Login Code for Contact","id":"4572fe5e-58d0-413e-addc-ef4e026bfe35","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"testsandbox.highp.me/api/auth/contact/generate-login-code?email={{login}}&tenant_domain=https://{{tenant_domain}}","description":"<h1 id=\"generate-login-code-for-contact\">Generate Login Code for Contact</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint initiates a passwordless authentication flow for contacts by generating and sending a one-time login code via email. This method is specifically designed for contact users who need to authenticate without traditional password credentials.</p>\n<p><strong>Use Case</strong>: Contacts can request a login code that will be sent to their registered email address. Once received, the code can be used with the \"Get Token\" endpoint to obtain an authentication token.</p>\n<hr />\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method</strong>: <code>POST</code></p>\n<p><strong>URL</strong>: <code>https://{{tenant_domain}}/api/auth/contact/generate-login-code</code></p>\n<p><strong>Authentication</strong>: None required (public endpoint for initiating authentication)</p>\n<hr />\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n<th>Example Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The contact's email address where the login code will be sent. Must be a valid, registered contact email.</td>\n<td><code>email@example.com</code><br /><code>test@test.pl</code><br /><code>zar@niepodam.pl</code></td>\n</tr>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The full URL of the tenant domain. This identifies which tenant instance the contact belongs to.</td>\n<td><code>https://{{tenant_domain}}</code><br /><code>https://{{domain}}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"request-example\">Request Example</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const email = 'email@example.com';\nconst tenantDomain = 'https://your-tenant.example.com';\n\nconst url = `${tenantDomain}/api/auth/contact/generate-login-code?email=${encodeURIComponent(email)}&amp;tenant_domain=${encodeURIComponent(tenantDomain)}`;\n\nfetch(url, {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.text();\n  })\n  .then(data =&gt; {\n    console.log('Success:', data);\n    // Expected: \"The login code has been sent to the provided email address.\"\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h3 id=\"curl\">cURL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X POST \"https://your-tenant.example.com/api/auth/contact/generate-login-code?email=email@example.com&amp;tenant_domain=https://your-tenant.example.com\" \\\n  -H \"Content-Type: application/json\"\n</code></pre>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p><strong>Content-Type</strong>: <code>text/plain</code></p>\n<p><strong>Body</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>The login code has been sent to the provided email address.\n</code></pre><p><strong>Response Model</strong>:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Response Body</td>\n<td>string</td>\n<td>A plain text confirmation message indicating that the login code has been successfully sent to the provided email address.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-success-response\">Example Success Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Status: 200 OK\nBody: \"The login code has been sent to the provided email address.\"\n</code></pre><hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<p>Returned when required parameters are missing or invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Bad Request\",\n  \"message\": \"Invalid email address or missing required parameters\"\n}\n</code></pre>\n<p><strong>Common Causes</strong>:</p>\n<ul>\n<li>Missing <code>email</code> parameter</li>\n<li>Missing <code>tenant_domain</code> parameter</li>\n<li>Invalid email format</li>\n<li>Email not registered as a contact</li>\n</ul>\n<h3 id=\"404-not-found\">404 Not Found</h3>\n<p>Returned when the contact email is not found in the system.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Not Found\",\n  \"message\": \"Contact not found with the provided email address\"\n}\n</code></pre>\n<h3 id=\"429-too-many-requests\">429 Too Many Requests</h3>\n<p>Returned when rate limits are exceeded (e.g., too many code generation attempts).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Too Many Requests\",\n  \"message\": \"Rate limit exceeded. Please try again later.\"\n}\n</code></pre>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<p>Returned when there's a server-side error (e.g., email service failure).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"Failed to send login code. Please try again later.\"\n}\n</code></pre>\n<hr />\n<h2 id=\"authentication-flow\">Authentication Flow</h2>\n<p>This endpoint is part of a two-step passwordless authentication process for contacts:</p>\n<h3 id=\"step-1-generate-login-code-this-endpoint\">Step 1: Generate Login Code (This Endpoint)</h3>\n<ol>\n<li>Contact provides their email address</li>\n<li>System generates a one-time login code</li>\n<li>Code is sent to the contact's email address</li>\n<li>Success confirmation is returned</li>\n</ol>\n<h3 id=\"step-2-get-token-next-step\">Step 2: Get Token (Next Step)</h3>\n<ol>\n<li>Contact retrieves the code from their email</li>\n<li>Contact calls the \"Get Token\" endpoint with:<ul>\n<li><strong>Username</strong>: Their email address</li>\n<li><strong>Password</strong>: The received login code</li>\n</ul>\n</li>\n<li>System validates the code and returns an authentication token</li>\n<li>Token can be used for subsequent authenticated API calls</li>\n</ol>\n<p><strong>Complete Flow Example</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Step 1: Request login code\nasync function requestLoginCode(email, tenantDomain) {\n  const url = `${tenantDomain}/api/auth/contact/generate-login-code?email=${encodeURIComponent(email)}&amp;tenant_domain=${encodeURIComponent(tenantDomain)}`;\n  \n  const response = await fetch(url, { method: 'POST' });\n  const message = await response.text();\n  console.log(message); // \"The login code has been sent...\"\n  \n  return response.ok;\n}\n\n// Step 2: Exchange code for token (after receiving email)\nasync function getToken(email, loginCode, tenantDomain) {\n  const url = `${tenantDomain}/api/auth/token`;\n  \n  const response = await fetch(url, {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({\n      username: email,\n      password: loginCode, // Use the code as password\n      grant_type: 'password'\n    })\n  });\n  \n  const tokenData = await response.json();\n  return tokenData.access_token;\n}\n\n// Usage\nawait requestLoginCode('contact@example.com', 'https://tenant.example.com');\n// Contact checks email and retrieves code\nconst token = await getToken('contact@example.com', 'CODE_FROM_EMAIL', 'https://tenant.example.com');\n</code></pre>\n<hr />\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<h3 id=\"best-practices\">Best Practices</h3>\n<ol>\n<li><p><strong>Email Validation</strong>: Always validate email format on the client side before making the request to reduce unnecessary API calls.</p>\n</li>\n<li><p><strong>User Feedback</strong>: Inform users to check their spam/junk folder if they don't receive the code within a few minutes.</p>\n</li>\n<li><p><strong>Code Expiration</strong>: Login codes typically expire after a short period (e.g., 15-30 minutes). Implement appropriate messaging for users.</p>\n</li>\n<li><p><strong>Rate Limiting</strong>: Implement client-side throttling to prevent abuse. Don't allow users to request codes too frequently.</p>\n</li>\n<li><p><strong>Error Handling</strong>: Always handle network errors and API errors gracefully with user-friendly messages.</p>\n</li>\n</ol>\n<h3 id=\"security-considerations\">Security Considerations</h3>\n<p>⚠️ <strong>Important Security Notes</strong>:</p>\n<ul>\n<li><p><strong>HTTPS Only</strong>: Always use HTTPS in production to protect email addresses and prevent man-in-the-middle attacks.</p>\n</li>\n<li><p><strong>Rate Limiting</strong>: The endpoint should be rate-limited to prevent abuse and email flooding attacks. Implement exponential backoff on the client side.</p>\n</li>\n<li><p><strong>Code Validity</strong>: Login codes are single-use and time-limited. They should expire after a short period (typically 15-30 minutes).</p>\n</li>\n<li><p><strong>Email Verification</strong>: Ensure the email address belongs to a verified contact before sending codes.</p>\n</li>\n<li><p><strong>Tenant Isolation</strong>: The <code>tenant_domain</code> parameter ensures proper tenant isolation in multi-tenant environments.</p>\n</li>\n<li><p><strong>No Sensitive Data in URLs</strong>: While query parameters are used here, be aware that URLs may be logged. Consider POST body parameters for highly sensitive implementations.</p>\n</li>\n<li><p><strong>Brute Force Protection</strong>: Implement account lockout mechanisms after multiple failed attempts.</p>\n</li>\n</ul>\n<h3 id=\"common-issues\">Common Issues</h3>\n<p><strong>Issue</strong>: Code not received</p>\n<ul>\n<li><strong>Solution</strong>: Check spam folder, verify email address is correct, ensure email service is operational</li>\n</ul>\n<p><strong>Issue</strong>: \"Contact not found\" error</p>\n<ul>\n<li><strong>Solution</strong>: Verify the email is registered as a contact in the system, check for typos</li>\n</ul>\n<p><strong>Issue</strong>: Rate limit errors</p>\n<ul>\n<li><strong>Solution</strong>: Wait before retrying, implement exponential backoff strategy</li>\n</ul>\n<p><strong>Issue</strong>: Wrong tenant domain</p>\n<ul>\n<li><strong>Solution</strong>: Ensure the <code>tenant_domain</code> parameter matches the domain in the URL</li>\n</ul>\n<hr />\n<h2 id=\"variables\">Variables</h2>\n<p>When using this endpoint in Postman, you can leverage the following variables:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>{{tenant_domain}}</code></td>\n<td>The base URL of your tenant instance</td>\n<td><code>https://your-tenant.example.com</code></td>\n</tr>\n<tr>\n<td><code>{{login}}</code></td>\n<td>The contact's email address</td>\n<td><code>contact@example.com</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li><strong>Get Token</strong>: Use this endpoint after receiving the login code to obtain an authentication token</li>\n<li><strong>Refresh Token</strong>: Use to refresh an expired access token</li>\n<li><strong>Logout</strong>: Use to invalidate the current session</li>\n</ul>\n<hr />\n<h2 id=\"support\">Support</h2>\n<p>For additional assistance or to report issues with this endpoint, please contact your system administrator or refer to the complete API documentation.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"path":["api","auth","contact","generate-login-code"],"host":["testsandbox.highp.me"],"query":[{"key":"email","value":"{{login}}"},{"key":"tenant_domain","value":"https://{{tenant_domain}}"}],"variable":[]}},"response":[{"id":"b8b64bb8-4710-46e6-8f9b-d1123619b68f","name":"Generate Login Code for Contact","originalRequest":{"method":"POST","header":[],"url":{"raw":"testsandbox.highp.me/api/auth/contact/generate-login-code?email={{login}}&tenant_domain=https://{{tenant_domain}}","host":["testsandbox.highp.me"],"path":["api","auth","contact","generate-login-code"],"query":[{"key":"email","value":"{{login}}"},{"key":"tenant_domain","value":"https://{{tenant_domain}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 12:10:27 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"59"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 12:10:26 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"authorization"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-bf791603e624842e610898465159528e' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-bf791603e624842e610898465159528e' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"text/plain;charset=ISO-8859-1"}],"cookie":[],"responseTime":null,"body":"The login code has been sent to the provided email address."}],"_postman_id":"4572fe5e-58d0-413e-addc-ef4e026bfe35"}],"id":"d8fdc77d-488d-4f82-9d38-febe9fa5f5a2","_postman_id":"d8fdc77d-488d-4f82-9d38-febe9fa5f5a2","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Get Configuration For Admin","id":"deee94c4-41a0-4cf5-a815-1fdc76765626","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/apps/configuration/app","urlObject":{"protocol":"https","path":["api","core","apps","configuration","app"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"deee94c4-41a0-4cf5-a815-1fdc76765626"},{"name":"Get Configuration For Client","id":"a19a96b1-3d4e-4f10-b8bb-673ae5d6f6bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"video_path\": \"4b9a7c88-3b64-4aa1-b401-0e3e5fa0c223.mp4\",\n    \"tenant_name\": \"ignot-local\",\n    \"mediaassetUuid\": \"4b9a7c88-3b64-4aa1-b401-0e3e5fa0c223\",\n    \"threshold\": 5.0,\n    \"name\": \"Moj plik video\"\n}"},"url":"https://{{tenant_domain}}/api/core/apps/application","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"protocol":"https","path":["api","core","apps","application"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a19a96b1-3d4e-4f10-b8bb-673ae5d6f6bb"}],"id":"d3a8c771-55ec-4c2f-9fc4-5335393c4046","_postman_id":"d3a8c771-55ec-4c2f-9fc4-5335393c4046","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Campaign","item":[{"name":"Export Import","item":[{"name":"Async Bulk Export","item":[{"name":"1. Start async bulk export","event":[{"listen":"test","script":{"id":"2f8890a7-a571-45d1-95af-a51ab83b589d","exec":["var json = pm.response.json();","if (json.taskId) {","    pm.collectionVariables.set('taskId', json.taskId);","    console.log('taskId saved:', json.taskId);","}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"e7c2b933-6a56-4a8e-b9e8-b0b8b154e03c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"uuids\": [\n    \"576861aa-5048-4280-a759-c34029459c9b\",\n    \"a1b2c3d4-e5f6-7890-abcd-ef1234567891\",\n    \"c3d4e5f6-a1b2-3456-cdef-012345678902\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/api/core/campaign/export/bulk/async","description":"<p>Starts an async bulk export job for the given list of campaign UUIDs. Returns immediately with a taskId that can be used to poll for status and retrieve the result.</p>\n<p>The test script automatically saves the returned taskId to the collection variable.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","name":"Campaign","type":"folder"}},"urlObject":{"path":["api","core","campaign","export","bulk","async"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"69a8d776-9f47-45ff-b847-5f87c5d33b1c","name":"202 Accepted - job started","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"uuids\": [\n    \"576861aa-5048-4280-a759-c34029459c9b\",\n    \"a1b2c3d4-e5f6-7890-abcd-ef1234567891\",\n    \"c3d4e5f6-a1b2-3456-cdef-012345678902\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/api/core/campaign/export/bulk/async","description":"Starts an async bulk export job for the given list of campaign UUIDs. Returns immediately with a taskId that can be used to poll for status and retrieve the result.\n\nThe test script automatically saves the returned taskId to the collection variable."},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"taskId\": 42,\n  \"status\": \"IN_PROGRESS\"\n}"}],"_postman_id":"e7c2b933-6a56-4a8e-b9e8-b0b8b154e03c"},{"name":"2. Poll export status","event":[{"listen":"test","script":{"id":"20c6e7b5-8fd3-4b57-827f-41f249982b1d","exec":["var json = pm.response.json();","console.log('Status:', json.status, '| Progress:', json.progress + '%');","if (json.status === 'DONE') {","    console.log('Export finished! Fetch result with taskId:', json.taskId);","}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"88ba0945-a9ad-47a1-ac67-80d77535d1c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":"testsandbox.highp.me/api/core/campaign/export/bulk/:taskId/status","description":"<p>Polls the status of an async bulk export job.</p>\n<p>Possible status values:</p>\n<ul>\n<li><code>IN_PROGRESS</code> — job is running; check <code>progress</code> (0–100) for percentage</li>\n<li><code>DONE</code> — job finished; call the result endpoint to download the ZIP</li>\n<li><code>NOT_FOUND</code> — no job found for this taskId (returns 404)</li>\n</ul>\n<p>Recommended polling interval: every 2–5 seconds.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","name":"Campaign","type":"folder"}},"urlObject":{"path":["api","core","campaign","export","bulk",":taskId","status"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>Task ID returned by the start endpoint</p>\n","type":"text/plain"},"type":"any","value":"{{taskId}}","key":"taskId"}]}},"response":[{"id":"b6285b65-ece2-442b-91b9-05d666782cf6","name":"200 OK - in progress","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/export/bulk/:taskId/status","host":["testsandbox.highp.me"],"path":["api","core","campaign","export","bulk",":taskId","status"],"variable":[{"key":"taskId","value":"{{taskId}}","description":"Task ID returned by the start endpoint"}]},"description":"Polls the status of an async bulk export job.\n\nPossible status values:\n- `IN_PROGRESS` — job is running; check `progress` (0–100) for percentage\n- `DONE` — job finished; call the result endpoint to download the ZIP\n- `NOT_FOUND` — no job found for this taskId (returns 404)\n\nRecommended polling interval: every 2–5 seconds."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"taskId\": 42,\n  \"status\": \"IN_PROGRESS\",\n  \"progress\": 33\n}"},{"id":"a67f7719-a309-4250-aed0-ee9ac631cd61","name":"200 OK - done","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/export/bulk/:taskId/status","host":["testsandbox.highp.me"],"path":["api","core","campaign","export","bulk",":taskId","status"],"variable":[{"key":"taskId","value":"{{taskId}}","description":"Task ID returned by the start endpoint"}]},"description":"Polls the status of an async bulk export job.\n\nPossible status values:\n- `IN_PROGRESS` — job is running; check `progress` (0–100) for percentage\n- `DONE` — job finished; call the result endpoint to download the ZIP\n- `NOT_FOUND` — no job found for this taskId (returns 404)\n\nRecommended polling interval: every 2–5 seconds."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"taskId\": 42,\n  \"status\": \"DONE\",\n  \"progress\": 100\n}"},{"id":"d78832fc-f9a7-4783-9631-4c4e0e7b798d","name":"404 Not Found","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/export/bulk/:taskId/status","host":["testsandbox.highp.me"],"path":["api","core","campaign","export","bulk",":taskId","status"],"variable":[{"key":"taskId","value":"{{taskId}}","description":"Task ID returned by the start endpoint"}]},"description":"Polls the status of an async bulk export job.\n\nPossible status values:\n- `IN_PROGRESS` — job is running; check `progress` (0–100) for percentage\n- `DONE` — job finished; call the result endpoint to download the ZIP\n- `NOT_FOUND` — no job found for this taskId (returns 404)\n\nRecommended polling interval: every 2–5 seconds."},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"taskId\": 42,\n  \"status\": \"NOT_FOUND\",\n  \"progress\": 0\n}"}],"_postman_id":"88ba0945-a9ad-47a1-ac67-80d77535d1c4"},{"name":"3. Download export result (.zip)","id":"a9c602d0-f62c-44fc-9518-adfa5d9592f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":"testsandbox.highp.me/api/core/campaign/export/bulk/:taskId/result","description":"<p>Downloads the completed bulk export as a ZIP file containing one <code>.highp</code> file per campaign.</p>\n<p><strong>Important:</strong> This is a one-shot endpoint — the result is removed from memory after the first successful download. Call it only once per taskId.</p>\n<p>Returns 404 if the job is not done yet or the result was already fetched.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","name":"Campaign","type":"folder"}},"urlObject":{"path":["api","core","campaign","export","bulk",":taskId","result"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>Task ID returned by the start endpoint</p>\n","type":"text/plain"},"type":"any","value":"{{taskId}}","key":"taskId"}]}},"response":[{"id":"47f6c3d4-9326-42b2-ad34-9e8b2a7663e5","name":"200 OK - ZIP download","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/export/bulk/:taskId/result","host":["testsandbox.highp.me"],"path":["api","core","campaign","export","bulk",":taskId","result"],"variable":[{"key":"taskId","value":"{{taskId}}","description":"Task ID returned by the start endpoint"}]},"description":"Downloads the completed bulk export as a ZIP file containing one `.highp` file per campaign.\n\n**Important:** This is a one-shot endpoint — the result is removed from memory after the first successful download. Call it only once per taskId.\n\nReturns 404 if the job is not done yet or the result was already fetched."},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/octet-stream"},{"key":"Content-Disposition","value":"form-data; name=\"attachment\"; filename=\"campaigns_export_42.zip\""}],"cookie":[],"responseTime":null,"body":"<binary ZIP containing .highp files>"},{"id":"8fb6bb09-65b3-4bac-8122-f14674fd4875","name":"404 Not Found - not ready or already fetched","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/export/bulk/:taskId/result","host":["testsandbox.highp.me"],"path":["api","core","campaign","export","bulk",":taskId","result"],"variable":[{"key":"taskId","value":"{{taskId}}","description":"Task ID returned by the start endpoint"}]},"description":"Downloads the completed bulk export as a ZIP file containing one `.highp` file per campaign.\n\n**Important:** This is a one-shot endpoint — the result is removed from memory after the first successful download. Call it only once per taskId.\n\nReturns 404 if the job is not done yet or the result was already fetched."},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"taskId\": 42,\n  \"status\": \"NOT_FOUND\"\n}"}],"_postman_id":"a9c602d0-f62c-44fc-9518-adfa5d9592f9"}],"id":"3d047168-1194-424a-aa37-4905439a335e","_postman_id":"3d047168-1194-424a-aa37-4905439a335e","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","name":"Campaign","type":"folder"}}},{"name":"Export single campaign from campaignUuid as .highp","id":"218199b2-293f-41c8-8281-ac688e012eff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":"testsandbox.highp.me/api/core/campaign/:uuid/export","description":"<p>Exports a single campaign as a .highp file (binary download). The file contains base64-encoded JSON wrapped with hostname metadata, identical in format to the POST /campaign/export endpoint.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","name":"Campaign","type":"folder"}},"urlObject":{"path":["api","core","campaign",":uuid","export"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>Campaign UUID</p>\n","type":"text/plain"},"type":"any","value":"576861aa-5048-4280-a759-c34029459c9b","key":"uuid"}]}},"response":[{"id":"7892f6ff-ae16-49a0-af1d-bfc58ebf9bdf","name":"200 OK - .highp file download","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/:uuid/export","host":["testsandbox.highp.me"],"path":["api","core","campaign",":uuid","export"],"variable":[{"key":"uuid","value":"576861aa-5048-4280-a759-c34029459c9b","description":"Campaign UUID"}]},"description":"Exports a single campaign as a .highp file (binary download). The file contains base64-encoded JSON wrapped with hostname metadata, identical in format to the POST /campaign/export endpoint."},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/octet-stream"},{"key":"Content-Disposition","value":"form-data; name=\"attachment\"; filename=\"My Campaign_576861aa-5048-4280-a759-c34029459c9b.highp\""}],"cookie":[],"responseTime":null,"body":"<binary .highp file content>"},{"id":"659ca991-9171-4d77-ada8-3cdfe5b5c941","name":"404 Not Found","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{token}}","type":"text"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/:uuid/export","host":["testsandbox.highp.me"],"path":["api","core","campaign",":uuid","export"],"variable":[{"key":"uuid","value":"576861aa-5048-4280-a759-c34029459c9b","description":"Campaign UUID"}]},"description":"Exports a single campaign as a .highp file (binary download). The file contains base64-encoded JSON wrapped with hostname metadata, identical in format to the POST /campaign/export endpoint."},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"status\": 404,\n  \"error\": \"Not Found\",\n  \"message\": \"Campaign not found: 576861aa-5048-4280-a759-c34029459c9b\"\n}"}],"_postman_id":"218199b2-293f-41c8-8281-ac688e012eff"},{"name":"Export single campaign from BASE64JSON as .highp","id":"107cd9e7-5b73-4deb-b1f7-068d3655d8e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer <TOKEN>"}],"body":{"mode":"raw","raw":"{\"data\": \"<BASE64_ENCODED_CAMPAIGN_DATA>\"}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/api/core/campaign/export","description":"<p>Generated from cURL: curl -X POST <a href=\"http://localhost:8080/campaign/export\">http://localhost:8080/campaign/export</a> \\<br />    -H \"Content-Type: application/json\" \\<br />    -H \"Authorization: Bearer \" \\<br />    -d '{\"data\": \"\"}' \\<br />    --output campaign_export.highp                                                                                                                                                                    \n                                  </p>\n","urlObject":{"path":["api","core","campaign","export"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"107cd9e7-5b73-4deb-b1f7-068d3655d8e4"},{"name":"Campaign Import","id":"b95c4b58-56e0-46ae-8674-22f44a85365b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer <TOKEN>"}],"body":{"mode":"formdata","formdata":[{"type":"file","key":"file","src":"/C:/Users/igorgnot/Downloads/Engage Test Problems_576861aa-5048-4280-a759-c34029459c9b.highp"},{"type":"text","key":"moveMediaAssets","value":"true"}]},"url":"testsandbox.highp.me/api/core/campaign/import","description":"<p>Generated from cURL: curl -X POST <a href=\"http://localhost:8080/campaign/import\">http://localhost:8080/campaign/import</a> \\<br />-H \"Authorization: Bearer \" \\<br />-F \"file=@/path/to/campaign.highp\" \\<br />-F \"moveMediaAssets=true\"</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","name":"Campaign","type":"folder"}},"urlObject":{"path":["api","core","campaign","import"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"b95c4b58-56e0-46ae-8674-22f44a85365b"},{"name":"Export campaigns in bulk","id":"5547d400-01bc-425d-8efe-aec506f2518e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"uuids\": [\r\n    \"576861aa-5048-4280-a759-c34029459c9b\",\r\n    \"e860ec7e-491e-4b93-9abd-b9fd37cf8fa3\"\r\n  ]\r\n}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/api/core/campaign/export/bulk","description":"<p>StartFragment</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Disposition: attachment; filename=\"campaigns_export_20260221_143022.zip\"\n\n</code></pre><p>EndFragment</p>\n","urlObject":{"path":["api","core","campaign","export","bulk"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"5547d400-01bc-425d-8efe-aec506f2518e"},{"name":"Export campaign from campaignUuid","id":"edf648cc-3b4c-4441-9f9a-277615a7a1d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign//export","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","name":"Campaign","type":"folder"}},"urlObject":{"path":["api","core","campaign","","export"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"edf648cc-3b4c-4441-9f9a-277615a7a1d3"}],"id":"6551361d-6ede-4554-9e4a-b89bc2c9beea","_postman_id":"6551361d-6ede-4554-9e4a-b89bc2c9beea","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","name":"Campaign","type":"folder"}}},{"name":"[Representative] Get All Campaigns by RepUUID","id":"f800171e-6062-4a23-8436-821fc6456739","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign/all-for-rep?repUuid={{userUuid}}&search=phrase_to_search&page=0&size=20&sortBy=name&sortDirection=desc","description":"<h1 id=\"get-all-engage-campaigns-for-representative\">Get All ENGAGE Campaigns for Representative</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves all ENGAGE campaigns associated with a specific representative. It supports pagination, filtering, and sorting to help representatives efficiently manage and view their campaigns.</p>\n<p><strong>Endpoint:</strong> <code>GET /api/core/campaign/all-for-rep</code></p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n</code></pre><p>The <code>repUuid</code> parameter must match the <code>user_id</code> from the decoded access token to ensure representatives can only access their own campaigns.</p>\n<hr />\n<h2 id=\"request-parameters\">Request Parameters</h2>\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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>repUuid</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>-</td>\n<td>The unique identifier for the representative. Must match the user_id from the decoded access token.</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>A phrase to filter campaigns by name or description.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td><code>0</code></td>\n<td>The page number for pagination (zero-indexed).</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td><code>20</code></td>\n<td>Number of campaigns to return per page.</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>name</code></td>\n<td>Field to sort results by (e.g., <code>name</code>, <code>dateStartUTC</code>, <code>status</code>).</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>desc</code></td>\n<td>Sort direction: <code>asc</code> (ascending) or <code>desc</code> (descending).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch'); // or use native fetch in Node 18+\n\nasync function getAllCampaignsForRep() {\n  const tenantDomain = 'your-tenant.highp.me';\n  const accessToken = 'your_access_token_here';\n  const userUuid = 'your_user_uuid_here';\n  \n  // Construct URL with query parameters\n  const baseUrl = `https://${tenantDomain}/api/core/campaign/all-for-rep`;\n  const params = new URLSearchParams({\n    repUuid: userUuid,\n    page: '0',\n    size: '20',\n    sortBy: 'name',\n    sortDirection: 'desc'\n    // search: 'optional_search_phrase' // Uncomment to filter by search term\n  });\n  \n  const url = `${baseUrl}?${params.toString()}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('Campaigns retrieved:', data);\n    return data;\n    \n  } catch (error) {\n    console.error('Error fetching campaigns:', error);\n    throw error;\n  }\n}\n\n// Usage\ngetAllCampaignsForRep()\n  .then(campaigns =&gt; {\n    console.log(`Total campaigns: ${campaigns.totalElements}`);\n    console.log(`Current page: ${campaigns.number + 1} of ${campaigns.totalPages}`);\n    campaigns.content.forEach(campaign =&gt; {\n      console.log(`- ${campaign.name} (${campaign.status})`);\n    });\n  })\n  .catch(error =&gt; console.error('Failed:', error));\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The response returns a paginated list of campaigns with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"name\": \"string\",\n      \"title\": \"string\",\n      \"configuration\": \"string (JSON)\",\n      \"dateStartUTC\": \"string (ISO 8601 datetime)\",\n      \"status\": \"string (e.g., 'started', 'draft', 'completed')\",\n      \"uuid\": \"string (UUID)\",\n      \"dateEndUTC\": \"string (ISO 8601 datetime) | null\",\n      \"videoScript\": \"string (HTML)\",\n      \"type\": \"string (e.g., 'ENGAGE')\",\n      \"updatedAt\": \"string (ISO 8601 datetime)\",\n      \"interactivity\": \"object | null\",\n      \"fragments\": [\n        {\n          \"uuid\": \"string (UUID)\",\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"defaultValue\": \"string (HTML)\",\n          \"allowedValues\": \"string (JSON array)\",\n          \"campaignUuids\": [\"string (UUID)\"]\n        }\n      ],\n      \"campaignChannels\": [\n        {\n          \"uuid\": \"string (UUID)\",\n          \"discriminator\": \"string (e.g., 'CampaignSmsApiChannel', 'CampaignEmailChannel')\",\n          \"message\": \"string (HTML or plain text)\",\n          \"subject\": \"string | null\",\n          \"enabled\": \"boolean\"\n        }\n      ]\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": \"boolean\",\n      \"sorted\": \"boolean\",\n      \"unsorted\": \"boolean\"\n    },\n    \"offset\": \"integer\",\n    \"pageNumber\": \"integer\",\n    \"pageSize\": \"integer\",\n    \"paged\": \"boolean\",\n    \"unpaged\": \"boolean\"\n  },\n  \"last\": \"boolean\",\n  \"totalElements\": \"integer\",\n  \"totalPages\": \"integer\",\n  \"size\": \"integer\",\n  \"number\": \"integer\",\n  \"sort\": {\n    \"empty\": \"boolean\",\n    \"sorted\": \"boolean\",\n    \"unsorted\": \"boolean\"\n  },\n  \"first\": \"boolean\",\n  \"numberOfElements\": \"integer\",\n  \"empty\": \"boolean\"\n}\n</code></pre>\n<h3 id=\"response-fields-description\">Response Fields Description</h3>\n<h4 id=\"campaign-object-fields\">Campaign Object Fields</h4>\n<ul>\n<li><strong>name</strong>: Campaign name/identifier</li>\n<li><strong>title</strong>: Display title of the campaign</li>\n<li><strong>configuration</strong>: JSON string containing campaign configuration (padding, background color, timezone, etc.)</li>\n<li><strong>dateStartUTC</strong>: Campaign start date in UTC (ISO 8601 format)</li>\n<li><strong>status</strong>: Current campaign status (<code>started</code>, <code>draft</code>, <code>completed</code>, etc.)</li>\n<li><strong>uuid</strong>: Unique identifier for the campaign</li>\n<li><strong>dateEndUTC</strong>: Campaign end date in UTC (null if ongoing)</li>\n<li><strong>videoScript</strong>: HTML content of the video script</li>\n<li><strong>type</strong>: Campaign type (typically <code>ENGAGE</code>)</li>\n<li><strong>updatedAt</strong>: Last update timestamp in UTC</li>\n<li><strong>interactivity</strong>: Interactive elements configuration (if any)</li>\n<li><strong>fragments</strong>: Array of reusable content fragments that can be personalized</li>\n<li><strong>campaignChannels</strong>: Delivery channels (SMS, Email, etc.) with their configurations</li>\n</ul>\n<h4 id=\"pagination-fields\">Pagination Fields</h4>\n<ul>\n<li><strong>content</strong>: Array of campaign objects for the current page</li>\n<li><strong>totalElements</strong>: Total number of campaigns across all pages</li>\n<li><strong>totalPages</strong>: Total number of pages available</li>\n<li><strong>size</strong>: Number of items per page (as requested)</li>\n<li><strong>number</strong>: Current page number (zero-indexed)</li>\n<li><strong>first</strong>: Boolean indicating if this is the first page</li>\n<li><strong>last</strong>: Boolean indicating if this is the last page</li>\n<li><strong>numberOfElements</strong>: Number of campaigns in the current page</li>\n<li><strong>empty</strong>: Boolean indicating if the result set is empty</li>\n</ul>\n<hr />\n<h2 id=\"example-responses\">Example Responses</h2>\n<h3 id=\"success-response-example\">Success Response Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"name\": \"Z wideo personal\",\n      \"title\": \"\",\n      \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"btc\\\":\\\"#f1f1f1\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n      \"dateStartUTC\": \"2024-02-14T12:40:51Z\",\n      \"status\": \"started\",\n      \"uuid\": \"a653e1b1-b621-492d-a92b-4f42302a6071\",\n      \"dateEndUTC\": null,\n      \"videoScript\": \"&lt;p&gt;1 gddfh 2&lt;/p&gt;\",\n      \"type\": \"ENGAGE\",\n      \"updatedAt\": \"2024-02-14T12:42:21Z\",\n      \"interactivity\": null,\n      \"fragments\": [],\n      \"campaignChannels\": [\n        {\n          \"uuid\": \"56c1eac0-debb-428f-a40c-9ec8a1b93410\",\n          \"discriminator\": \"CampaignEmailChannel\",\n          \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n          \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n          \"enabled\": true\n        },\n        {\n          \"uuid\": \"e59f4d6b-7df6-40a0-9b9f-c9635ffcad7d\",\n          \"discriminator\": \"CampaignSmsApiChannel\",\n          \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n          \"subject\": null,\n          \"enabled\": true\n        }\n      ]\n    },\n    {\n      \"name\": \"Wszystkie komponenty ENGAGE\",\n      \"title\": \"TEST ALL ENGAGE\",\n      \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#e6f2e6\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"center\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"bgc\\\":\\\"#99cc99\\\",\\\"colors\\\":{\\\"pal\\\":[\\\"#0000FF\\\"]},\\\"wide\\\":\\\"all\\\",\\\"tz\\\":\\\"Europe/Warsaw\\\",\\\"streamok\\\":\\\"22\\\"}\",\n      \"dateStartUTC\": \"2024-07-01T11:25:43Z\",\n      \"status\": \"started\",\n      \"uuid\": \"97cb5322-06bb-41c4-87f5-3c2b4e6d4a54\",\n      \"dateEndUTC\": null,\n      \"videoScript\": \"&lt;p&gt;time&lt;/p&gt;\",\n      \"type\": \"ENGAGE\",\n      \"updatedAt\": \"2024-07-23T09:56:50Z\",\n      \"interactivity\": null,\n      \"fragments\": [],\n      \"campaignChannels\": [\n        {\n          \"uuid\": \"571c9401-6c1f-412b-a6e2-dc62604740e1\",\n          \"discriminator\": \"CampaignEmailChannel\",\n          \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}} {{previewGif}}  {{previewButtonGif}}  {{previewButtonGifRounded}} \",\n          \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n          \"enabled\": true\n        },\n        {\n          \"uuid\": \"71a58a2a-c3ce-4836-a127-7824a958fb3c\",\n          \"discriminator\": \"CampaignSmsApiChannel\",\n          \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n          \"subject\": null,\n          \"enabled\": true\n        }\n      ]\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"last\": false,\n  \"totalElements\": 15,\n  \"totalPages\": 1,\n  \"size\": 20,\n  \"number\": 0,\n  \"first\": true,\n  \"numberOfElements\": 15,\n  \"empty\": false\n}\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<p>Returned when the access token is invalid, expired, or missing.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or expired access token\"\n}\n</code></pre>\n<p><strong>Common causes:</strong></p>\n<ul>\n<li>Missing Authorization header</li>\n<li>Expired access token</li>\n<li>Invalid token format</li>\n</ul>\n<hr />\n<h3 id=\"403-forbidden\">403 Forbidden</h3>\n<p>Returned when the authenticated user attempts to access campaigns for a different representative.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Forbidden\",\n  \"message\": \"repUuid does not match authenticated user\"\n}\n</code></pre>\n<p><strong>Common causes:</strong></p>\n<ul>\n<li><code>repUuid</code> parameter doesn't match the <code>user_id</code> from the decoded access token</li>\n<li>Insufficient permissions</li>\n</ul>\n<hr />\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<p>Returned when request parameters are invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Bad Request\",\n  \"message\": \"Invalid query parameter: sortDirection must be 'asc' or 'desc'\"\n}\n</code></pre>\n<p><strong>Common causes:</strong></p>\n<ul>\n<li>Invalid <code>sortDirection</code> value (must be <code>asc</code> or <code>desc</code>)</li>\n<li>Invalid <code>page</code> or <code>size</code> values (must be non-negative integers)</li>\n<li>Invalid <code>sortBy</code> field name</li>\n</ul>\n<hr />\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred\"\n}\n</code></pre>\n<hr />\n<h2 id=\"status-codes-summary\">Status Codes Summary</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Success - Campaigns retrieved successfully</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid parameters</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Authentication required or token invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Access denied to requested resource</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"important-notes\">Important Notes</h2>\n<h3 id=\"pagination\">Pagination</h3>\n<ul>\n<li>Pages are <strong>zero-indexed</strong> (first page is <code>page=0</code>)</li>\n<li>Use <code>totalPages</code> and <code>totalElements</code> to implement pagination controls</li>\n<li>The <code>last</code> and <code>first</code> boolean fields help determine navigation state</li>\n<li>Maximum page size may be limited by server configuration</li>\n</ul>\n<h3 id=\"sorting\">Sorting</h3>\n<ul>\n<li>Default sort is by <code>name</code> in descending order</li>\n<li>Common sortable fields: <code>name</code>, <code>dateStartUTC</code>, <code>updatedAt</code>, <code>status</code></li>\n<li>Always specify both <code>sortBy</code> and <code>sortDirection</code> for predictable results</li>\n</ul>\n<h3 id=\"filtering\">Filtering</h3>\n<ul>\n<li>The <code>search</code> parameter performs a case-insensitive search across campaign names and descriptions</li>\n<li>Leave <code>search</code> empty or omit it to retrieve all campaigns</li>\n</ul>\n<h3 id=\"authorization\">Authorization</h3>\n<ul>\n<li>The <code>repUuid</code> parameter is validated against the authenticated user's ID</li>\n<li>Representatives can only access their own campaigns</li>\n<li>Attempting to access another representative's campaigns will result in a 403 Forbidden error</li>\n</ul>\n<h3 id=\"campaign-channels\">Campaign Channels</h3>\n<ul>\n<li>Each campaign can have multiple delivery channels (Email, SMS, etc.)</li>\n<li>Channels can be individually enabled/disabled via the <code>enabled</code> flag</li>\n<li>Email channels include a <code>subject</code> field, while SMS channels do not</li>\n<li>Messages support template variables like <code>{{url}}</code>, <code>{{rep.fullName}}</code>, <code>{{doc.fullName}}</code></li>\n</ul>\n<h3 id=\"fragments\">Fragments</h3>\n<ul>\n<li>Fragments are reusable content blocks that can be personalized per contact</li>\n<li>Each fragment has a <code>defaultValue</code> and optional <code>allowedValues</code> for variations</li>\n<li>Fragments can be shared across multiple campaigns via <code>campaignUuids</code></li>\n</ul>\n<h3 id=\"performance\">Performance</h3>\n<ul>\n<li>For large datasets, use smaller page sizes (10-20) for better performance</li>\n<li>Consider caching results when appropriate</li>\n<li>The API returns only active campaigns by default</li>\n</ul>\n<hr />\n<h2 id=\"use-cases\">Use Cases</h2>\n<p>This endpoint is useful for:</p>\n<ul>\n<li><strong>Campaign Management Dashboards</strong>: Display all campaigns for a representative with sorting and filtering</li>\n<li><strong>Representative Portals</strong>: Allow reps to view and manage their assigned campaigns</li>\n<li><strong>Search Functionality</strong>: Implement campaign search by name or description</li>\n<li><strong>Reporting</strong>: Export campaign data for analytics and performance tracking</li>\n<li><strong>Status Monitoring</strong>: Track campaign lifecycle and current status</li>\n<li><strong>Multi-channel Campaign Management</strong>: View and manage campaigns across email, SMS, and other channels</li>\n</ul>\n<hr />\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li><code>POST /api/core/campaign</code> - Create a new campaign</li>\n<li><code>GET /api/core/campaign/{uuid}</code> - Get campaign details by UUID</li>\n<li><code>PUT /api/core/campaign/{uuid}</code> - Update campaign</li>\n<li><code>DELETE /api/core/campaign/{uuid}</code> - Delete campaign</li>\n<li><code>GET /api/core/campaign/{uuid}/contacts</code> - Get contacts for a campaign</li>\n</ul>\n","urlObject":{"path":["api","core","campaign","all-for-rep"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"repUuid","value":"{{userUuid}}"},{"key":"search","value":"phrase_to_search"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"5ab70131-754e-495e-9e2e-c8a82c5a439b","name":"[Representative] Get All Campaigns by RepUUID","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/all-for-rep?repUuid={{userUuid}}&search=phrase_to_search&page=0&size=20&sortBy=name&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","campaign","all-for-rep"],"query":[{"description":"required","key":"repUuid","value":"{{userUuid}}"},{"key":"search","value":"phrase_to_search"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 12:14:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 12:14:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-ee21b08a7e14e671b999a574837b95c6' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-ee21b08a7e14e671b999a574837b95c6' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"name\": \"Z wideo personal\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"btc\\\":\\\"#f1f1f1\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-02-14T12:40:51Z\",\n            \"status\": \"started\",\n            \"uuid\": \"a653e1b1-b621-492d-a92b-4f42302a6071\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>1 gddfh 2</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-02-14T12:42:21Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"56c1eac0-debb-428f-a40c-9ec8a1b93410\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"e59f4d6b-7df6-40a0-9b9f-c9635ffcad7d\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Wszystkie komponenty ENGAGE\",\n            \"title\": \"TEST ALL ENGAGE\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#e6f2e6\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"center\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"bgc\\\":\\\"#99cc99\\\",\\\"colors\\\":{\\\"pal\\\":[\\\"#0000FF\\\"]},\\\"wide\\\":\\\"all\\\",\\\"tz\\\":\\\"Europe/Warsaw\\\",\\\"streamok\\\":\\\"22\\\"}\",\n            \"dateStartUTC\": \"2024-07-01T11:25:43Z\",\n            \"status\": \"started\",\n            \"uuid\": \"97cb5322-06bb-41c4-87f5-3c2b4e6d4a54\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>time</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-07-23T09:56:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"571c9401-6c1f-412b-a6e2-dc62604740e1\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}} {{previewGif}}  {{previewButtonGif}}  {{previewButtonGifRounded}} \",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"71a58a2a-c3ce-4836-a127-7824a958fb3c\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"webDB\",\n            \"title\": \"webDB\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-08-09T14:05:53Z\",\n            \"status\": \"started\",\n            \"uuid\": \"f8e46c3e-9cd2-4bb3-b30f-cb7573adca74\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-08-12T11:04:40Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"4a1ee545-0ecf-4081-9896-deec62f6a0b9\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"354fb763-7f7b-4acc-a601-ba390a171cb8\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"WB E D\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-05-05T15:05:28Z\",\n            \"status\": \"started\",\n            \"uuid\": \"533badca-1322-4039-8b96-e15f2390ad5f\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"6273cb9d89558\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"d02ba7a1-ed89-4621-b8e4-18c590dba159\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\\n\\ngif:  {{>previewButtonGif}} \\n\\nlink gif:  {{previewGif}} \",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"007b78b8-e444-4ab9-8478-7a527c224678\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\\n\\ngif {{previewJpg}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"vf [cloned]\",\n            \"title\": \"vf [cloned]\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"design\\\":{\\\"email\\\":\\\"text\\\"},\\\"wide\\\":0,\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2024-11-21T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-21T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-22T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-22T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-23T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-23T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false,\\\"ignoreConsentPolicy\\\":false}\",\n            \"dateStartUTC\": \"2024-11-21T15:12:10Z\",\n            \"status\": \"started\",\n            \"uuid\": \"aacbd015-ea57-4545-a24d-b9dcd14b3e84\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-11-21T15:14:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"ef84a592-75fb-4761-8773-0916314c7648\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"{{url}}\",\n                    \"subject\": \"fff\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"bfa2ad98-1167-4c02-8093-5703eb8fbf4b\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"vf\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"design\\\":{\\\"email\\\":\\\"text\\\"},\\\"wide\\\":0,\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2024-11-21T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-21T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-22T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-22T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-23T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-23T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2024-11-21T14:48:31Z\",\n            \"status\": \"started\",\n            \"uuid\": \"80482e06-8e48-48a5-b9f2-d70e55b54800\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"WEPjjFqi9Xjes\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-11-21T14:56:06Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"9a5bfd78-5d72-418e-9402-b28540fe99b7\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"{{url}}\",\n                    \"subject\": \"fff\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"49fc7535-4c57-4136-8ead-98f262e250b8\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"unsub3\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-10-14T15:29:05Z\",\n            \"status\": \"started\",\n            \"uuid\": \"69ac7709-a39e-4c61-8dda-91e6c1f1d49a\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"VouOA45SHBOZr\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"a5c79402-6b4c-406c-99f9-19457a170615\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"7a423c0c-f286-4dfd-b188-a81fa353d1c2\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"unsub2\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-10-14T15:28:29Z\",\n            \"status\": \"started\",\n            \"uuid\": \"ba7f03d6-48a8-4201-9a83-cf58cd188421\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"dEznXUkp6gM2w\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"0b171353-fc13-45ae-af24-71929e307d9e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"9871d9a1-72df-4cf5-bfa1-00c470b06a74\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"unsub1\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-10-14T13:28:17Z\",\n            \"status\": \"started\",\n            \"uuid\": \"ea2e7566-7fc0-489d-a40d-4917d8d4ceb7\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"PWf3GqFCFybOM\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"3774f378-095c-4279-9954-84c2a10150e8\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"ab97dbcd-4219-4e2f-ac85-7bddd3bd2c7d\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"tttggg\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"wide\\\":0,\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2024-11-21T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-21T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-22T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-22T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-23T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-23T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2024-11-21T15:37:33Z\",\n            \"status\": \"started\",\n            \"uuid\": \"25e67cf8-ce3f-4278-a144-092a72534777\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-11-21T15:37:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"5e915695-8f5b-44c0-9332-ec0d0a36954e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": \"tess\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"212aa9fd-5942-4eb8-9b93-d47ec0043f8d\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"ttt2\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"design\\\":{\\\"fullw\\\":true}}\",\n            \"dateStartUTC\": \"2023-10-31T11:46:17Z\",\n            \"status\": \"started\",\n            \"uuid\": \"626eed2e-a3b7-45c6-98a8-ae5a26e0b2d9\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-10-31T11:46:37Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"895cdbba-18ac-4e12-94c8-c1d7340035f5\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"3f1fa7db-f4cb-4acd-bc65-c1d90b1fcc2a\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"TRTY\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2023-03-08T13:25:24Z\",\n            \"status\": \"started\",\n            \"uuid\": \"37234369-0dad-4f87-a205-e3c79e700c7f\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"wNLJz4GjIdXn9\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-03-09T14:09:49Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"fe85479b-c252-4a94-9277-ebb3183dac0c\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"28a56915-7e6c-408d-966e-e214728a4f39\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"tret\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"design\\\":{\\\"fullw\\\":true}}\",\n            \"dateStartUTC\": \"2023-10-31T10:20:02Z\",\n            \"status\": \"started\",\n            \"uuid\": \"2033e050-c45d-462a-b93c-a89540123cbc\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-10-31T10:20:37Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"709a265d-3b8a-4a21-ad3c-5ccbbfe730c8\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"9eac92e3-6ccc-4a6d-af5d-34af22e21684\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"TetR\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2023-03-07T13:03:50Z\",\n            \"status\": \"started\",\n            \"uuid\": \"b79518ec-68ae-434d-b24c-e5d5128d2975\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"UoogfJy4qUjMB\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-03-07T13:04:49Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"5f896dfb-80cc-4770-bf34-3f68f467492c\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"382a806d-f3fc-441b-a178-7fc11a40f9ca\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"tet1\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2023-03-14T10:29:02Z\",\n            \"status\": \"started\",\n            \"uuid\": \"e356a400-e4c1-4dd3-925e-f5715a094728\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"s2GukOJKK5Fu0\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-03-14T12:32:49Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"82757054-c9ef-4945-8bb3-a0386648caf9\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"534bb9ee-3675-4491-954f-769a7c3ec70d\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"tet\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-10-07T11:13:34Z\",\n            \"status\": \"started\",\n            \"uuid\": \"dde0e438-7fbd-440b-9121-dbb194e3e301\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"0tsNhLLRERugy\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"eac16161-680f-44c5-bb97-078362864528\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"9d77cf7e-a6a0-49a8-9b05-893e55e9b967\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Testy DDg\",\n            \"title\": \"Testy DDg\",\n            \"configuration\": \"{\\\"design\\\":{\\\"fullw\\\":true}}\",\n            \"dateStartUTC\": \"2023-08-16T10:51:16Z\",\n            \"status\": \"started\",\n            \"uuid\": \"e3dd093e-2f7f-4839-8011-2352c5f60edf\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>test12312312321</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-08-23T08:38:44Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"3dcf3b86-76f6-4b28-b941-4be82452b73e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\\n {{previewGif}} \\n\\n {{previewButtonGif}} \",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"188d1542-d2ac-4280-b7f9-5306fb30b95f\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\\n {{previewJpg}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Testy988\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-08-19T12:51:05Z\",\n            \"status\": \"started\",\n            \"uuid\": \"0aba5db7-cf29-4f96-af0a-a1d67d6cd8c2\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>123</p>\\n<p>{{next}}</p>\\n<p>333</p>\\n<p>{{next}}</p>\\n<p>444</p>\\n<p>{{next}}</p>\\n<p>5432</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-08-19T12:51:40Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"2391e13f-c337-4844-9a2f-c5660203ef72\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}} {{previewGif}}  {{previewButtonGif}}  {{previewButtonGifRounded}} \",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"7cb1fc71-efb7-48e3-9309-23e6bf6d9f8a\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"test wid bez wid\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"ignoreConsentPolicy\\\":true,\\\"wide\\\":0,\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2024-12-04T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-12-04T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-12-05T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-12-05T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-12-06T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-12-06T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2024-12-04T11:10:37Z\",\n            \"status\": \"started\",\n            \"uuid\": \"c06051bc-fd67-4070-a013-41290938e18a\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>ts</p>\\n<p>{{next}}</p>\\n<p>test</p>\\n<p>{{next}}</p>\\n<p>123</p>\\n<p>{{next}}</p>\\n<p>gsfsfs</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-12-04T11:10:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"637d6701-cabe-41ef-b67a-a46aeb7f0d63\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": \" {{rep.fullName}} \",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"4782528e-d7e3-46f5-99af-bcce9e7cb637\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"TestWEBWB988\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"track\\\":true,\\\"wide\\\":0,\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-08-30T10:52:40Z\",\n            \"status\": \"started\",\n            \"uuid\": \"5a7ddb36-df12-43c3-b9f4-65cd4e8c3fc2\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>1</p>\\n<p>{{next}}</p>\\n<p>234</p>\\n<p>{{next}}</p>\\n<p>566</p>\\n<p>{{next}}</p>\\n<p>1234</p>\\n<p>{{next}}</p>\\n<p>6543</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-08-30T10:53:22Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"e477fb6f-1fe3-4ac7-8758-baabb5370ee8\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Je envoie un message vidéo, vous pouvez le voir sur {{url}} {{previewGif}}  {{previewButtonGif}}  {{previewButtonGifRounded}} \",\n                    \"subject\": \"{{rep.fullName}} envoie un message vidéo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"e276104a-4aa5-4e15-9944-2632f6959946\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"J'envoie un message vidéo, vous pouvez le voir sur {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 182,\n    \"totalPages\": 10,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"f800171e-6062-4a23-8436-821fc6456739"},{"name":"[Representative] Get All Campaigns by Contact Uuid","id":"7e7995fc-e8e4-4272-8b4d-997c7127dfda","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/:tenant_domain/api/core/campaign/all-for-contact?contactUuid={{contactUuid}}&search=string&page=0&size=20&sortBy=name&sortDirection=desc","description":"<h3 id=\"get-all-engage-campaigns-for-contact\">Get All ENGAGE Campaigns for Contact</h3>\n<p>This endpoint retrieves all ENGAGE campaigns associated with a specific contact. It provides paginated results with support for filtering and sorting, allowing representatives to efficiently manage and view campaigns.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication.</p>\n<p><strong>Header:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n\n</code></pre><p>The token must be valid and associated with a representative who has access to the specified contact's campaigns.</p>\n<hr />\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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>-</td>\n<td>The unique identifier (UUID) of the contact whose campaigns you want to retrieve.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td><code>0</code></td>\n<td>The page number for pagination. Zero-indexed (first page is 0).</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td><code>20</code></td>\n<td>The number of campaigns to return per page. Maximum recommended: 100.</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>name</code></td>\n<td>The field by which to sort the results. Common values: <code>name</code>, <code>dateStartUTC</code>, <code>updatedAt</code>.</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>desc</code></td>\n<td>The sort direction. Accepted values: <code>asc</code> (ascending) or <code>desc</code> (descending).</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Optional search phrase to filter campaigns by name or title.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n// Configuration\nconst tenantDomain = 'your-tenant-domain.highp.me'; // Replace with your tenant domain\nconst contactUuid = 'your-contact-uuid'; // Replace with actual contact UUID\nconst bearerToken = 'your-bearer-token'; // Replace with your access token\n// API endpoint with query parameters\nconst url = `https://${tenantDomain}/api/core/campaign/all-for-contact?contactUuid=${contactUuid}&amp;page=0&amp;size=20&amp;sortBy=name&amp;sortDirection=desc`;\n// Make the request\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${bearerToken}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Campaigns retrieved successfully:');\n    console.log(`Total campaigns: ${data.content.length}`);\n    console.log(`Total pages: ${data.totalPages}`);\n    console.log(`Total elements: ${data.totalElements}`);\n    // Process campaigns\n    data.content.forEach(campaign =&gt; {\n      console.log(`- ${campaign.name} (${campaign.status})`);\n    });\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching campaigns:', error);\n  });\n\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The response follows a paginated structure containing an array of campaign objects.</p>\n<p><strong>Response Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [Campaign],\n  \"pageable\": Pageable,\n  \"totalPages\": integer,\n  \"totalElements\": integer,\n  \"last\": boolean,\n  \"size\": integer,\n  \"number\": integer,\n  \"sort\": Sort,\n  \"numberOfElements\": integer,\n  \"first\": boolean,\n  \"empty\": boolean\n}\n\n</code></pre>\n<h3 id=\"campaign-object-schema\">Campaign Object Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string (UUID)\",\n  \"name\": \"string\",\n  \"title\": \"string | null\",\n  \"type\": \"string (e.g., 'ENGAGE')\",\n  \"status\": \"string (e.g., 'started', 'paused', 'completed')\",\n  \"configuration\": \"string (JSON stringified configuration)\",\n  \"videoScript\": \"string (HTML or script identifier)\",\n  \"dateStartUTC\": \"string (ISO 8601 datetime)\",\n  \"dateEndUTC\": \"string | null (ISO 8601 datetime)\",\n  \"updatedAt\": \"string (ISO 8601 datetime)\",\n  \"interactivity\": \"object | null\",\n  \"fragments\": \"array\",\n  \"campaignChannels\": [\n    {\n      \"uuid\": \"string (UUID)\",\n      \"discriminator\": \"string (e.g., 'CampaignEmailChannel', 'CampaignSmsApiChannel')\",\n      \"message\": \"string (message template with variables)\",\n      \"subject\": \"string | null\",\n      \"enabled\": \"boolean\"\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"field-descriptions\">Field Descriptions</h3>\n<ul>\n<li><p><strong>uuid</strong>: Unique identifier for the campaign</p>\n</li>\n<li><p><strong>name</strong>: Internal name of the campaign</p>\n</li>\n<li><p><strong>title</strong>: Display title of the campaign (may be null)</p>\n</li>\n<li><p><strong>type</strong>: Campaign type (typically \"ENGAGE\")</p>\n</li>\n<li><p><strong>status</strong>: Current campaign status (<code>started</code>, <code>paused</code>, <code>completed</code>, <code>draft</code>)</p>\n</li>\n<li><p><strong>configuration</strong>: JSON string containing campaign settings (colors, layout, timezone, delivery settings, etc.)</p>\n</li>\n<li><p><strong>videoScript</strong>: HTML content or identifier for the video script</p>\n</li>\n<li><p><strong>dateStartUTC</strong>: Campaign start date in UTC (ISO 8601 format)</p>\n</li>\n<li><p><strong>dateEndUTC</strong>: Campaign end date in UTC (null if no end date)</p>\n</li>\n<li><p><strong>updatedAt</strong>: Last update timestamp in UTC</p>\n</li>\n<li><p><strong>interactivity</strong>: Interactive elements configuration (if any)</p>\n</li>\n<li><p><strong>fragments</strong>: Array of campaign fragments/components</p>\n</li>\n<li><p><strong>campaignChannels</strong>: Array of delivery channels (email, SMS, etc.)</p>\n</li>\n</ul>\n<h3 id=\"campaign-channel-types\">Campaign Channel Types</h3>\n<ol>\n<li><p><strong>CampaignEmailChannel</strong></p>\n<ul>\n<li><p><code>message</code>: Email body template (supports variables like <code>{{url}}</code>, <code>{{rep.fullName}}</code>)</p>\n</li>\n<li><p><code>subject</code>: Email subject line</p>\n</li>\n<li><p><code>enabled</code>: Whether this channel is active</p>\n</li>\n</ul>\n</li>\n<li><p><strong>CampaignSmsApiChannel</strong></p>\n<ul>\n<li><p><code>message</code>: SMS text template</p>\n</li>\n<li><p><code>subject</code>: Always null for SMS</p>\n</li>\n<li><p><code>enabled</code>: Whether this channel is active</p>\n</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"name\": \"Welcome Campaign\",\n      \"title\": \"New Customer Welcome\",\n      \"configuration\": \"{\\\"tryb\\\":\\\"simple-engage\\\",\\\"bgc\\\":\\\"#ffffff\\\",\\\"timezone\\\":\\\"Europe/Warsaw\\\"}\",\n      \"dateStartUTC\": \"2024-07-01T11:25:43Z\",\n      \"status\": \"started\",\n      \"uuid\": \"97cb5322-06bb-41c4-87f5-3c2b4e6d4a54\",\n      \"dateEndUTC\": null,\n      \"videoScript\": \"&lt;p class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Welcome to our service!&lt;/p&gt;\",\n      \"type\": \"ENGAGE\",\n      \"updatedAt\": \"2024-07-23T09:56:50Z\",\n      \"interactivity\": null,\n      \"fragments\": [],\n      \"campaignChannels\": [\n        {\n          \"uuid\": \"571c9401-6c1f-412b-a6e2-dc62604740e1\",\n          \"discriminator\": \"CampaignEmailChannel\",\n          \"message\": \"View your video message at {{url}}\",\n          \"subject\": \"{{rep.fullName}} sent you a video\",\n          \"enabled\": true\n        },\n        {\n          \"uuid\": \"71a58a2a-c3ce-4836-a127-7824a958fb3c\",\n          \"discriminator\": \"CampaignSmsApiChannel\",\n          \"message\": \"Video message: {{url}}\",\n          \"subject\": null,\n          \"enabled\": true\n        }\n      ]\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"sorted\": true,\n      \"unsorted\": false,\n      \"empty\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalPages\": 1,\n  \"totalElements\": 1,\n  \"last\": true,\n  \"size\": 20,\n  \"number\": 0,\n  \"numberOfElements\": 1,\n  \"first\": true,\n  \"empty\": false\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<p><strong>Cause:</strong> Missing or invalid Bearer token</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timestamp\": \"2024-11-21T12:00:00.000+00:00\",\n  \"status\": 401,\n  \"error\": \"Unauthorized\",\n  \"message\": \"Full authentication is required to access this resource\",\n  \"path\": \"/api/core/campaign/all-for-contact\"\n}\n\n</code></pre>\n<p><strong>Solution:</strong> Ensure you're providing a valid Bearer token in the Authorization header.</p>\n<hr />\n<h3 id=\"403-forbidden\">403 Forbidden</h3>\n<p><strong>Cause:</strong> Token is valid but user doesn't have permission to access the specified contact's campaigns</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timestamp\": \"2024-11-21T12:00:00.000+00:00\",\n  \"status\": 403,\n  \"error\": \"Forbidden\",\n  \"message\": \"Access denied\",\n  \"path\": \"/api/core/campaign/all-for-contact\"\n}\n\n</code></pre>\n<p><strong>Solution:</strong> Verify that the authenticated user has access to the contact specified by <code>contactUuid</code>.</p>\n<hr />\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<p><strong>Cause:</strong> Missing required parameter or invalid parameter format</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timestamp\": \"2024-11-21T12:00:00.000+00:00\",\n  \"status\": 400,\n  \"error\": \"Bad Request\",\n  \"message\": \"Required request parameter 'contactUuid' is not present\",\n  \"path\": \"/api/core/campaign/all-for-contact\"\n}\n\n</code></pre>\n<p><strong>Solution:</strong> Ensure all required parameters are provided with valid formats (e.g., valid UUID for <code>contactUuid</code>).</p>\n<hr />\n<h3 id=\"404-not-found\">404 Not Found</h3>\n<p><strong>Cause:</strong> Contact with specified UUID doesn't exist</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timestamp\": \"2024-11-21T12:00:00.000+00:00\",\n  \"status\": 404,\n  \"error\": \"Not Found\",\n  \"message\": \"Contact not found\",\n  \"path\": \"/api/core/campaign/all-for-contact\"\n}\n\n</code></pre>\n<p><strong>Solution:</strong> Verify the <code>contactUuid</code> parameter is correct.</p>\n<hr />\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<p><strong>Cause:</strong> Server-side error</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timestamp\": \"2024-11-21T12:00:00.000+00:00\",\n  \"status\": 500,\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred\",\n  \"path\": \"/api/core/campaign/all-for-contact\"\n}\n\n</code></pre>\n<p><strong>Solution:</strong> Contact system administrator or retry the request.</p>\n<hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The <code>configuration</code> field contains a JSON string that needs to be parsed to access individual settings</p>\n</li>\n<li><p>Campaign channels can be enabled/disabled independently</p>\n</li>\n<li><p>Message templates support variable interpolation using <code>{{variable}}</code> syntax</p>\n</li>\n<li><p>Common variables include: <code>{{url}}</code>, <code>{{rep.fullName}}</code>, <code>{{previewGif}}</code>, <code>{{doc.pl.Formal_Greeting}}</code>, etc.</p>\n</li>\n<li><p>Pagination is zero-indexed (first page is <code>page=0</code>)</p>\n</li>\n<li><p>Empty result sets will have <code>empty: true</code> and <code>content: []</code></p>\n</li>\n</ul>\n","urlObject":{"path":[":tenant_domain","api","core","campaign","all-for-contact"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"contactUuid","value":"{{contactUuid}}"},{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"desc"}],"variable":[{"type":"any","value":"{{tenant_domain}}","key":"tenant_domain"}]}},"response":[{"id":"e3dcb216-7923-4da1-81cc-0e6509f07bba","name":"[Representative] Get All Campaigns by Contact Uuid","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/:tenant_domain/api/core/campaign/all-for-contact?contactUuid={{contactUuid}}&search=string&page=0&size=20&sortBy=name&sortDirection=desc","host":["testsandbox.highp.me"],"path":[":tenant_domain","api","core","campaign","all-for-contact"],"query":[{"description":"required","key":"contactUuid","value":"{{contactUuid}}"},{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"desc"}],"variable":[{"key":"tenant_domain","value":"{{tenant_domain}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 12:22:00 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 12:21:59 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-55c2d8693c9564b1acceb825b5cc7a34' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-55c2d8693c9564b1acceb825b5cc7a34' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"name\": \"Wszystkie komponenty ENGAGE\",\n            \"title\": \"TEST ALL ENGAGE\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#e6f2e6\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"center\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"bgc\\\":\\\"#99cc99\\\",\\\"colors\\\":{\\\"pal\\\":[\\\"#0000FF\\\"]},\\\"wide\\\":\\\"all\\\",\\\"tz\\\":\\\"Europe/Warsaw\\\",\\\"streamok\\\":\\\"22\\\"}\",\n            \"dateStartUTC\": \"2024-07-01T11:25:43Z\",\n            \"status\": \"started\",\n            \"uuid\": \"97cb5322-06bb-41c4-87f5-3c2b4e6d4a54\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>time</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-07-23T09:56:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"571c9401-6c1f-412b-a6e2-dc62604740e1\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}} {{previewGif}}  {{previewButtonGif}}  {{previewButtonGifRounded}} \",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"71a58a2a-c3ce-4836-a127-7824a958fb3c\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"WojtestREP [cloned]\",\n            \"title\": \"WojtestREP\",\n            \"configuration\": \"{\\\"tryb\\\":\\\"simple-engage\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":false,\\\"bgc\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":\\\"\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-09-16T07:00:00.000Z\\\",\\\"to\\\":\\\"2025-09-16T18:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-09-17T07:00:00.000Z\\\",\\\"to\\\":\\\"2025-09-17T18:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-09-18T07:00:00.000Z\\\",\\\"to\\\":\\\"2025-09-18T18:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false,\\\"delivery\\\":{\\\"selectedRecipients\\\":10,\\\"segment\\\":\\\"9d48956d-5dca-47ed-8114-e23d09a2bdaa\\\",\\\"configuration\\\":{\\\"mode\\\":\\\"segments\\\"}}}\",\n            \"dateStartUTC\": \"2025-09-16T07:49:08Z\",\n            \"status\": \"started\",\n            \"uuid\": \"d1e67f23-7fbc-4abc-bedf-27ebdc1b2d99\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>test{{next}}test2</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2025-09-16T07:50:00Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"96982324-9c67-4b48-995d-8d4edc66f0ae\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"<p>Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}</p><p>{{doc.pl.Formal_Greeting}}</p><p></p><p>{{doc.pl.Vocative}}</p><p></p>\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"39049a25-aa39-4bba-879c-7baea65c962e\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": false\n                }\n            ]\n        },\n        {\n            \"name\": \"webDB\",\n            \"title\": \"webDB\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-08-09T14:05:53Z\",\n            \"status\": \"started\",\n            \"uuid\": \"f8e46c3e-9cd2-4bb3-b30f-cb7573adca74\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-08-12T11:04:40Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"4a1ee545-0ecf-4081-9896-deec62f6a0b9\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"354fb763-7f7b-4acc-a601-ba390a171cb8\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"WB E D\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-05-05T15:05:28Z\",\n            \"status\": \"started\",\n            \"uuid\": \"533badca-1322-4039-8b96-e15f2390ad5f\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"6273cb9d89558\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"d02ba7a1-ed89-4621-b8e4-18c590dba159\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\\n\\ngif:  {{>previewButtonGif}} \\n\\nlink gif:  {{previewGif}} \",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"007b78b8-e444-4ab9-8478-7a527c224678\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\\n\\ngif {{previewJpg}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"vid\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"tz\\\":\\\"Europe/Warsaw\\\",\\\"wide\\\":0}\",\n            \"dateStartUTC\": \"2024-06-03T13:35:59Z\",\n            \"status\": \"started\",\n            \"uuid\": \"75796c2e-7402-410d-aadd-d01e5a6f34a8\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-06-03T13:36:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"467dddbb-34bd-4d45-9648-4f043e1113a4\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"d0c234ef-71d5-4eea-8c80-aeca0172bfb8\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"vf [cloned]\",\n            \"title\": \"vf [cloned]\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"design\\\":{\\\"email\\\":\\\"text\\\"},\\\"wide\\\":0,\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2024-11-21T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-21T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-22T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-22T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-23T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-23T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false,\\\"ignoreConsentPolicy\\\":false}\",\n            \"dateStartUTC\": \"2024-11-21T15:12:10Z\",\n            \"status\": \"started\",\n            \"uuid\": \"aacbd015-ea57-4545-a24d-b9dcd14b3e84\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-11-21T15:14:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"ef84a592-75fb-4761-8773-0916314c7648\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"{{url}}\",\n                    \"subject\": \"fff\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"bfa2ad98-1167-4c02-8093-5703eb8fbf4b\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"vf\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"design\\\":{\\\"email\\\":\\\"text\\\"},\\\"wide\\\":0,\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2024-11-21T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-21T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-22T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-22T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-23T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-23T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2024-11-21T14:48:31Z\",\n            \"status\": \"started\",\n            \"uuid\": \"80482e06-8e48-48a5-b9f2-d70e55b54800\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"WEPjjFqi9Xjes\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-11-21T14:56:06Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"9a5bfd78-5d72-418e-9402-b28540fe99b7\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"{{url}}\",\n                    \"subject\": \"fff\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"49fc7535-4c57-4136-8ead-98f262e250b8\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"unsub3\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-10-14T15:29:05Z\",\n            \"status\": \"started\",\n            \"uuid\": \"69ac7709-a39e-4c61-8dda-91e6c1f1d49a\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"VouOA45SHBOZr\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"a5c79402-6b4c-406c-99f9-19457a170615\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"7a423c0c-f286-4dfd-b188-a81fa353d1c2\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"unsub2\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-10-14T15:28:29Z\",\n            \"status\": \"started\",\n            \"uuid\": \"ba7f03d6-48a8-4201-9a83-cf58cd188421\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"dEznXUkp6gM2w\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"0b171353-fc13-45ae-af24-71929e307d9e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"9871d9a1-72df-4cf5-bfa1-00c470b06a74\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"unsub1\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-10-14T13:28:17Z\",\n            \"status\": \"started\",\n            \"uuid\": \"ea2e7566-7fc0-489d-a40d-4917d8d4ceb7\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"PWf3GqFCFybOM\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"3774f378-095c-4279-9954-84c2a10150e8\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"ab97dbcd-4219-4e2f-ac85-7bddd3bd2c7d\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"uns\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-11-03T15:55:04Z\",\n            \"status\": \"started\",\n            \"uuid\": \"f97f78e9-136c-40d2-99c3-25b3994ef8b5\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"3gQt38CfXUXyf\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-02-02T08:37:24Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"86ae8ae5-b563-4fd2-bca5-4fa9b14fbe68\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"4acaf824-98f0-492c-913f-ef9e6dec5806\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"ttttvev\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-12-21T14:46:20Z\",\n            \"status\": \"started\",\n            \"uuid\": \"08ec8f44-10f6-4241-bd99-6f1837afa70d\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"2\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-12-21T13:51:26Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"fd9c0725-5bb1-41b1-9ba0-17343595a64f\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"0cbb26df-aee4-4139-bd0c-31ec6bdb1dae\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"tttggg\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"wide\\\":0,\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2024-11-21T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-21T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-22T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-22T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2024-11-23T08:00:00.000Z\\\",\\\"to\\\":\\\"2024-11-23T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2024-11-21T15:37:33Z\",\n            \"status\": \"started\",\n            \"uuid\": \"25e67cf8-ce3f-4278-a144-092a72534777\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-11-21T15:37:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"5e915695-8f5b-44c0-9332-ec0d0a36954e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": \"tess\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"212aa9fd-5942-4eb8-9b93-d47ec0043f8d\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"ttt2\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"design\\\":{\\\"fullw\\\":true}}\",\n            \"dateStartUTC\": \"2023-10-31T11:46:17Z\",\n            \"status\": \"started\",\n            \"uuid\": \"626eed2e-a3b7-45c6-98a8-ae5a26e0b2d9\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-10-31T11:46:37Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"895cdbba-18ac-4e12-94c8-c1d7340035f5\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"3f1fa7db-f4cb-4acd-bc65-c1d90b1fcc2a\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"tret\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"design\\\":{\\\"fullw\\\":true}}\",\n            \"dateStartUTC\": \"2023-10-31T10:20:02Z\",\n            \"status\": \"started\",\n            \"uuid\": \"2033e050-c45d-462a-b93c-a89540123cbc\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-10-31T10:20:37Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"709a265d-3b8a-4a21-ad3c-5ccbbfe730c8\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"9eac92e3-6ccc-4a6d-af5d-34af22e21684\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"tomek no require vid feb\",\n            \"title\": \"tomek require vid feb\",\n            \"configuration\": \"{\\\"delivery\\\":{\\\"configuration\\\":{\\\"mode\\\":\\\"contacts\\\"},\\\"selectedRecipients\\\":1,\\\"segment\\\":\\\"\\\"},\\\"tryb\\\":\\\"simple-engage\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":false,\\\"requirePersonalVideo\\\":false,\\\"bgc\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":\\\"\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-02-19T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-02-19T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-02-20T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-02-20T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-02-21T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-02-21T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2025-02-19T13:54:27Z\",\n            \"status\": \"started\",\n            \"uuid\": \"f5714225-8781-4da1-bfb7-37151fa5f293\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2025-02-19T13:56:00Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"d69c5975-7329-46a9-a516-876bcd7f1924\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"05fb85c1-76ef-4670-a4b0-9e1633db2cde\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Tets DE\",\n            \"title\": \"Tets DE\",\n            \"configuration\": \"{\\\"tryb\\\":\\\"simple-engage\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":true,\\\"requirePersonalVideo\\\":true,\\\"bgc\\\":\\\"#339933\\\",\\\"bc\\\":\\\"#cce6cc\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"center\\\",\\\"wide\\\":\\\"\\\",\\\"delivery\\\":{\\\"selectedRecipients\\\":1,\\\"segment\\\":\\\"\\\",\\\"configuration\\\":{\\\"mode\\\":\\\"reps\\\"},\\\"reps\\\":[]},\\\"streamok\\\":\\\"33\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-01-28T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-28T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-01-29T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-29T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-01-30T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-30T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2025-01-28T10:20:50Z\",\n            \"status\": \"started\",\n            \"uuid\": \"3047e8fa-b845-4f8d-8d55-7970c1e28000\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2025-01-28T10:56:00Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"2ac0c49e-a378-417a-aa88-da3a89744623\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Ich sende eine Videonachricht, du kannst sie unter {{url}} ansehen.\",\n                    \"subject\": \"{{rep.fullName}} sendet Video-Nachricht\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"db01bfc0-f66c-4d29-bf9f-a82ea3d6f1c2\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Ich sende eine Videonachricht, du kannst sie unter {{url}} ansehen.\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"tet\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-10-07T11:13:34Z\",\n            \"status\": \"started\",\n            \"uuid\": \"dde0e438-7fbd-440b-9121-dbb194e3e301\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"0tsNhLLRERugy\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"eac16161-680f-44c5-bb97-078362864528\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": \"{{rep.fullName}} sends video message\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"9d77cf7e-a6a0-49a8-9b05-893e55e9b967\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"I send a video message, you can view it at {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Testy DDg\",\n            \"title\": \"Testy DDg\",\n            \"configuration\": \"{\\\"design\\\":{\\\"fullw\\\":true}}\",\n            \"dateStartUTC\": \"2023-08-16T10:51:16Z\",\n            \"status\": \"started\",\n            \"uuid\": \"e3dd093e-2f7f-4839-8011-2352c5f60edf\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>test12312312321</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2023-08-23T08:38:44Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"3dcf3b86-76f6-4b28-b941-4be82452b73e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\\n {{previewGif}} \\n\\n {{previewButtonGif}} \",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"188d1542-d2ac-4280-b7f9-5306fb30b95f\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\\n {{previewJpg}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Testy988\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-engage\\\",\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-08-19T12:51:05Z\",\n            \"status\": \"started\",\n            \"uuid\": \"0aba5db7-cf29-4f96-af0a-a1d67d6cd8c2\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>123</p>\\n<p>{{next}}</p>\\n<p>333</p>\\n<p>{{next}}</p>\\n<p>444</p>\\n<p>{{next}}</p>\\n<p>5432</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-08-19T12:51:40Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"2391e13f-c337-4844-9a2f-c5660203ef72\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}} {{previewGif}}  {{previewButtonGif}}  {{previewButtonGifRounded}} \",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"7cb1fc71-efb7-48e3-9309-23e6bf6d9f8a\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 231,\n    \"totalPages\": 12,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"unsorted\": false,\n        \"sorted\": true\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"7e7995fc-e8e4-4272-8b4d-997c7127dfda"},{"name":"Get All","id":"abe7f77e-a5da-4de6-a5be-bee224bf42c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign/all?page=0&size=20&sortBy=name&sortDirection=desc&search=string","description":"<h1 id=\"get-all-engage-campaigns-for-representative\">Get All ENGAGE Campaigns for Representative</h1>\n<p>This endpoint retrieves all ENGAGE campaigns associated with a specific representative. It supports pagination, filtering, and sorting to help representatives efficiently manage and view their campaigns.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token Authentication</strong>. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer YOUR_ACCESS_TOKEN\n</code></pre><p>The <code>repUuid</code> (representative's unique identifier) is automatically derived from the <code>user_id</code> value of the decoded access token. This ensures that representatives can only access their own campaigns.</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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>The page number for pagination (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>The number of campaigns to return per page</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>name</td>\n<td>The field by which to sort the results (e.g., <code>name</code>, <code>dateStartUTC</code>, <code>status</code>)</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>desc</td>\n<td>The direction of the sort. Acceptable values: <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>A search phrase to filter campaigns by name or description</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\n// Configuration\nconst tenantDomain = 'your-tenant-domain.highp.me';\nconst accessToken = 'your_access_token_here';\n\n// Query parameters\nconst params = new URLSearchParams({\n  page: '0',\n  size: '20',\n  sortBy: 'name',\n  sortDirection: 'desc',\n  search: '' // Optional: add search phrase to filter campaigns\n});\n\n// Make the request\nasync function getAllCampaigns() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/campaign/all?${params}`,\n      {\n        method: 'GET',\n        headers: {\n          'Authorization': `Bearer ${accessToken}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Campaigns retrieved:', data.content.length);\n    console.log('Total campaigns:', data.totalElements);\n    \n    return data;\n  } catch (error) {\n    console.error('Error fetching campaigns:', error);\n    throw error;\n  }\n}\n\n// Execute the request\ngetAllCampaigns()\n  .then(campaigns =&gt; {\n    // Process campaigns\n    campaigns.content.forEach(campaign =&gt; {\n      console.log(`Campaign: ${campaign.name} (${campaign.status})`);\n    });\n  })\n  .catch(error =&gt; {\n    console.error('Failed to retrieve campaigns:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The response returns a paginated list of campaigns in JSON format:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [Campaign],\n  \"pageable\": Pageable,\n  \"totalElements\": integer,\n  \"totalPages\": integer,\n  \"last\": boolean,\n  \"size\": integer,\n  \"number\": integer,\n  \"sort\": Sort,\n  \"numberOfElements\": integer,\n  \"first\": boolean,\n  \"empty\": boolean\n}\n</code></pre>\n<h3 id=\"campaign-object-schema\">Campaign Object Schema</h3>\n<p>Each campaign object in the <code>content</code> array contains:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the campaign</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Campaign name</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Campaign title (may be null)</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Campaign type (e.g., <code>ENGAGE</code>, <code>EXPRESS</code>)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Current status: <code>started</code>, <code>archived</code>, <code>draft</code>, <code>paused</code></td>\n</tr>\n<tr>\n<td><code>dateStartUTC</code></td>\n<td>string (ISO 8601)</td>\n<td>Campaign start date in UTC format</td>\n</tr>\n<tr>\n<td><code>dateEndUTC</code></td>\n<td>string (ISO 8601)</td>\n<td>Campaign end date in UTC format (may be null)</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string (ISO 8601)</td>\n<td>Last update timestamp</td>\n</tr>\n<tr>\n<td><code>videoScript</code></td>\n<td>string</td>\n<td>Video script content or identifier</td>\n</tr>\n<tr>\n<td><code>configuration</code></td>\n<td>string (JSON)</td>\n<td>Campaign configuration as JSON string containing settings like colors, padding, timezone, etc.</td>\n</tr>\n<tr>\n<td><code>interactivity</code></td>\n<td>object</td>\n<td>Interactivity settings (may be null)</td>\n</tr>\n<tr>\n<td><code>fragments</code></td>\n<td>array</td>\n<td>Campaign fragments/components</td>\n</tr>\n<tr>\n<td><code>campaignChannels</code></td>\n<td>array</td>\n<td>Array of delivery channels (email, SMS)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"campaign-channel-object\">Campaign Channel Object</h3>\n<p>Each channel in the <code>campaignChannels</code> array contains:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the channel</td>\n</tr>\n<tr>\n<td><code>discriminator</code></td>\n<td>string</td>\n<td>Channel type: <code>CampaignEmailChannel</code> or <code>CampaignSmsApiChannel</code></td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Message template with variables (e.g., <code>{{url}}</code>, <code>{{rep.fullName}}</code>)</td>\n</tr>\n<tr>\n<td><code>subject</code></td>\n<td>string</td>\n<td>Email subject line (null for SMS channels)</td>\n</tr>\n<tr>\n<td><code>enabled</code></td>\n<td>boolean</td>\n<td>Whether the channel is active</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pagination-fields\">Pagination Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>totalElements</code></td>\n<td>integer</td>\n<td>Total number of campaigns across all pages</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Current page number (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>numberOfElements</code></td>\n<td>integer</td>\n<td>Number of campaigns in the current page</td>\n</tr>\n<tr>\n<td><code>first</code></td>\n<td>boolean</td>\n<td>Whether this is the first page</td>\n</tr>\n<tr>\n<td><code>last</code></td>\n<td>boolean</td>\n<td>Whether this is the last page</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Whether the result set is empty</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"name\": \"Welcome Campaign\",\n      \"title\": \"Welcome to Our Platform\",\n      \"configuration\": \"{\\\"btc\\\":\\\"#f1f1f1\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n      \"dateStartUTC\": \"2024-02-14T12:44:47Z\",\n      \"status\": \"started\",\n      \"uuid\": \"e4f507bc-699b-4ca3-94be-11f023f4b2fd\",\n      \"dateEndUTC\": null,\n      \"videoScript\": \"ucyqWQXpRQyq9\",\n      \"type\": \"ENGAGE\",\n      \"updatedAt\": \"2024-02-14T12:45:31Z\",\n      \"interactivity\": null,\n      \"fragments\": [],\n      \"campaignChannels\": [\n        {\n          \"uuid\": \"8f9e801a-7255-4b21-b011-843c008821d1\",\n          \"discriminator\": \"CampaignEmailChannel\",\n          \"message\": \"Check out this video message at {{url}}\",\n          \"subject\": \"{{rep.fullName}} sent you a video message\",\n          \"enabled\": true\n        },\n        {\n          \"uuid\": \"aabbcdeb-5227-42fa-b9db-5844df33a498\",\n          \"discriminator\": \"CampaignSmsApiChannel\",\n          \"message\": \"Video message: {{url}}\",\n          \"subject\": null,\n          \"enabled\": true\n        }\n      ]\n    }\n  ],\n  \"totalElements\": 150,\n  \"totalPages\": 8,\n  \"size\": 20,\n  \"number\": 0,\n  \"first\": true,\n  \"last\": false,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"http-status-codes\">HTTP Status Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Request successful, campaigns returned</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Valid token but insufficient permissions</td>\n</tr>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Invalid query parameters (e.g., invalid sortBy field)</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-response-examples\">Error Response Examples</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timestamp\": \"2024-02-14T12:00:00.000+00:00\",\n  \"status\": 401,\n  \"error\": \"Unauthorized\",\n  \"message\": \"Full authentication is required to access this resource\",\n  \"path\": \"/api/core/campaign/all\"\n}\n</code></pre>\n<h3 id=\"403-forbidden\">403 Forbidden</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timestamp\": \"2024-02-14T12:00:00.000+00:00\",\n  \"status\": 403,\n  \"error\": \"Forbidden\",\n  \"message\": \"Access denied\",\n  \"path\": \"/api/core/campaign/all\"\n}\n</code></pre>\n<h2 id=\"error-handling-example\">Error Handling Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">async function getAllCampaignsWithErrorHandling() {\n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    // Handle different status codes\n    switch (response.status) {\n      case 200:\n        return await response.json();\n      \n      case 401:\n        throw new Error('Authentication failed. Please check your access token.');\n      \n      case 403:\n        throw new Error('Access denied. You do not have permission to view these campaigns.');\n      \n      case 400:\n        const errorData = await response.json();\n        throw new Error(`Bad request: ${errorData.message}`);\n      \n      case 500:\n        throw new Error('Server error. Please try again later.');\n      \n      default:\n        throw new Error(`Unexpected error: ${response.status}`);\n    }\n  } catch (error) {\n    if (error.name === 'TypeError') {\n      console.error('Network error:', error.message);\n    } else {\n      console.error('Error:', error.message);\n    }\n    throw error;\n  }\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<p>This endpoint is useful for:</p>\n<ul>\n<li>Displaying a list of all campaigns in a dashboard</li>\n<li>Searching for specific campaigns by name</li>\n<li>Implementing pagination for large campaign lists</li>\n<li>Sorting campaigns by various criteria (name, date, status)</li>\n<li>Filtering campaigns to find specific types or statuses</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>configuration</code> field contains a JSON string that needs to be parsed to access individual settings</li>\n<li>Campaign channels can be enabled/disabled independently</li>\n<li>The <code>repUuid</code> is automatically extracted from the JWT token, so you don't need to provide it explicitly</li>\n<li>Use the <code>search</code> parameter to filter campaigns by name or description for better performance with large datasets</li>\n</ul>\n","urlObject":{"path":["api","core","campaign","all"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>The page number for pagination</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>The number of campaigns to return per page</p>\n","type":"text/plain"},"key":"size","value":"20"},{"description":{"content":"<p>The field by which to sort the results</p>\n","type":"text/plain"},"key":"sortBy","value":"name"},{"description":{"content":"<p>The direction of the sort (asc or desc)</p>\n","type":"text/plain"},"key":"sortDirection","value":"desc"},{"key":"search","value":"string"}],"variable":[]}},"response":[{"id":"78b551e3-dbdb-4c95-87ec-cb7bd607d100","name":"Get All","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign/all?page=0&size=20&sortBy=name&sortDirection=desc&search=string","host":["testsandbox.highp.me"],"path":["api","core","campaign","all"],"query":[{"description":"The page number for pagination","key":"page","value":"0"},{"description":"The number of campaigns to return per page","key":"size","value":"20"},{"description":"The field by which to sort the results","key":"sortBy","value":"name"},{"description":"The direction of the sort (asc or desc)","key":"sortDirection","value":"desc"},{"key":"search","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 12:29:00 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 12:28:59 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-e207603c1e61d5d5f26ff931382c131d' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-e207603c1e61d5d5f26ff931382c131d' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"name\": \"Z wideo personal [cloned] [cloned] bez\",\n            \"title\": \"Z wideo personal [cloned]\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"btc\\\":\\\"#f1f1f1\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-02-14T12:44:47Z\",\n            \"status\": \"started\",\n            \"uuid\": \"e4f507bc-699b-4ca3-94be-11f023f4b2fd\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"ucyqWQXpRQyq9\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-02-14T12:45:31Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"8f9e801a-7255-4b21-b011-843c008821d1\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"aabbcdeb-5227-42fa-b9db-5844df33a498\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Z wideo personal [cloned]\",\n            \"title\": \"Z wideo personal [cloned]\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"btc\\\":\\\"#f1f1f1\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-02-14T12:42:52Z\",\n            \"status\": \"archived\",\n            \"uuid\": \"225632e6-1d0e-4db0-8eda-fbc87baa663b\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>1 gddfh 2</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-02-14T13:03:17Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"782429ea-d2fd-41e0-9572-8552be2383e8\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"7ff4f52d-2297-4ad5-a0c2-2b163a4a339c\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Z wideo personal\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"btc\\\":\\\"#f1f1f1\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"wide\\\":0,\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-02-14T12:40:51Z\",\n            \"status\": \"started\",\n            \"uuid\": \"a653e1b1-b621-492d-a92b-4f42302a6071\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"<p>1 gddfh 2</p>\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2024-02-14T12:42:21Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"56c1eac0-debb-428f-a40c-9ec8a1b93410\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"e59f4d6b-7df6-40a0-9b9f-c9635ffcad7d\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"z video kafka\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2021-07-28T12:37:15Z\",\n            \"status\": \"started\",\n            \"uuid\": \"d27dffa9-6a42-42f2-b312-d5df90976c41\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"65177bf6-45f7-46f5-ba99-a4c39910f0d6\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"dacdceea-c3d6-4f8e-a224-9f157a43efd5\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Zuza kafka bez video\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2021-07-28T12:21:57Z\",\n            \"status\": \"started\",\n            \"uuid\": \"e0d06094-ec9f-4ba9-b794-db304a2cc1a9\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"613b1709981b0\",\n            \"type\": \"ENGAGE\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"184c65c9-20eb-4df6-8d71-d49b202be320\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"842dfa90-747a-4ab8-8a83-fc1c55a92b3e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Zuza express\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2021-07-27T13:17:12Z\",\n            \"status\": \"started\",\n            \"uuid\": \"934e0de0-ddf0-4c32-b3ec-a66607b037e1\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"610149adce3f2\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"1d33e213-edee-4a11-a97b-5d40b14f3a5e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"f2e2f2bd-280d-49aa-966b-def935f7bbe0\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"zsrhj1\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"delivery\\\":{\\\"configuration\\\":{\\\"mode\\\":\\\"contacts\\\"},\\\"selectedRecipients\\\":1,\\\"segment\\\":\\\"\\\"},\\\"tryb\\\":\\\"simple-express\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":true,\\\"bgc\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":\\\"\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-01-27T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-27T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-01-28T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-28T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-01-29T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-29T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2025-01-27T14:33:30Z\",\n            \"status\": \"started\",\n            \"uuid\": \"4b4de55f-11fc-4c82-87c5-53777fa5ff0c\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"ReY9brdXyA1wo\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2025-01-27T14:34:00Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"9d1f6592-f959-43a9-b3a0-9cb129080d1e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"7fd8913c-adc6-49bc-bd4d-77c4f11eb0c3\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"z HTM\",\n            \"title\": \"z HTM\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"btc\\\":\\\"#f1f1f1\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":0,\\\"design\\\":{\\\"email\\\":\\\"html\\\"},\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-01-26T13:07:46Z\",\n            \"status\": \"started\",\n            \"uuid\": \"3a5af857-5cee-460e-a257-4519ae6e8d27\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"2Ds3slRprdo5x\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-01-26T13:10:10Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"a14ad63c-0795-4638-a2ed-9a24263ea874\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"8e7008b9-853f-400c-b999-52a173c7ba6f\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"<table style=\\\"font-size: 0px; width: 650px; border-spacing: 0; margin: 0; border: 0; padding: 0;\\\" border=\\\"0\\\" width=\\\"650\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"><tbody><tr><td><table style=\\\"background-color: #f2f4f9; width: 650px;\\\" border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"><tbody><tr><td align=\\\"center\\\"><img src=\\\"https://hemanews.highp.me/mediaassets/e4312552-4d4d-42de-9696-9028c82c8207.png\\\"></td></tr><tr><td><table style=\\\"width: 650px;\\\" border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"><tbody><tr><td style=\\\"width: 125px; background-color: #f2f4f9;\\\" align=\\\"right\\\" width=\\\"125\\\"><img src=\\\"https://hemanews.highp.me/mediaassets/9295ca0c-2c3d-43af-9873-653bd3b40ee6.png\\\" width=\\\"74\\\" height=\\\"400\\\"></td><td width=\\\"400\\\"><img src=\\\"{{previewGif}}\\\" alt=\\\"video-gif\\\" width=\\\"400\\\" height=\\\"400\\\"></td><td style=\\\"width: 125px; background-color: #f2f4f9;\\\" align=\\\"left\\\" width=\\\"125\\\"><img src=\\\"https://hemanews.highp.me/mediaassets/9295ca0c-2c3d-43af-9873-653bd3b40ee6.png\\\" width=\\\"74\\\" height=\\\"400\\\"></td></tr></tbody></table></td></tr><tr><td align=\\\"center\\\"><img src=\\\"https://hemanews.highp.me/mediaassets/94f9ab60-8dd8-4c5c-ab16-6edf31685deb.png\\\" width=\\\"548\\\" height=\\\"255\\\"></td></tr></tbody></table></td></tr><tr><td height=\\\"30\\\"> </td></tr><tr><td style=\\\"font-size: 14px;\\\">Sehr geehrter Herr / geehrte Frau {{doc.businessTitle}} {{doc.lastName}},<p> </p><p>Herzliche Gr&uuml;&szlig;e vom ASH-Kongress 2023. Um die Aufzeichnung anzusehen, die Prof. Dr. med. Hartmut Goldschmidt speziell f&uuml;r Sie zu den neuesten Entwicklungen im Bereich des Multiplen Myleom vorbereitet hat, klicken Sie bitte auf den unten stehenden Link. {{url}}</p><p> </p>Mit freundlichen Gr&uuml;&szlig;en, Ihr Hema News Team</td></tr><tr><td height=\\\"30\\\"> </td></tr></tbody></table>\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Zgody Test\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-10-14T10:45:04Z\",\n            \"status\": \"started\",\n            \"uuid\": \"04888807-0e1f-4d30-b78c-6b1b62dc58bf\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"kA3xRDaLNhqwv\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-10-14T10:45:08Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"9c533ba5-0105-428f-956b-5814b2f806fa\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}} {{previewGif}}  {{previewButtonGif}}  {{previewButtonGifRounded}} \",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"046e1b2a-aa41-4a7f-97e7-1ea9368a3618\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"zgody 25\",\n            \"title\": \"zgody 25\",\n            \"configuration\": \"{\\\"tryb\\\":\\\"simple-express\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":true,\\\"bgc\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":\\\"\\\",\\\"delivery\\\":{\\\"initialized\\\":\\\"\\\",\\\"updated\\\":\\\"\\\",\\\"loading\\\":{\\\"segments\\\":false,\\\"reps\\\":false,\\\"contacts\\\":false},\\\"tableError\\\":null,\\\"selectSegmentsModel\\\":[],\\\"currentPage\\\":{\\\"contacts\\\":0},\\\"uniqueRecipients\\\":0,\\\"configuration\\\":{\\\"mode\\\":\\\"contacts\\\"},\\\"targets\\\":[]},\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-01-07T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-07T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-01-08T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-08T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-01-09T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-01-09T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n            \"dateStartUTC\": \"2025-01-07T14:23:09Z\",\n            \"status\": \"started\",\n            \"uuid\": \"f58e1cbf-9d2f-470f-a23e-b9fb40dee605\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"n7EQbm872zJtR\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2025-01-07T14:24:29Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"fc1890b7-4d8f-4105-a8c5-4b8f9ddeb240\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"01f24b28-9b1e-45aa-a509-5482fea95d53\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"zgody 1d\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-10-21T10:36:19Z\",\n            \"status\": \"started\",\n            \"uuid\": \"b18df279-1912-4c8e-8720-7099d09fb290\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"mI5QgezxD5DuW\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-10-21T10:37:08Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"be323c43-0d14-4ac8-80ab-fa5b61edf20f\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"f9832773-ecc7-418e-acac-9328ca80e427\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Zgoda WB\",\n            \"title\": null,\n            \"configuration\": null,\n            \"dateStartUTC\": \"2022-07-07T07:41:27Z\",\n            \"status\": \"saving\",\n            \"uuid\": \"fd98b56d-3493-472d-973f-c499457ff6e7\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"62c68e2ccf250\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2022-10-18T10:13:45Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": []\n        },\n        {\n            \"name\": \"zgodatest444\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"btc\\\":\\\"#f1f1f1\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\"}\",\n            \"dateStartUTC\": \"2023-11-30T09:50:11Z\",\n            \"status\": \"started\",\n            \"uuid\": \"a177d4f1-d165-4d55-b4a9-56e18e27cec6\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"UETcAiwkjrVNd\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2023-11-30T09:50:37Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"f64b7317-2756-4e47-a7bd-dbb800671942\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} przesyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"3cc105ce-6531-44c5-a19c-fa14d0a0571e\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Przesyłam wiadomość wideo, możesz obejrzeć ją pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"zgodaStr\",\n            \"title\": \"zgodaStr\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\",\\\"wide\\\":0}\",\n            \"dateStartUTC\": \"2024-10-23T12:04:40Z\",\n            \"status\": \"started\",\n            \"uuid\": \"73874b08-28e5-43ec-9e9f-9ca9830cc9b1\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"K41vffYEx2CRQ\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-10-24T11:22:08Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"851acac4-3601-40e8-b6c1-01341b4c1e80\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"22d3d593-8325-4c72-96af-c61fe3f8b201\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"zgoda komunikacja\",\n            \"title\": \"\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":null}\",\n            \"dateStartUTC\": \"2024-11-19T09:45:12Z\",\n            \"status\": \"archived\",\n            \"uuid\": \"cdcf9c34-407e-418d-9ec4-d9b1e40bf384\",\n            \"dateEndUTC\": \"2024-11-19T09:45:12Z\",\n            \"videoScript\": \"PGpBhHQWPO9Ay\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-11-19T09:46:50Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"a1d5d03e-dab3-4dbc-bc15-6d5d7dee7cc4\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": \"test\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"c348fc15-2ec1-4225-976f-dce6fed58f67\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \" {{url}} \",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"zgodaff\",\n            \"title\": \"zgodaff\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-10-23T11:56:15Z\",\n            \"status\": \"started\",\n            \"uuid\": \"584034a7-26da-49c8-8cb2-2efe3313ed48\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"F3UAAMqp9beS3\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-10-23T11:59:08Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"568880ea-79c2-4ada-ab60-29199ce2cb67\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"b28a0590-11f5-484e-a7ee-e2ce08210be6\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"zgoda2333\",\n            \"title\": \"zgoda2333\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\",\\\"wide\\\":0}\",\n            \"dateStartUTC\": \"2024-10-25T10:31:23Z\",\n            \"status\": \"started\",\n            \"uuid\": \"332b75cb-2ef6-4113-825b-d35a21ae7533\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"N5QnmHpW1BYtI\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-10-25T10:45:08Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"f6ed8686-d02d-4a1a-83cc-df5a237afb8b\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"368967fd-82a5-4935-89a3-b375cc5e4720\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"zgoda 1b\",\n            \"title\": \"zgoda 1b\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\"}\",\n            \"dateStartUTC\": \"2024-10-21T10:08:52Z\",\n            \"status\": \"started\",\n            \"uuid\": \"f3e2c4e4-43b1-4e87-9625-f732d776b849\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"KYvaEXhOA9vys\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-10-21T10:29:08Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"e2d4e3a8-e7ec-4008-9bb8-dcb3816af18e\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"e198566e-2fe6-4c2a-ad7c-6c930a42dc90\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Zgoda 123 [cloned] [cloned]\",\n            \"title\": \"Zgoda 123  [cloned] [cloned]\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\",\\\"wide\\\":0}\",\n            \"dateStartUTC\": \"2024-10-16T11:46:54Z\",\n            \"status\": \"started\",\n            \"uuid\": \"d759fa20-3db2-469e-bf0b-e6daef6565b2\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"6yLsbsHIJm7rM\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-10-16T12:23:08Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"35be9cc3-d90d-409e-8806-2b0ed12a30d9\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"f53939e3-9777-493f-81e7-2a5e902b1839\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                }\n            ]\n        },\n        {\n            \"name\": \"Zgoda 123 [cloned]\",\n            \"title\": \"Zgoda 123\",\n            \"configuration\": \"{\\\"name\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"fullw\\\":\\\"\\\",\\\"ps\\\":\\\"\\\",\\\"segment\\\":null,\\\"tryb\\\":\\\"simple-express\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"tz\\\":\\\"Europe/Warsaw\\\",\\\"wide\\\":0}\",\n            \"dateStartUTC\": \"2024-10-15T13:49:35Z\",\n            \"status\": \"started\",\n            \"uuid\": \"ee9f59a6-978b-4b5e-bc3e-dc8bc50b6c29\",\n            \"dateEndUTC\": null,\n            \"videoScript\": \"e9cjQCvKUBgcN\",\n            \"type\": \"EXPRESS\",\n            \"updatedAt\": \"2024-10-16T11:45:41Z\",\n            \"interactivity\": null,\n            \"fragments\": [],\n            \"campaignChannels\": [\n                {\n                    \"uuid\": \"3000fc88-dee8-4ac1-a84e-272fb45852e5\",\n                    \"discriminator\": \"CampaignSmsApiChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": null,\n                    \"enabled\": true\n                },\n                {\n                    \"uuid\": \"e02d399c-3424-4bc8-954d-426118e6083f\",\n                    \"discriminator\": \"CampaignEmailChannel\",\n                    \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n                    \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n                    \"enabled\": true\n                }\n            ]\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 1175,\n    \"totalPages\": 59,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"unsorted\": false,\n        \"sorted\": true\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"abe7f77e-a5da-4de6-a5be-bee224bf42c0"},{"name":"Get Campaign By Id","id":"c42d7b40-e904-4b21-b160-321fab71effd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/campaign/id/:campaignId?campaignId={{campaignId}","description":"<h1 id=\"get-campaign-by-id\">Get Campaign By Id</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Retrieves detailed information about a specific campaign using its unique identifier. This endpoint returns comprehensive campaign data including configuration, channels, status, and associated metadata.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/campaign/id/{{campaignId}}\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>campaignId</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the campaign to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"variables\">Variables</h2>\n<p>This request uses the following variables:</p>\n<ul>\n<li><strong><code>tenant_domain</code></strong> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><strong><code>campaignId</code></strong> - The UUID of the campaign you want to retrieve</li>\n<li><strong><code>token</code></strong> - Your Bearer authentication token</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns a JSON object containing the complete campaign details.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\",\n  \"title\": \"string\",\n  \"configuration\": \"string (JSON)\",\n  \"dateStartUTC\": \"string (ISO 8601)\",\n  \"status\": \"string\",\n  \"uuid\": \"string (UUID)\",\n  \"dateEndUTC\": \"string (ISO 8601) | null\",\n  \"videoScript\": \"string (HTML)\",\n  \"type\": \"string\",\n  \"updatedAt\": \"string (ISO 8601)\",\n  \"interactivity\": \"object | null\",\n  \"fragments\": \"array\",\n  \"campaignChannels\": [\n    {\n      \"uuid\": \"string (UUID)\",\n      \"discriminator\": \"string\",\n      \"message\": \"string (HTML)\",\n      \"subject\": \"string | null\",\n      \"enabled\": \"boolean\"\n    }\n  ]\n}\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</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>Internal name of the campaign</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Display title of the campaign</td>\n</tr>\n<tr>\n<td><code>configuration</code></td>\n<td>string</td>\n<td>JSON string containing campaign configuration including delivery settings, timestamps, timezone, and display options</td>\n</tr>\n<tr>\n<td><code>dateStartUTC</code></td>\n<td>string</td>\n<td>Campaign start date and time in UTC (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Current campaign status (e.g., \"started\", \"draft\", \"completed\")</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the campaign</td>\n</tr>\n<tr>\n<td><code>dateEndUTC</code></td>\n<td>string/null</td>\n<td>Campaign end date and time in UTC, or null if not set</td>\n</tr>\n<tr>\n<td><code>videoScript</code></td>\n<td>string</td>\n<td>HTML content of the video script with <code>{{next}}</code> delimiters for fragments</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Campaign type (e.g., \"ENGAGE\")</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string</td>\n<td>Last update timestamp in UTC (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><code>interactivity</code></td>\n<td>object/null</td>\n<td>Interactive elements configuration, if any</td>\n</tr>\n<tr>\n<td><code>fragments</code></td>\n<td>array</td>\n<td>Array of campaign fragments/segments</td>\n</tr>\n<tr>\n<td><code>campaignChannels</code></td>\n<td>array</td>\n<td>Array of delivery channels configured for the campaign</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"campaign-channel-object\">Campaign Channel Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the channel</td>\n</tr>\n<tr>\n<td><code>discriminator</code></td>\n<td>string</td>\n<td>Channel type identifier (e.g., \"CampaignEmailChannel\", \"CampaignSmsApiChannel\")</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Message template with variable placeholders (e.g., <code>{{url}}</code>)</td>\n</tr>\n<tr>\n<td><code>subject</code></td>\n<td>string/null</td>\n<td>Message subject line (for email channels)</td>\n</tr>\n<tr>\n<td><code>enabled</code></td>\n<td>boolean</td>\n<td>Whether this channel is active for the campaign</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"configuration-object-structure\">Configuration Object Structure</h4>\n<p>The <code>configuration</code> field contains a JSON string with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"delivery\": {\n    \"configuration\": {\n      \"mode\": \"contacts\"\n    },\n    \"selectedRecipients\": 2,\n    \"segment\": \"\"\n  },\n  \"tryb\": \"simple-engage\",\n  \"track\": false,\n  \"ignoreConsentPolicy\": false,\n  \"bgc\": \"\",\n  \"bc\": \"#fff\",\n  \"pad\": \"all\",\n  \"ps\": \"\",\n  \"wide\": \"\",\n  \"drip\": {\n    \"enabled\": false,\n    \"send_timestamps\": []\n  },\n  \"dripEnabled\": false,\n  \"timestamps\": [],\n  \"defaultTimestamps\": [\n    {\n      \"from\": \"2025-11-18T08:00:00.000Z\",\n      \"to\": \"2025-11-18T19:00:00.000Z\"\n    }\n  ],\n  \"timezone\": \"Europe/Warsaw\",\n  \"campaignEndDateEnabled\": false\n}\n</code></pre>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Using fetch API\nconst getCampaignById = async (tenantDomain, campaignId, token) =&gt; {\n  const url = `https://${tenantDomain}/api/core/campaign/id/${campaignId}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const campaign = await response.json();\n    console.log('Campaign retrieved successfully:', campaign);\n    return campaign;\n    \n  } catch (error) {\n    console.error('Error fetching campaign:', error);\n    throw error;\n  }\n};\n\n// Usage example\nconst tenantDomain = 'testsandbox.highp.me';\nconst campaignId = '78bab367-90a7-4faf-ba47-bb054320d506';\nconst token = 'your_access_token_here';\n\ngetCampaignById(tenantDomain, campaignId, token)\n  .then(campaign =&gt; {\n    console.log('Campaign Name:', campaign.name);\n    console.log('Campaign Status:', campaign.status);\n    console.log('Campaign Type:', campaign.type);\n  })\n  .catch(error =&gt; {\n    console.error('Failed to retrieve campaign:', error);\n  });\n</code></pre>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"test ene [cloned] started\",\n  \"title\": \"test ene [cloned]\",\n  \"configuration\": \"{\\\"delivery\\\":{\\\"configuration\\\":{\\\"mode\\\":\\\"contacts\\\"},\\\"selectedRecipients\\\":2,\\\"segment\\\":\\\"\\\"},\\\"tryb\\\":\\\"simple-engage\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":false,\\\"bgc\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":\\\"\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-11-18T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-18T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-11-19T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-19T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-11-20T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-20T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n  \"dateStartUTC\": \"2025-11-18T11:39:02Z\",\n  \"status\": \"started\",\n  \"uuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n  \"dateEndUTC\": null,\n  \"videoScript\": \"&lt;p&gt;1231312{{next}}tewwetwet{{next}}123123&lt;/p&gt;\",\n  \"type\": \"ENGAGE\",\n  \"updatedAt\": \"2025-11-18T11:40:00Z\",\n  \"interactivity\": null,\n  \"fragments\": [],\n  \"campaignChannels\": [\n    {\n      \"uuid\": \"949b9248-c87f-427d-b825-662772360998\",\n      \"discriminator\": \"CampaignEmailChannel\",\n      \"message\": \"&lt;p&gt;Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}&lt;/p&gt;\",\n      \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n      \"enabled\": true\n    },\n    {\n      \"uuid\": \"8999588c-77dd-4691-abb7-9c8436f51840\",\n      \"discriminator\": \"CampaignSmsApiChannel\",\n      \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n      \"subject\": null,\n      \"enabled\": false\n    }\n  ]\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid campaign ID format</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to access this campaign</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Campaign with the specified ID does not exist</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>configuration</code> field is returned as a JSON string and needs to be parsed to access individual configuration properties</li>\n<li>Campaign channels can include multiple delivery methods (email, SMS, etc.) with individual enable/disable flags</li>\n<li>The <code>videoScript</code> field uses <code>{{next}}</code> as a delimiter to separate video fragments</li>\n<li>Template variables like <code>{{url}}</code> and <code>{{rep.fullName}}</code> are dynamically replaced when messages are sent</li>\n<li>All timestamps are in UTC and follow ISO 8601 format</li>\n</ul>\n","urlObject":{"path":["api","core","campaign","id",":campaignId"],"host":["testsandbox.highp.me"],"query":[{"key":"campaignId","value":"{{campaignId}"}],"variable":[{"type":"any","value":"{{campaignId}}","key":"campaignId"}]}},"response":[{"id":"17bd7071-9e80-42be-91d9-756066442654","name":"Get Campaign By Id","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/campaign/id/:campaignId?campaignId={{campaignId}","host":["testsandbox.highp.me"],"path":["api","core","campaign","id",":campaignId"],"query":[{"key":"campaignId","value":"{{campaignId}"}],"variable":[{"key":"campaignId","value":"{{campaignId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 12:32:10 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 12:32:09 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-47a0861d49f7b1b70b986f8ef4f51de0' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-47a0861d49f7b1b70b986f8ef4f51de0' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"test ene [cloned] started\",\n    \"title\": \"test ene [cloned]\",\n    \"configuration\": \"{\\\"delivery\\\":{\\\"configuration\\\":{\\\"mode\\\":\\\"contacts\\\"},\\\"selectedRecipients\\\":2,\\\"segment\\\":\\\"\\\"},\\\"tryb\\\":\\\"simple-engage\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":false,\\\"bgc\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":\\\"\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-11-18T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-18T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-11-19T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-19T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-11-20T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-20T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n    \"dateStartUTC\": \"2025-11-18T11:39:02Z\",\n    \"status\": \"started\",\n    \"uuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n    \"dateEndUTC\": null,\n    \"videoScript\": \"<p>1231312{{next}}tewwetwet{{next}}123123</p>\",\n    \"type\": \"ENGAGE\",\n    \"updatedAt\": \"2025-11-18T11:40:00Z\",\n    \"interactivity\": null,\n    \"fragments\": [],\n    \"campaignChannels\": [\n        {\n            \"uuid\": \"949b9248-c87f-427d-b825-662772360998\",\n            \"discriminator\": \"CampaignEmailChannel\",\n            \"message\": \"<p>Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}</p>\",\n            \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n            \"enabled\": true\n        },\n        {\n            \"uuid\": \"8999588c-77dd-4691-abb7-9c8436f51840\",\n            \"discriminator\": \"CampaignSmsApiChannel\",\n            \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n            \"subject\": null,\n            \"enabled\": false\n        }\n    ]\n}"}],"_postman_id":"c42d7b40-e904-4b21-b160-321fab71effd"},{"name":"Get Campaign By UUID","id":"645d03f5-26a5-4dde-af3f-e7341c0bb15c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/campaign/uuid/:campaign-uuid","description":"<h1 id=\"get-campaign-by-uuid\">Get Campaign By UUID</h1>\n<h2 id=\"description\">Description</h2>\n<p>Retrieves detailed information about a specific campaign using its unique identifier (UUID). This endpoint returns comprehensive campaign data including configuration, status, channels, and associated metadata.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/campaign/uuid/{{campaign-uuid}}\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"path-variables\">Path Variables</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</td>\n</tr>\n<tr>\n<td><code>campaign-uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the campaign to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer {{token}}</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"variables-used\">Variables Used</h2>\n<ul>\n<li><strong><code>tenant_domain</code></strong>: The base domain for your Highp instance</li>\n<li><strong><code>campaign-uuid</code></strong>: The UUID of the campaign you want to retrieve</li>\n<li><strong><code>token</code></strong>: Your authentication bearer token</li>\n</ul>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst campaignUuid = '78bab367-90a7-4faf-ba47-bb054320d506'; // Replace with your campaign UUID\nconst token = 'your_access_token_here'; // Replace with your access token\n\nconst url = `https://${tenantDomain}/api/core/campaign/uuid/${campaignUuid}`;\n\nconst options = {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n};\n\nfetch(url, options)\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Campaign data:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching campaign:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\",\n  \"title\": \"string\",\n  \"configuration\": \"string (JSON stringified)\",\n  \"dateStartUTC\": \"string (ISO 8601 datetime)\",\n  \"status\": \"string\",\n  \"uuid\": \"string (UUID)\",\n  \"dateEndUTC\": \"string (ISO 8601 datetime) | null\",\n  \"videoScript\": \"string (HTML)\",\n  \"type\": \"string\",\n  \"updatedAt\": \"string (ISO 8601 datetime)\",\n  \"interactivity\": \"object | null\",\n  \"fragments\": \"array\",\n  \"campaignChannels\": [\n    {\n      \"uuid\": \"string (UUID)\",\n      \"discriminator\": \"string\",\n      \"message\": \"string (HTML)\",\n      \"subject\": \"string | null\",\n      \"enabled\": \"boolean\"\n    }\n  ]\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</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>Internal name of the campaign</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Display title of the campaign</td>\n</tr>\n<tr>\n<td><code>configuration</code></td>\n<td>string</td>\n<td>JSON stringified configuration object containing delivery settings, timestamps, timezone, and other campaign parameters</td>\n</tr>\n<tr>\n<td><code>dateStartUTC</code></td>\n<td>string</td>\n<td>Campaign start date and time in UTC (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Current status of the campaign (e.g., \"started\", \"draft\", \"completed\")</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the campaign</td>\n</tr>\n<tr>\n<td><code>dateEndUTC</code></td>\n<td>string/null</td>\n<td>Campaign end date and time in UTC, or null if not set</td>\n</tr>\n<tr>\n<td><code>videoScript</code></td>\n<td>string</td>\n<td>HTML content of the video script with placeholders</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Campaign type (e.g., \"ENGAGE\")</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string</td>\n<td>Last update timestamp in UTC (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><code>interactivity</code></td>\n<td>object/null</td>\n<td>Interactivity settings for the campaign</td>\n</tr>\n<tr>\n<td><code>fragments</code></td>\n<td>array</td>\n<td>Array of campaign fragments</td>\n</tr>\n<tr>\n<td><code>campaignChannels</code></td>\n<td>array</td>\n<td>Array of communication channels configured for the campaign</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"campaign-channel-object\">Campaign Channel Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the channel</td>\n</tr>\n<tr>\n<td><code>discriminator</code></td>\n<td>string</td>\n<td>Channel type identifier (e.g., \"CampaignEmailChannel\", \"CampaignSmsApiChannel\")</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Message template with placeholders (HTML format)</td>\n</tr>\n<tr>\n<td><code>subject</code></td>\n<td>string/null</td>\n<td>Subject line for the message (applicable for email channels)</td>\n</tr>\n<tr>\n<td><code>enabled</code></td>\n<td>boolean</td>\n<td>Whether this channel is active for the campaign</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"test ene [cloned] started\",\n  \"title\": \"test ene [cloned]\",\n  \"configuration\": \"{\\\"delivery\\\":{\\\"configuration\\\":{\\\"mode\\\":\\\"contacts\\\"},\\\"selectedRecipients\\\":2,\\\"segment\\\":\\\"\\\"},\\\"tryb\\\":\\\"simple-engage\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":false,\\\"bgc\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":\\\"\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-11-18T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-18T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-11-19T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-19T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-11-20T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-20T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n  \"dateStartUTC\": \"2025-11-18T11:39:02Z\",\n  \"status\": \"started\",\n  \"uuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n  \"dateEndUTC\": null,\n  \"videoScript\": \"&lt;p&gt;1231312{{next}}tewwetwet{{next}}123123&lt;/p&gt;\",\n  \"type\": \"ENGAGE\",\n  \"updatedAt\": \"2025-11-18T11:40:00Z\",\n  \"interactivity\": null,\n  \"fragments\": [],\n  \"campaignChannels\": [\n    {\n      \"uuid\": \"949b9248-c87f-427d-b825-662772360998\",\n      \"discriminator\": \"CampaignEmailChannel\",\n      \"message\": \"&lt;p&gt;Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}&lt;/p&gt;\",\n      \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n      \"enabled\": true\n    },\n    {\n      \"uuid\": \"8999588c-77dd-4691-abb7-9c8436f51840\",\n      \"discriminator\": \"CampaignSmsApiChannel\",\n      \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n      \"subject\": null,\n      \"enabled\": false\n    }\n  ]\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to access this campaign</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Campaign with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>configuration</code> field contains a JSON stringified object with detailed campaign settings including delivery mode, recipients, timestamps, and timezone information</li>\n<li>Campaign channels can include email, SMS, and other communication methods</li>\n<li>Template placeholders like <code>{{url}}</code>, <code>{{rep.fullName}}</code>, and <code>{{next}}</code> are used for dynamic content</li>\n<li>All datetime fields follow ISO 8601 format in UTC timezone</li>\n</ul>\n","urlObject":{"path":["api","core","campaign","uuid",":campaign-uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{campaign-uuid}}","key":"campaign-uuid"}]}},"response":[{"id":"a2afd53b-858a-4754-8f43-6bb101b77a83","name":"Get Campaign By UUID","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/campaign/uuid/:campaign-uuid","host":["testsandbox.highp.me"],"path":["api","core","campaign","uuid",":campaign-uuid"],"variable":[{"key":"campaign-uuid","value":"{{campaign-uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 12:33:26 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 12:33:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-bbe57ca932a296e2047d28e108d9133e' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-bbe57ca932a296e2047d28e108d9133e' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"test ene [cloned] started\",\n    \"title\": \"test ene [cloned]\",\n    \"configuration\": \"{\\\"delivery\\\":{\\\"configuration\\\":{\\\"mode\\\":\\\"contacts\\\"},\\\"selectedRecipients\\\":2,\\\"segment\\\":\\\"\\\"},\\\"tryb\\\":\\\"simple-engage\\\",\\\"track\\\":false,\\\"ignoreConsentPolicy\\\":false,\\\"bgc\\\":\\\"\\\",\\\"bc\\\":\\\"#fff\\\",\\\"pad\\\":\\\"all\\\",\\\"ps\\\":\\\"\\\",\\\"wide\\\":\\\"\\\",\\\"drip\\\":{\\\"enabled\\\":false,\\\"send_timestamps\\\":[]},\\\"dripEnabled\\\":false,\\\"timestamps\\\":[],\\\"defaultTimestamps\\\":[{\\\"from\\\":\\\"2025-11-18T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-18T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-11-19T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-19T19:00:00.000Z\\\"},{\\\"from\\\":\\\"2025-11-20T08:00:00.000Z\\\",\\\"to\\\":\\\"2025-11-20T19:00:00.000Z\\\"}],\\\"timezone\\\":\\\"Europe/Warsaw\\\",\\\"campaignEndDateEnabled\\\":false}\",\n    \"dateStartUTC\": \"2025-11-18T11:39:02Z\",\n    \"status\": \"started\",\n    \"uuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n    \"dateEndUTC\": null,\n    \"videoScript\": \"<p>1231312{{next}}tewwetwet{{next}}123123</p>\",\n    \"type\": \"ENGAGE\",\n    \"updatedAt\": \"2025-11-18T11:40:00Z\",\n    \"interactivity\": null,\n    \"fragments\": [],\n    \"campaignChannels\": [\n        {\n            \"uuid\": \"949b9248-c87f-427d-b825-662772360998\",\n            \"discriminator\": \"CampaignEmailChannel\",\n            \"message\": \"<p>Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}</p>\",\n            \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n            \"enabled\": true\n        },\n        {\n            \"uuid\": \"8999588c-77dd-4691-abb7-9c8436f51840\",\n            \"discriminator\": \"CampaignSmsApiChannel\",\n            \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n            \"subject\": null,\n            \"enabled\": false\n        }\n    ]\n}"}],"_postman_id":"645d03f5-26a5-4dde-af3f-e7341c0bb15c"},{"name":"Get Campaign Channels","id":"79f4a9f4-09c6-494c-832c-3ec51b397e2f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-channel/all?campaignUuid={{campaign-uuid}}","description":"<h1 id=\"get-campaign-channels\">Get Campaign Channels</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Retrieves all communication channels (SMS and EMAIL) configured for a specific campaign. This endpoint returns the channel configurations including their status, message templates, and channel-specific settings.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/campaign-channel/all</code></p>\n<p><strong>Authentication:</strong> Bearer Token (required)</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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the campaign for which to retrieve channel configurations</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"required-variables\">Required Variables</h2>\n<p>This endpoint requires the following variables to be set in your environment:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>Your Highp tenant domain</td>\n<td><code>testsandbox.highp.me</code></td>\n</tr>\n<tr>\n<td><code>token</code></td>\n<td>Bearer authentication token</td>\n<td>Your access token</td>\n</tr>\n<tr>\n<td><code>campaign-uuid</code></td>\n<td>The UUID of the campaign</td>\n<td><code>fc450a98-8234-42f3-a5c4-73e1337d136d</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response\">Success Response</h3>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"response-model\">Response Model</h3>\n<p>The endpoint returns an array of channel objects. Each channel object contains:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the channel configuration</td>\n</tr>\n<tr>\n<td><code>discriminator</code></td>\n<td>string</td>\n<td>Channel type identifier (<code>CampaignEmailChannel</code> or <code>CampaignSmsApiChannel</code>)</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Message template with variable placeholders (e.g., <code>{{url}}</code>)</td>\n</tr>\n<tr>\n<td><code>subject</code></td>\n<td>string | null</td>\n<td>Email subject line (only for email channels, null for SMS)</td>\n</tr>\n<tr>\n<td><code>enabled</code></td>\n<td>boolean</td>\n<td>Whether the channel is currently active</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"uuid\": \"949b9248-c87f-427d-b825-662772360998\",\n        \"discriminator\": \"CampaignEmailChannel\",\n        \"message\": \"&lt;p&gt;Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}&lt;/p&gt;\",\n        \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n        \"enabled\": true\n    },\n    {\n        \"uuid\": \"8999588c-77dd-4691-abb7-9c8436f51840\",\n        \"discriminator\": \"CampaignSmsApiChannel\",\n        \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n        \"subject\": null,\n        \"enabled\": false\n    }\n]\n</code></pre>\n<h2 id=\"channel-types\">Channel Types</h2>\n<h3 id=\"email-channel-campaignemailchannel\">Email Channel (<code>CampaignEmailChannel</code>)</h3>\n<ul>\n<li>Supports HTML formatting in the message body</li>\n<li>Requires a subject line</li>\n<li>Can use template variables like <code>{{url}}</code> and <code>{{rep.fullName}}</code></li>\n</ul>\n<h3 id=\"sms-channel-campaignsmsapichannel\">SMS Channel (<code>CampaignSmsApiChannel</code>)</h3>\n<ul>\n<li>Plain text messages only</li>\n<li>No subject line (always null)</li>\n<li>Can use template variables like <code>{{url}}</code></li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\n// Configuration\nconst tenantDomain = 'testsandbox.highp.me';\nconst accessToken = 'your_access_token_here';\nconst campaignUuid = 'fc450a98-8234-42f3-a5c4-73e1337d136d';\n\n// Make the request\nasync function getCampaignChannels() {\n  try {\n    const url = `https://${tenantDomain}/api/core/campaign-channel/all?campaignUuid=${campaignUuid}`;\n    \n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const channels = await response.json();\n    console.log('Campaign Channels:', channels);\n    \n    // Process channels\n    channels.forEach(channel =&gt; {\n      console.log(`Channel Type: ${channel.discriminator}`);\n      console.log(`Status: ${channel.enabled ? 'Enabled' : 'Disabled'}`);\n      console.log(`Message: ${channel.message}`);\n      if (channel.subject) {\n        console.log(`Subject: ${channel.subject}`);\n      }\n      console.log('---');\n    });\n    \n    return channels;\n  } catch (error) {\n    console.error('Error fetching campaign channels:', error);\n    throw error;\n  }\n}\n\n// Execute the function\ngetCampaignChannels();\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Campaign Configuration Review</strong>: Check which communication channels are configured for a campaign</li>\n<li><strong>Channel Status Verification</strong>: Verify which channels are enabled or disabled</li>\n<li><strong>Template Management</strong>: Review message templates and subject lines for each channel</li>\n<li><strong>Multi-Channel Strategy</strong>: Understand the complete communication setup for a campaign</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Both enabled and disabled channels are returned in the response</li>\n<li>Template variables (e.g., <code>{{url}}</code>, <code>{{rep.fullName}}</code>) are dynamically replaced when messages are sent</li>\n<li>Email messages support HTML formatting, while SMS messages are plain text only</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-channel","all"],"host":["testsandbox.highp.me"],"query":[{"key":"campaignUuid","value":"{{campaign-uuid}}"}],"variable":[]}},"response":[{"id":"97030116-59d3-46e8-b474-4a57ca2deeb3","name":"Get Campaign Channels","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-channel/all?campaignUuid={{campaign-uuid}}","host":["testsandbox.highp.me"],"path":["api","core","campaign-channel","all"],"query":[{"key":"campaignUuid","value":"{{campaign-uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 12:34:51 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 12:34:50 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9fc5b090eae8115d28e7825787b5bfe9' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9fc5b090eae8115d28e7825787b5bfe9' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"uuid\": \"949b9248-c87f-427d-b825-662772360998\",\n        \"discriminator\": \"CampaignEmailChannel\",\n        \"message\": \"<p>Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}</p>\",\n        \"subject\": \"{{rep.fullName}} wysyła wiadomość wideo\",\n        \"enabled\": true\n    },\n    {\n        \"uuid\": \"8999588c-77dd-4691-abb7-9c8436f51840\",\n        \"discriminator\": \"CampaignSmsApiChannel\",\n        \"message\": \"Wysyłam wiadomość wideo, możesz ją obejrzeć pod adresem {{url}}\",\n        \"subject\": null,\n        \"enabled\": false\n    }\n]"}],"_postman_id":"79f4a9f4-09c6-494c-832c-3ec51b397e2f"}],"id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"e281399c-b40a-4de6-9a33-e04feb1c2dc6","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"78eac8c3-96a6-404e-a218-29992df46533","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"e91368f5-b115-4b8b-9c0a-725ae866d37b","description":""},{"name":"Campaign Statistics","item":[{"name":"Report","id":"30a8d83c-a675-4e28-9caa-d7df43f34fb5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/campaign-stats/report?campaignUuid=6ad76307-01e0-4616-b0a2-0985ce2e5017","description":"<h1 id=\"campaign-statistics-report\">Campaign Statistics Report</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Retrieves comprehensive statistics for a specific campaign, including message delivery metrics, open rates, and representative performance data. This endpoint provides key performance indicators (KPIs) to track campaign effectiveness.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/campaign-stats/report</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the campaign for which to retrieve statistics</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"variables\">Variables</h2>\n<p>This endpoint uses the following variables that should be configured in your Postman environment:</p>\n<ul>\n<li><strong><code>tenant-domain</code></strong>: Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><strong><code>campaign-uuid</code></strong>: The UUID of the campaign you want to retrieve statistics for</li>\n<li><strong><code>token</code></strong>: Your Bearer authentication token</li>\n</ul>\n<h2 id=\"response-model\">Response Model</h2>\n<p>The endpoint returns a JSON object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"ordered\": number,\n  \"sent\": number,\n  \"opened\": number,\n  \"sentToOrderedPercentage\": number,\n  \"openedToSentPercentage\": number,\n  \"repCount\": number,\n  \"sentMessageRepCount\": number,\n  \"sentMessageRepToAllRepsPercentage\": number\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>ordered</code></td>\n<td>integer</td>\n<td>Total number of messages ordered/scheduled for the campaign</td>\n</tr>\n<tr>\n<td><code>sent</code></td>\n<td>integer</td>\n<td>Total number of messages successfully sent</td>\n</tr>\n<tr>\n<td><code>opened</code></td>\n<td>integer</td>\n<td>Total number of messages opened by recipients</td>\n</tr>\n<tr>\n<td><code>sentToOrderedPercentage</code></td>\n<td>integer</td>\n<td>Percentage of ordered messages that were sent (sent/ordered * 100)</td>\n</tr>\n<tr>\n<td><code>openedToSentPercentage</code></td>\n<td>integer</td>\n<td>Percentage of sent messages that were opened (opened/sent * 100)</td>\n</tr>\n<tr>\n<td><code>repCount</code></td>\n<td>integer</td>\n<td>Total number of representatives assigned to the campaign</td>\n</tr>\n<tr>\n<td><code>sentMessageRepCount</code></td>\n<td>integer</td>\n<td>Number of representatives who sent at least one message</td>\n</tr>\n<tr>\n<td><code>sentMessageRepToAllRepsPercentage</code></td>\n<td>integer</td>\n<td>Percentage of representatives who sent messages (sentMessageRepCount/repCount * 100)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"ordered\": 10,\n    \"sent\": 8,\n    \"opened\": 5,\n    \"sentToOrderedPercentage\": 80,\n    \"openedToSentPercentage\": 62,\n    \"repCount\": 1,\n    \"sentMessageRepCount\": 1,\n    \"sentMessageRepToAllRepsPercentage\": 100\n}\n</code></pre>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst campaignUuid = 'your-campaign-uuid-here'; // Replace with your campaign UUID\nconst token = 'your-bearer-token-here'; // Replace with your access token\n\nasync function getCampaignStats() {\n  try {\n    const url = `https://${tenantDomain}/api/core/campaign-stats/report?campaignUuid=${campaignUuid}`;\n    \n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Campaign Statistics:', data);\n    \n    // Access specific metrics\n    console.log(`Messages Sent: ${data.sent}/${data.ordered} (${data.sentToOrderedPercentage}%)`);\n    console.log(`Messages Opened: ${data.opened}/${data.sent} (${data.openedToSentPercentage}%)`);\n    console.log(`Active Reps: ${data.sentMessageRepCount}/${data.repCount} (${data.sentMessageRepToAllRepsPercentage}%)`);\n    \n    return data;\n  } catch (error) {\n    console.error('Error fetching campaign stats:', error);\n    throw error;\n  }\n}\n\n// Execute the function\ngetCampaignStats();\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Campaign Performance Monitoring</strong>: Track how many messages were sent and opened</li>\n<li><strong>Delivery Rate Analysis</strong>: Monitor the percentage of ordered messages that were successfully delivered</li>\n<li><strong>Engagement Metrics</strong>: Measure recipient engagement through open rates</li>\n<li><strong>Representative Performance</strong>: Evaluate how many representatives are actively participating in the campaign</li>\n</ul>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Forbidden - Insufficient permissions to access this campaign</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Not Found - Campaign with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td><code>500</code></td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>All percentage values are returned as integers (e.g., 80 represents 80%)</li>\n<li>The statistics are calculated in real-time based on the current state of the campaign</li>\n<li>Ensure the <code>campaignUuid</code> parameter is a valid UUID format</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-stats","report"],"host":["testsandbox.highp.me"],"query":[{"disabled":true,"key":"repUuid","value":"string"},{"key":"campaignUuid","value":"6ad76307-01e0-4616-b0a2-0985ce2e5017"}],"variable":[]}},"response":[{"id":"802892d4-f616-430d-be47-3c9e3f1e8f5e","name":"Report","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/report?repUuid=string&campaignUuid={{campaign-uuid}}","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","report"],"query":[{"key":"repUuid","value":"string"},{"key":"campaignUuid","value":"{{campaign-uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:22:13 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:22:12 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-c90d04aa4a8752fd61a3486be1cd9fc9' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-c90d04aa4a8752fd61a3486be1cd9fc9' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"ordered\": 10,\n    \"sent\": 8,\n    \"opened\": 5,\n    \"sentToOrderedPercentage\": 80,\n    \"openedToSentPercentage\": 62,\n    \"repCount\": 1,\n    \"sentMessageRepCount\": 1,\n    \"sentMessageRepToAllRepsPercentage\": 100\n}"}],"_postman_id":"30a8d83c-a675-4e28-9caa-d7df43f34fb5"},{"name":"Enviroment Report - Campaigns Activities","id":"04c26e34-6dfd-41d4-bf72-670d3e6c4861","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-stats/campaigns-activities?lastDays=7&page=string&size=string&sortDirection=desc","description":"<h1 id=\"get-campaign-activities-report\">Get Campaign Activities Report</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves campaign activity statistics for a specified time period. It returns a paginated list of campaigns with their activity metrics, sorted by the number of activities (value). This is useful for generating environment reports and analyzing campaign performance over time.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/campaign-stats/campaigns-activities\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {token}\n</code></pre><p>The <code>{{token}}</code> variable should contain a valid access token for your tenant.</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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lastDays</code></td>\n<td>integer</td>\n<td>No</td>\n<td>7</td>\n<td>Number of days to look back for campaign activities. Filters activities from the last N days.</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>desc</td>\n<td>Sort direction for results. Accepts <code>asc</code> (ascending) or <code>desc</code> (descending). Results are sorted by activity value.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>Page number for pagination (zero-indexed).</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>Number of items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your_access_token_here';\n\nasync function getCampaignActivities() {\n  const url = `https://${tenantDomain}/api/core/campaign-stats/campaigns-activities?lastDays=7&amp;sortDirection=desc`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('Campaign Activities:', data);\n    return data;\n  } catch (error) {\n    console.error('Error fetching campaign activities:', error);\n    throw error;\n  }\n}\n\ngetCampaignActivities();\n</code></pre>\n<h2 id=\"response-structure\">Response Structure</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"campaignUuid\": \"string\",\n      \"campaignTitle\": \"string\",\n      \"value\": integer\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": boolean,\n      \"unsorted\": boolean,\n      \"sorted\": boolean\n    },\n    \"offset\": integer,\n    \"pageNumber\": integer,\n    \"pageSize\": integer,\n    \"paged\": boolean,\n    \"unpaged\": boolean\n  },\n  \"totalElements\": integer,\n  \"totalPages\": integer,\n  \"last\": boolean,\n  \"size\": integer,\n  \"number\": integer,\n  \"sort\": {\n    \"empty\": boolean,\n    \"unsorted\": boolean,\n    \"sorted\": boolean\n  },\n  \"numberOfElements\": integer,\n  \"first\": boolean,\n  \"empty\": boolean\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array\">Content Array</h4>\n<p>Each item in the <code>content</code> array represents a campaign with its activity metrics:</p>\n<ul>\n<li><strong>campaignUuid</strong> (string): Unique identifier for the campaign</li>\n<li><strong>campaignTitle</strong> (string): Display name of the campaign</li>\n<li><strong>value</strong> (integer): Number of activities recorded for this campaign in the specified time period</li>\n</ul>\n<h4 id=\"pagination-metadata\">Pagination Metadata</h4>\n<ul>\n<li><strong>totalElements</strong> (integer): Total number of campaigns across all pages</li>\n<li><strong>totalPages</strong> (integer): Total number of pages available</li>\n<li><strong>size</strong> (integer): Number of items per page</li>\n<li><strong>number</strong> (integer): Current page number (zero-indexed)</li>\n<li><strong>numberOfElements</strong> (integer): Number of elements in the current page</li>\n<li><strong>first</strong> (boolean): Whether this is the first page</li>\n<li><strong>last</strong> (boolean): Whether this is the last page</li>\n<li><strong>empty</strong> (boolean): Whether the result set is empty</li>\n</ul>\n<h4 id=\"pageable-object\">Pageable Object</h4>\n<p>Contains pagination and sorting information:</p>\n<ul>\n<li><strong>offset</strong> (integer): The offset of the first element</li>\n<li><strong>pageNumber</strong> (integer): Current page number</li>\n<li><strong>pageSize</strong> (integer): Size of the page</li>\n<li><strong>paged</strong> (boolean): Whether pagination is enabled</li>\n<li><strong>unpaged</strong> (boolean): Whether pagination is disabled</li>\n</ul>\n<h4 id=\"sort-object\">Sort Object</h4>\n<p>Contains sorting information:</p>\n<ul>\n<li><strong>empty</strong> (boolean): Whether sorting is empty</li>\n<li><strong>sorted</strong> (boolean): Whether results are sorted</li>\n<li><strong>unsorted</strong> (boolean): Whether results are unsorted</li>\n</ul>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"campaignUuid\": \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\",\n      \"campaignTitle\": \"test kreator900\",\n      \"value\": 83\n    },\n    {\n      \"campaignUuid\": \"5dd60143-7794-4479-b05c-677bad503f29\",\n      \"campaignTitle\": \"consents\",\n      \"value\": 38\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"unsorted\": false,\n      \"sorted\": true\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 11,\n  \"totalPages\": 1,\n  \"last\": true,\n  \"size\": 20,\n  \"number\": 0,\n  \"numberOfElements\": 11,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Performance Monitoring</strong>: Track which campaigns are generating the most activity</li>\n<li><strong>Environment Reports</strong>: Generate reports showing campaign engagement over specific time periods</li>\n<li><strong>Campaign Analysis</strong>: Compare activity levels across different campaigns</li>\n<li><strong>Trend Analysis</strong>: Monitor campaign activity trends by adjusting the <code>lastDays</code> parameter</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Results are sorted by the <code>value</code> field (activity count) in the specified direction</li>\n<li>The default page size is 20 items</li>\n<li>Campaign activities are aggregated over the specified time period (default: last 7 days)</li>\n<li>The <code>value</code> field represents the total number of activities for each campaign</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-stats","campaigns-activities"],"host":["testsandbox.highp.me"],"query":[{"key":"lastDays","value":"7"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"a63b9dde-4670-435a-86ac-114fccb8d8e0","name":"Enviroment Report - Campaigns Activities","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/campaigns-activities?lastDays=7&page=string&size=string&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","campaigns-activities"],"query":[{"key":"lastDays","value":"7"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:22:46 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:22:45 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-ec990e94a02208964b45794f11355ad9' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-ec990e94a02208964b45794f11355ad9' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"campaignUuid\": \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\",\n            \"campaignTitle\": \"test kreator900\",\n            \"value\": 83\n        },\n        {\n            \"campaignUuid\": \"5dd60143-7794-4479-b05c-677bad503f29\",\n            \"campaignTitle\": \"consents\",\n            \"value\": 38\n        },\n        {\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignTitle\": \"test ene [cloned] started\",\n            \"value\": 25\n        },\n        {\n            \"campaignUuid\": \"c4dc22d2-0614-472c-aa8d-ff530f3e5b65\",\n            \"campaignTitle\": \"test ene\",\n            \"value\": 14\n        },\n        {\n            \"campaignUuid\": \"aba31f5c-efdc-4128-b26c-6a2c854f531b\",\n            \"campaignTitle\": \"nhjnbp\",\n            \"value\": 9\n        },\n        {\n            \"campaignUuid\": \"37a4015d-c5b4-4f6b-9521-7d04f62595fe\",\n            \"campaignTitle\": \"nhjnbp [cloned]\",\n            \"value\": 9\n        },\n        {\n            \"campaignUuid\": \"d8bf20ef-0a18-4be6-b643-534198f58150\",\n            \"campaignTitle\": \"nhjnbp [cloned] [cloned]\",\n            \"value\": 1\n        },\n        {\n            \"campaignUuid\": \"7c9a2f23-c369-4fce-a114-83825fad7a50\",\n            \"campaignTitle\": \"test\",\n            \"value\": 1\n        },\n        {\n            \"campaignUuid\": \"997f511a-e9be-4be8-86b1-11b0c1df36f0\",\n            \"campaignTitle\": \"test [cloned] [cloned]\",\n            \"value\": 1\n        },\n        {\n            \"campaignUuid\": \"b7f43e8f-25ce-4e2e-9ee3-a10421d46c54\",\n            \"campaignTitle\": \"test [cloned]\",\n            \"value\": 1\n        },\n        {\n            \"campaignUuid\": \"c0c0719b-6836-440e-ada7-65654b8de16b\",\n            \"campaignTitle\": \"test [cloned] [cloned] [cloned]\",\n            \"value\": 1\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 11,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"unsorted\": false,\n        \"sorted\": true\n    },\n    \"numberOfElements\": 11,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"04c26e34-6dfd-41d4-bf72-670d3e6c4861"},{"name":"Enviroment Report - Campaigns Activities XLS Export","id":"1773a89a-5c70-40c6-90fd-2a559f4049e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-stats/campaigns-activities/export?lastDays=7&sortDirection=desc","description":"<h1 id=\"export-campaign-activities-report\">Export Campaign Activities Report</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports campaign activities statistics as an Excel spreadsheet (<code>.xlsx</code> format). It provides a downloadable report of campaign performance data for a specified time period, making it easy to analyze campaign metrics offline or integrate with other reporting tools.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://testsandbox.highp.me/api/core/campaign-stats/campaigns-activities/export\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lastDays</code></td>\n<td>integer</td>\n<td>No</td>\n<td>7</td>\n<td>Number of days to include in the report. Retrieves campaign activities from the last N days.</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>desc</td>\n<td>Sort direction for the results. Accepted values: <code>asc</code> (ascending) or <code>desc</code> (descending).</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"variables\">Variables</h2>\n<p>This request uses the following collection/environment variables:</p>\n<ul>\n<li><strong><code>tenant-domain</code></strong>: Your organization's tenant domain (e.g., <code>yourcompany.highp.me</code>)</li>\n<li><strong><code>token</code></strong>: Your authentication bearer token for API access</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a binary Excel file with the following characteristics:</p>\n<ul>\n<li><strong>Content-Type</strong>: <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></li>\n<li><strong>File Name</strong>: <code>campaigns_activities.xlsx</code></li>\n<li><strong>Format</strong>: Microsoft Excel 2007+ (.xlsx)</li>\n</ul>\n<p>The response includes the following headers:</p>\n<ul>\n<li><code>Content-Disposition: attachment; filename=campaigns_activities.xlsx</code> - Triggers file download</li>\n<li><code>Cache-Control: no-cache</code> - Ensures fresh data on each request</li>\n</ul>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>The Excel file contains campaign activity data with metrics and statistics for the specified time period. The spreadsheet includes campaign performance indicators organized in a tabular format suitable for analysis and reporting.</p>\n<h2 id=\"nodejs-example\">Node.js Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nasync function exportCampaignActivities() {\n  const tenantDomain = 'yourcompany.highp.me';\n  const token = 'your_access_token_here';\n  const lastDays = 7;\n  const sortDirection = 'desc';\n  \n  const url = `https://${tenantDomain}/api/core/campaign-stats/campaigns-activities/export?lastDays=${lastDays}&amp;sortDirection=${sortDirection}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    // Get the file as a buffer\n    const buffer = await response.buffer();\n    \n    // Save to file\n    const fs = require('fs');\n    fs.writeFileSync('campaigns_activities.xlsx', buffer);\n    \n    console.log('Campaign activities report downloaded successfully!');\n    console.log(`File size: ${buffer.length} bytes`);\n    \n  } catch (error) {\n    console.error('Error exporting campaign activities:', error.message);\n  }\n}\n\n// Execute the function\nexportCampaignActivities();\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Offline Analysis</strong>: Download campaign data for analysis in Excel or other spreadsheet applications</li>\n<li><strong>Reporting</strong>: Generate periodic reports for stakeholders</li>\n<li><strong>Data Integration</strong>: Import campaign statistics into business intelligence tools</li>\n<li><strong>Archival</strong>: Maintain historical records of campaign performance</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The export includes data for the specified time period based on the <code>lastDays</code> parameter</li>\n<li>The file is generated dynamically and reflects the current state of campaign activities</li>\n<li>Large date ranges may result in larger file sizes and longer processing times</li>\n<li>The response includes cache control headers to ensure data freshness</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-stats","campaigns-activities","export"],"host":["testsandbox.highp.me"],"query":[{"key":"lastDays","value":"7"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"b1fd8386-5d7f-4b24-9e7d-0a34a9546929","name":"Enviroment Report - Campaigns Activities XLS Export","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/campaigns-activities/export?lastDays=7&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","campaigns-activities","export"],"query":[{"key":"lastDays","value":"7"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:22:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"3866"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:22:56 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=campaigns_activities.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-33468a7e5da3fe6cde4e89de0f4598fa' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-33468a7e5da3fe6cde4e89de0f4598fa' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm��J�0\u0014E%�M�R��v\u0010e@P\u001c���\u0016�c[l.$юoZ�\n�[����d׻���;�0Z�`�\u0017\u0018��V��o�C���1\nQ\u0018%&k����][Kǥ�p�ց�#\u0004�4&p�\u001a<��8!A\u000e�E�\u0013aR�b�\u00161]}O����\u0007�h�B�(�\"��f�'���ҽ�i\u0015(I`\u0002\r&\u0006BsJ~�\b^�\u0007�d#�aܨy��\\��\u0011%O�7����h��K�m}Rs�ADP(\tx�p���䱼����e\u0005�2J3F;Zr�xU=����\"�:[�^�B\u0006@���۞k���\u0013PK\u0007\bb$�c\u0004\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml��ˎ\u00131\u0010E�|E��5��\u0003%�� $�\u00136���.'\r�;�\u001d���\u0011\u0012Hݙa�[��{]%o\u001e�O�O���T�=`}G%Ni,�m��\b�ܽ��s��t+u�\u000b�w�2����?�Qʼ폵^�\u000f�\u001c�t\u000e��t��*y��Cm��a�/W\ni>\u0012��i\u0010���\u001c���6����S8_�x(�~���f����RX\u0014��z�e�s8�V�C�Zd\u0004�D�l���\"\u0010�Z\u0016�\f�Ҳ�RK������3�,�\f�J��^�R�\u00032\u001d�X�!i&��˞8��J���u\u0018P\u001a\u000b�\u0005\u000b*�\f\u0018�\u0005lD%\u0005k8s�\u001e\u0015���T(}��\u001a��V9�JQ�$�\u0019ތZ\u0011!\u0004� g-Y������K=`�<���S\u0004Ņ\u0003\u0014��\u000e\":�\u001a�㲧\u001c�\u0015�,Ui�b\\'�\u001a��l\u0010�\u0016\u001clb� ��yu�\u001f����rr�\u0005�\f,p\u0007\n�\u0000�6 -\u0015�.k��j�\u000b�l\u001b}\u0010YH���f7\u0012\u0004ޞ�I't\u000eɆ5��\u0011���6k�\u0003�Gz���\u0019��9��S�&����!ڬ$�\fB7s�\u0004A�u�l2%xR&j�&y�7,2�=�qҴ\u0005g-rj�i��\n]\"nV��o��\u0015C�Jv�\u0001PK\u0007\b\r��\u000f�\u0001\u0000\u0000w\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml��MO�0\f�����w�t \u0004U�\u001d@H�q\u0018ܽ�m�5\u001f����'�T���z�Ǐ�f��&q��6x\r�F� oBg�����z�\b�����t:�p\u0012\u0005��a�9�R�\u0019�!oB$_6}H\u000es�i�\u001c\u0013a�#Qv��*� \u001dZ\u000fWC���\b}o\r�\u0004����$ф����F����[\u0012\u001df��Խ�\u001e'&�m3o>,]�\u0017��@��\u000exԠfN�\u0001���\u0014\u001e\u001dixF\u0017�\u000e�A��v\u001aҾ�\u0003� �\u0012�E�^��W�\rPK\u0007\b��\u0004��\u0000\u0000\u0000`\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��[o�0\u0010F��+�߻`s��(�*j\u001f*U��{�\\\u0014��8���5d�\f���ѱ���lv�k蝳Ps'ǜЃG\u001c1����&'?�?�O�m�.�H�8�BhǬ\u001f眴ZO7�;��\u0018�|��\u0018\r��\u001a�6�j�yR�W릡w��E����\u0014Y�\rb\\��\u0012uN��͑2�\u0016ٺ�g'.3xv\u0016�I�ǥ�T��\u001cQ��7ыR\u000bSk�$���_�\u001f��|QN%j�����QtM�͛��U�(?p͋Lɋ�\f1',��;jD9�M}.��=\u001bEye���-;B�,sM+aV��b\u001fI \u000b�䙍+K���o�o=>�\u0015\"\u000fd\u0011����'{��z\u0002�+F\u001e�\u0012�\t���{��zB�+E\u001e�(�r�\u0010�h�'��(��Ч��@�L\u00110�{�؊b�\u000bGa\u0003q\u0016ⷈ\u0012+J`/��\r�aH�o�'J�(��p\u00186\u0010�!}��z/WՃ�p\u001e6��@\\�k20\u00176\u0017\u001cGbKq&��5��|�p\b0\u001c�-Ź��2\u0017\f��7�3WM7��Ij-\u00073h\u000f��,��Z��2��5#�\u0016�����8�y���ZN׽�P��\u001c�oPK\u0007\b�B\u0003��\u0001\u0000\u0000l\u0006\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[b$�c\u0004\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[\r��\u000f�\u0001\u0000\u0000w\u0004\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0006\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[��\u0004��\u0000\u0000\u0000`\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000h\b\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\t\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�B\u0003��\u0001\u0000\u0000l\u0006\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\n\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000�\f\u0000\u0000\u0000\u0000"}],"_postman_id":"1773a89a-5c70-40c6-90fd-2a559f4049e1"},{"name":"Enviroment Report - Performing Campaigns","id":"6699df89-6b36-44ff-ba48-8f4f40a8139b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-stats/performing-campaigns?lastDays=7&page=string&size=string&sortDirection=desc","description":"<h1 id=\"get-performing-campaigns-statistics\">Get Performing Campaigns Statistics</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves performance statistics for campaigns over a specified time period. It returns a paginated list of campaigns sorted by their performance value, allowing you to identify which campaigns are performing best or worst based on the sort direction.</p>\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>Endpoint:</strong> <code>/api/core/campaign-stats/performing-campaigns</code></p>\n<p><strong>Base URL:</strong> <code>https://testsandbox.highp.me</code></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>Type</th>\n<th>Required</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lastDays</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>Number of days to look back for campaign performance data. Determines the time window for calculating campaign statistics.</td>\n<td><code>7</code></td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Direction to sort results by performance value. Use <code>desc</code> for highest performing campaigns first, or <code>asc</code> for lowest performing first.</td>\n<td><code>desc</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a bearer token. The following variables must be configured:</p>\n<ul>\n<li><strong><code>token</code></strong>: Your API authentication token (used in Authorization header)</li>\n<li><strong><code>tenant-domain</code></strong>: Your tenant's domain URL</li>\n</ul>\n<h2 id=\"response-model\">Response Model</h2>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"campaignUuid\": \"string\",      // Unique identifier for the campaign\n      \"campaignTitle\": \"string\",     // Display name of the campaign\n      \"value\": number                // Performance value (0-100)\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": boolean,\n      \"unsorted\": boolean,\n      \"sorted\": boolean\n    },\n    \"offset\": number,\n    \"pageNumber\": number,\n    \"pageSize\": number,\n    \"paged\": boolean,\n    \"unpaged\": boolean\n  },\n  \"totalElements\": number,           // Total number of campaigns\n  \"totalPages\": number,              // Total number of pages\n  \"last\": boolean,                   // Whether this is the last page\n  \"size\": number,                    // Page size\n  \"number\": number,                  // Current page number\n  \"sort\": {\n    \"empty\": boolean,\n    \"unsorted\": boolean,\n    \"sorted\": boolean\n  },\n  \"numberOfElements\": number,        // Number of elements in current page\n  \"first\": boolean,                  // Whether this is the first page\n  \"empty\": boolean                   // Whether the result is empty\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.com';\nconst token = 'your-auth-token';\nconst lastDays = 7;\nconst sortDirection = 'desc';\n\nconst url = `https://${tenantDomain}/api/core/campaign-stats/performing-campaigns?lastDays=${lastDays}&amp;sortDirection=${sortDirection}`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Campaign Statistics:', data);\n    console.log(`Total campaigns: ${data.totalElements}`);\n    \n    // Display top performing campaigns\n    data.content.forEach(campaign =&gt; {\n      console.log(`${campaign.campaignTitle}: ${campaign.value}%`);\n    });\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching campaign stats:', error);\n  });\n</code></pre>\n<h2 id=\"response-example\">Response Example</h2>\n<p>See the saved example <strong>\"Enviroment Report - Performing Campaigns\"</strong> for a complete response sample with real data.</p>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Performance Monitoring</strong>: Track which campaigns are performing best over the last week</li>\n<li><strong>Campaign Optimization</strong>: Identify underperforming campaigns that need attention</li>\n<li><strong>Reporting</strong>: Generate performance reports for stakeholders</li>\n<li><strong>Dashboard Integration</strong>: Display real-time campaign performance metrics</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>value</code> field represents a performance metric ranging from 0 to 100</li>\n<li>Results are paginated with a default page size of 20</li>\n<li>The response includes standard Spring Data pagination metadata</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-stats","performing-campaigns"],"host":["testsandbox.highp.me"],"query":[{"key":"lastDays","value":"7"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"5eb93299-3aa1-4e60-a34a-a84f6935a6e1","name":"Enviroment Report - Performing Campaigns","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/performing-campaigns?lastDays=7&page=string&size=string&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","performing-campaigns"],"query":[{"key":"lastDays","value":"7"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:23:09 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:23:08 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-b40da3985acd53a5440a1f44de56b932' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-b40da3985acd53a5440a1f44de56b932' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"campaignUuid\": \"5dd60143-7794-4479-b05c-677bad503f29\",\n            \"campaignTitle\": \"consents\",\n            \"value\": 100\n        },\n        {\n            \"campaignUuid\": \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\",\n            \"campaignTitle\": \"test kreator900\",\n            \"value\": 100\n        },\n        {\n            \"campaignUuid\": \"c4dc22d2-0614-472c-aa8d-ff530f3e5b65\",\n            \"campaignTitle\": \"test ene\",\n            \"value\": 100\n        },\n        {\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignTitle\": \"test ene [cloned] started\",\n            \"value\": 63\n        },\n        {\n            \"campaignUuid\": \"37a4015d-c5b4-4f6b-9521-7d04f62595fe\",\n            \"campaignTitle\": \"nhjnbp [cloned]\",\n            \"value\": 0\n        },\n        {\n            \"campaignUuid\": \"7c9a2f23-c369-4fce-a114-83825fad7a50\",\n            \"campaignTitle\": \"test\",\n            \"value\": 0\n        },\n        {\n            \"campaignUuid\": \"997f511a-e9be-4be8-86b1-11b0c1df36f0\",\n            \"campaignTitle\": \"test [cloned] [cloned]\",\n            \"value\": 0\n        },\n        {\n            \"campaignUuid\": \"aba31f5c-efdc-4128-b26c-6a2c854f531b\",\n            \"campaignTitle\": \"nhjnbp\",\n            \"value\": 0\n        },\n        {\n            \"campaignUuid\": \"b7f43e8f-25ce-4e2e-9ee3-a10421d46c54\",\n            \"campaignTitle\": \"test [cloned]\",\n            \"value\": 0\n        },\n        {\n            \"campaignUuid\": \"c0c0719b-6836-440e-ada7-65654b8de16b\",\n            \"campaignTitle\": \"test [cloned] [cloned] [cloned]\",\n            \"value\": 0\n        },\n        {\n            \"campaignUuid\": \"d8bf20ef-0a18-4be6-b643-534198f58150\",\n            \"campaignTitle\": \"nhjnbp [cloned] [cloned]\",\n            \"value\": 0\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": true,\n            \"unsorted\": true,\n            \"sorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 11,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": true,\n        \"unsorted\": true,\n        \"sorted\": false\n    },\n    \"numberOfElements\": 11,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"6699df89-6b36-44ff-ba48-8f4f40a8139b"},{"name":"Enviroment Report - Performing Campaigns XLS Export","id":"d6ef8ca9-87a1-4850-911e-b9f91ada1091","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-stats/performing-campaigns/export?lastDays=7&sortDirection=desc","description":"<h1 id=\"export-performing-campaigns-report\">Export Performing Campaigns Report</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports campaign performance statistics as an Excel (XLSX) file. It provides a downloadable report of the top-performing campaigns based on specified criteria, making it easy to analyze campaign metrics offline or share with stakeholders.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/campaign-stats/performing-campaigns/export\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>token</code> variable should contain a valid access token for your tenant.</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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lastDays</code></td>\n<td>integer</td>\n<td>No</td>\n<td>7</td>\n<td>Number of days to look back for campaign performance data. Filters campaigns based on their activity within this time period.</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>desc</td>\n<td>Sort direction for the results. Accepts <code>asc</code> (ascending) or <code>desc</code> (descending). Use <code>desc</code> to see top performers first.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a binary Excel file with the following characteristics:</p>\n<p><strong>Content-Type:</strong> <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></p>\n<p><strong>Content-Disposition:</strong> <code>attachment; filename=performing_campaigns.xlsx</code></p>\n<p>The Excel file contains campaign performance data with metrics such as:</p>\n<ul>\n<li>Campaign names</li>\n<li>Performance statistics</li>\n<li>Engagement metrics</li>\n<li>Time-based data</li>\n</ul>\n<h3 id=\"response-headers\">Response Headers</h3>\n<ul>\n<li><code>Content-Type</code>: <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></li>\n<li><code>Content-Disposition</code>: <code>attachment; filename=performing_campaigns.xlsx</code></li>\n<li><code>Cache-Control</code>: <code>no-cache</code></li>\n<li><code>X-Content-Type-Options</code>: <code>nosniff</code></li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nasync function exportPerformingCampaigns() {\n  const tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\n  const token = 'your_access_token_here'; // Replace with your access token\n  \n  const url = `https://${tenantDomain}/api/core/campaign-stats/performing-campaigns/export?lastDays=7&amp;sortDirection=desc`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Accept': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    // Get the file as a buffer\n    const buffer = await response.buffer();\n    \n    // Save to file\n    const fs = require('fs');\n    fs.writeFileSync('performing_campaigns.xlsx', buffer);\n    \n    console.log('Report exported successfully to performing_campaigns.xlsx');\n    \n  } catch (error) {\n    console.error('Error exporting report:', error);\n  }\n}\n\nexportPerformingCampaigns();\n</code></pre>\n<h2 id=\"usage-examples\">Usage Examples</h2>\n<h3 id=\"export-last-7-days-default\">Export last 7 days (default)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/campaign-stats/performing-campaigns/export?lastDays=7&amp;sortDirection=desc\n</code></pre><h3 id=\"export-last-30-days\">Export last 30 days</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/campaign-stats/performing-campaigns/export?lastDays=30&amp;sortDirection=desc\n</code></pre><h3 id=\"export-with-ascending-sort\">Export with ascending sort</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/campaign-stats/performing-campaigns/export?lastDays=7&amp;sortDirection=asc\n</code></pre><h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to access campaign statistics</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Endpoint not available</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The exported file is in Excel 2007+ format (.xlsx)</li>\n<li>The file is generated dynamically based on the query parameters</li>\n<li>Large date ranges may result in larger file sizes and longer processing times</li>\n<li>The report includes only campaigns that have activity within the specified time period</li>\n<li>Ensure your application can handle binary file downloads when implementing this endpoint</li>\n</ul>\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li>View campaign statistics in JSON format (if available)</li>\n<li>Get individual campaign performance metrics</li>\n<li>Access real-time campaign dashboards</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-stats","performing-campaigns","export"],"host":["testsandbox.highp.me"],"query":[{"key":"lastDays","value":"7"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"e065673e-e769-468e-8d2c-3c3ef786bdd9","name":"Enviroment Report - Performing Campaigns XLS Export","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/performing-campaigns/export?lastDays=7&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","performing-campaigns","export"],"query":[{"key":"lastDays","value":"7"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:23:22 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"3860"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:23:21 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=performing_campaigns.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-d015305bae4897d8f8dcc0a8d172ceb3' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-d015305bae4897d8f8dcc0a8d172ceb3' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm��J�0\u0010F_�依&E��v\u0011eAP\\pE�.$c[l~H�]�޴�\u0015\\!\u0017�|g\u000e��7\u0007=f\u001f��`MChQ�\f��j0]C\u001e����d!\n��h\r6�X�ik鸴\u001ew�:�q��%�\t\\���1:\u000e\u0010d�Z�\"\u0011&���k\u0011��w��|\u0013\u001d\u0002+�s�\u0018�\u0012Q�,��j$G���ҽ�q\u0011(\t8�F\u0013\u0003Ђ�/\u001b���oÒ��!\f+5MS1U\u000b�&��|w��\f�\u000ff��D��G5�\u001eED�%\u0001��.m�'y����[Ҳ�����i�Y:쥆?����n}{�\u0016�c������\\�ɚ�/PK\u0007\bou\u0007\u001b\u0004\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml}T���0\u0010��\u0015��=��\bl_qA���4A\n.���ؔc�A>?t�\u0003$_J΂Ù��6�Χ�7]�q*۞?���\u0012�4�ö߿~\u0006�?�>l�vq�����[\u0019���\rh,e���Z/\u001f�a�G:��i�Pi�<]ϡ���0̗+�4\u001f���4\b��p\u000ec�w�y�m��%�/a<�n���i3��f�\u000f\u0016�ױ�h9�\u001aN�\u0015�S2�+\t�z\u0005JY\u000f�t\u0004c-�����/�ĩ�T��\u001dz�\"#�'\u0002eC\u0004�\u0014��ֲ�e@��w*���l��t����R)\n�\u00040Û<+\"��\u0012�%˒4\u001a����ʪu\u0018P\u001a\u000b�\u0005\u000b*�\f\u0018�\u0005l��\u0014��5�qu��i*��ws\r�J+\u001f�\u0006ŸN\u001056�� x-8���Ah��JP9�(x�G��\u001b}\u0010YH���F\u0019\t\u0002o[p�\t�C�A��u׻ļ�Ys\u001e�<�X�\u001c8�\u001c8G\u0016y���\n    <o��S\u00180H�[[(�\b�\u000b\u0007(L+O\u0010�i�2����\u0012E��$�A�fS� h\u001d��0S�'e�V�ո*\u000e��r�`�4�׬-/�؍6Z�K��J�c��>�\u001cf�(\u0003\u000b���j\u0000M���Tܻ�\u001d_糈�\u0001��~%��PK\u0007\b�|�\r�\u0001\u0000\u0000w\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml��MO�0\f�����w�t \u0004U�\u001d@H�q\u0018ܽ�m�5\u001f����'�T���z�Ǐ�f��&q��6x\r�F� oBg�����z�\b�����t:�p\u0012\u0005��a�9�R�\u0019�!oB$_6}H\u000es�i�\u001c\u0013a�#Qv��*� \u001dZ\u000fWC���\b}o\r�\u0004����$ф����F����[\u0012\u001df��Խ�\u001e'&�m3o>,]�\u0017��@��\u000exԠfN�\u0001���\u0014\u001e\u001dixF\u0017�\u000e�A��v\u001aҾ�\u0003� �\u0012�E�^��W�\rPK\u0007\b��\u0004��\u0000\u0000\u0000`\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��Io�0\u0010F��\u0015\u0002�5�X�\u0003IA�\"h\u000f\u0005�.���hA$Q�\u0018�?���2�i��F��H��(���w�\u0011���!c��e\u000e\f�,ۡ�د�\u000f\u001f\u0013v�HOR=M\r�v��a�X��x��T4Ћi#G\u0018\f���6SU�iT ����F�\u0017���l{\u0018f����؝w��|�������ӄ���>H�4O��\u00193G���\u0003:(4��V�0���l8\u001f�rJ��s����gh�F�������\u0016y���Q��\u0013\u0016���3��Mf~�ݔ\u001f����{̼%�c�[�M}+��G�\u0003\"�lK$\u00176\\\u000e�\u001b�����\u0002T,$\"�\"\"\n։�V�E�b\"�,!��:QhE!*�#\"�<���!2E�k�Ȋ\"\\�|��\u0005�)B�Wo\u0014[Q�k�4, �C�F�XQ�k�4, �C�F���\u001d�EӰ�4\u000e�5\"�}y�.�F�>\rĕ�'C�a��i$��f�Jߓ��\b\u000f�\u0001��bIi.<�M\u0019G�o\u00145|\u0015�n��9H�eoz�&6���R��g�\u00194���I\u0007�>�b��4��X��w�����\u0001PK\u0007\b�̠U�\u0001\u0000\u0000o\u0006\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[ou\u0007\u001b\u0004\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�|�\r�\u0001\u0000\u0000w\u0004\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0006\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[��\u0004��\u0000\u0000\u0000`\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\b\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�̠U�\u0001\u0000\u0000o\u0006\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\n\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000�\f\u0000\u0000\u0000\u0000"}],"_postman_id":"d6ef8ca9-87a1-4850-911e-b9f91ada1091"},{"name":"Enviroment Report - Representative Activities","id":"e59060cb-893f-47da-8ced-e79d8c5c03c7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-stats/reps-activities?page=string&size=string&sortDirection=desc&lastDays=31","description":"<h1 id=\"representative-activities-report\">Representative Activities Report</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves a paginated report of representative activities within a specified time period. It returns statistics showing the activity count for each representative, sorted by the specified direction.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://testsandbox.highp.me/api/core/campaign-stats/reps-activities\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>asc</code></td>\n<td>Sort direction for results. Accepts <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n<tr>\n<td><code>lastDays</code></td>\n<td>integer</td>\n<td>No</td>\n<td>30</td>\n<td>Number of days to look back for activity data. Example: <code>31</code> for the last 31 days</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>Page number for pagination (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>Number of items per page</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"variables\">Variables</h2>\n<p>This request uses the following variables:</p>\n<ul>\n<li><strong><code>testsandbox.highp.me</code></strong>: Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><strong><code>{{token}}</code></strong>: Your Bearer authentication token</li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your-access-token';\nconst sortDirection = 'desc';\nconst lastDays = 31;\n\nconst url = `https://${tenantDomain}/api/core/campaign-stats/reps-activities?sortDirection=${sortDirection}&amp;lastDays=${lastDays}`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Representative Activities:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"representativeUuid\": \"string\",\n      \"representativeName\": \"string\",\n      \"representativeLastName\": \"string\",\n      \"value\": integer\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": boolean,\n      \"unsorted\": boolean,\n      \"sorted\": boolean\n    },\n    \"offset\": integer,\n    \"pageNumber\": integer,\n    \"pageSize\": integer,\n    \"paged\": boolean,\n    \"unpaged\": boolean\n  },\n  \"totalElements\": integer,\n  \"totalPages\": integer,\n  \"last\": boolean,\n  \"size\": integer,\n  \"number\": integer,\n  \"sort\": {\n    \"empty\": boolean,\n    \"unsorted\": boolean,\n    \"sorted\": boolean\n  },\n  \"numberOfElements\": integer,\n  \"first\": boolean,\n  \"empty\": boolean\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array\">Content Array</h4>\n<p>Each item in the <code>content</code> array represents a representative's activity:</p>\n<ul>\n<li><strong><code>representativeUuid</code></strong> (string): Unique identifier for the representative</li>\n<li><strong><code>representativeName</code></strong> (string): Representative's first name</li>\n<li><strong><code>representativeLastName</code></strong> (string): Representative's last name</li>\n<li><strong><code>value</code></strong> (integer): Activity count for the representative in the specified time period</li>\n</ul>\n<h4 id=\"pagination-fields\">Pagination Fields</h4>\n<ul>\n<li><strong><code>totalElements</code></strong> (integer): Total number of representatives across all pages</li>\n<li><strong><code>totalPages</code></strong> (integer): Total number of pages available</li>\n<li><strong><code>size</code></strong> (integer): Number of items per page</li>\n<li><strong><code>number</code></strong> (integer): Current page number (zero-indexed)</li>\n<li><strong><code>numberOfElements</code></strong> (integer): Number of elements in the current page</li>\n<li><strong><code>first</code></strong> (boolean): Whether this is the first page</li>\n<li><strong><code>last</code></strong> (boolean): Whether this is the last page</li>\n<li><strong><code>empty</code></strong> (boolean): Whether the result set is empty</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"representativeUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n      \"representativeName\": \"wbbbb\",\n      \"representativeLastName\": \"bbbwww\",\n      \"value\": 186\n    },\n    {\n      \"representativeUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\",\n      \"representativeName\": \"Wojciecheee\",\n      \"representativeLastName\": \"Bojarski\",\n      \"value\": 40\n    },\n    {\n      \"representativeUuid\": \"c5086741-df9e-4517-acfc-7bf5d2578fd8\",\n      \"representativeName\": \"Wojo\",\n      \"representativeLastName\": \"Bojo\",\n      \"value\": 1\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"unsorted\": false,\n      \"sorted\": true\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 3,\n  \"totalPages\": 1,\n  \"last\": true,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": false,\n    \"unsorted\": false,\n    \"sorted\": true\n  },\n  \"numberOfElements\": 3,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Performance Tracking</strong>: Monitor representative activity levels over time</li>\n<li><strong>Reporting</strong>: Generate activity reports for management review</li>\n<li><strong>Analytics</strong>: Identify top-performing representatives based on activity metrics</li>\n<li><strong>Trend Analysis</strong>: Compare activity levels across different time periods by adjusting the <code>lastDays</code> parameter</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-stats","reps-activities"],"host":["testsandbox.highp.me"],"query":[{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortDirection","value":"desc"},{"key":"lastDays","value":"31"}],"variable":[]}},"response":[{"id":"765be80b-4da5-4b3f-9e16-c2aab465b99a","name":"Enviroment Report - Representative Activities","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/reps-activities?page=string&size=string&sortDirection=desc&lastDays=31","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","reps-activities"],"query":[{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortDirection","value":"desc"},{"key":"lastDays","value":"31"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:23:32 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:23:31 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-7d46cebc5927d53b6d8850980a2783a5' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-7d46cebc5927d53b6d8850980a2783a5' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"representativeUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n            \"representativeName\": \"wbbbb\",\n            \"representativeLastName\": \"bbbwww\",\n            \"value\": 186\n        },\n        {\n            \"representativeUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\",\n            \"representativeName\": \"Wojciecheee\",\n            \"representativeLastName\": \"Bojarski\",\n            \"value\": 40\n        },\n        {\n            \"representativeUuid\": \"c5086741-df9e-4517-acfc-7bf5d2578fd8\",\n            \"representativeName\": \"Wojo\",\n            \"representativeLastName\": \"Bojo\",\n            \"value\": 1\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 3,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"unsorted\": false,\n        \"sorted\": true\n    },\n    \"numberOfElements\": 3,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"e59060cb-893f-47da-8ced-e79d8c5c03c7"},{"name":"Enviroment Report - Representative Activities XLS Export","id":"5fec2c8f-8fe8-4597-9333-b2f09ac519ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-stats/reps-activities/export?sortDirection=desc&lastDays=31","description":"<h1 id=\"representative-activities-export\">Representative Activities Export</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports campaign statistics for representative activities as an Excel (XLSX) file. It provides a downloadable report containing detailed activity data for sales representatives over a specified time period.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/campaign-stats/reps-activities/export</code></p>\n<p><strong>Authentication:</strong> Bearer Token (required)</p>\n<p>The endpoint requires a valid authentication token passed via the <code>Authorization</code> header using the Bearer scheme.</p>\n<h2 id=\"variables\">Variables</h2>\n<p>This endpoint uses the following Postman variables:</p>\n<ul>\n<li><code>testsandbox.highp.me</code> - Your Highp tenant domain (e.g., <code>yourtenant.highp.me</code>)</li>\n<li><code>{{token}}</code> - Your authentication bearer token</li>\n</ul>\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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>desc</code></td>\n<td>Sort direction for the results. Accepts <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n<tr>\n<td><code>lastDays</code></td>\n<td>integer</td>\n<td>No</td>\n<td><code>31</code></td>\n<td>Number of days to include in the report. Specifies the time range for activity data (e.g., <code>7</code>, <code>30</code>, <code>31</code>, <code>90</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p><strong>Content-Type:</strong> <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></p>\n<p><strong>Content-Disposition:</strong> <code>attachment; filename=reps_activities.xlsx</code></p>\n<p>The endpoint returns a binary Excel file containing representative activities data. The file is automatically downloaded with the filename <code>reps_activities.xlsx</code>.</p>\n<h3 id=\"response-headers\">Response Headers</h3>\n<ul>\n<li><code>Content-Type</code>: <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></li>\n<li><code>Content-Disposition</code>: <code>attachment; filename=reps_activities.xlsx</code></li>\n<li><code>Cache-Control</code>: <code>no-cache</code></li>\n<li><code>X-Content-Type-Options</code>: <code>nosniff</code></li>\n</ul>\n<h3 id=\"excel-file-structure\">Excel File Structure</h3>\n<p>The exported Excel file contains representative activity statistics including:</p>\n<ul>\n<li>Representative information</li>\n<li>Campaign activities</li>\n<li>Performance metrics</li>\n<li>Time-based activity data for the specified period</li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'yourtenant.highp.me'; // Replace with your tenant domain\nconst token = 'your_bearer_token_here'; // Replace with your authentication token\n\nconst exportRepActivities = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/campaign-stats/reps-activities/export?sortDirection=desc&amp;lastDays=31`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    // Get the file as a buffer\n    const buffer = await response.buffer();\n    \n    // Save to file system\n    const fs = require('fs');\n    fs.writeFileSync('reps_activities.xlsx', buffer);\n    \n    console.log('File downloaded successfully: reps_activities.xlsx');\n    console.log(`File size: ${buffer.length} bytes`);\n    \n  } catch (error) {\n    console.error('Error downloading file:', error.message);\n  }\n};\n\nexportRepActivities();\n</code></pre>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ol>\n<li><strong>File Format</strong>: The response is a binary Excel file in XLSX format</li>\n<li><strong>Time Range</strong>: Adjust the <code>lastDays</code> parameter to control the reporting period</li>\n<li><strong>Sorting</strong>: Use <code>sortDirection</code> to control the order of data in the export</li>\n<li><strong>Authentication</strong>: Ensure your bearer token is valid and has appropriate permissions</li>\n<li><strong>File Handling</strong>: The response should be handled as binary data and saved with the <code>.xlsx</code> extension</li>\n</ol>\n<h2 id=\"common-use-cases\">Common Use Cases</h2>\n<ul>\n<li>Generate monthly activity reports (set <code>lastDays=30</code>)</li>\n<li>Export weekly performance data (set <code>lastDays=7</code>)</li>\n<li>Create quarterly reports (set <code>lastDays=90</code>)</li>\n<li>Download historical data for analysis and archiving</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-stats","reps-activities","export"],"host":["testsandbox.highp.me"],"query":[{"key":"sortDirection","value":"desc"},{"key":"lastDays","value":"31"}],"variable":[]}},"response":[{"id":"07ce1d08-c75f-4b20-9697-576b60f33c07","name":"Enviroment Report - Representative Activities XLS Export","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/reps-activities/export?sortDirection=desc&lastDays=31","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","reps-activities","export"],"query":[{"key":"sortDirection","value":"desc"},{"key":"lastDays","value":"31"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:23:47 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"3579"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:23:46 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=reps_activities.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-e190ca384b8a3fd58d374b70b85cfef7' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-e190ca384b8a3fd58d374b70b85cfef7' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm��J�0\u0010F_�依�]EB�E�\u0005Aq���w!\u0019�b�C\u0012����u���%��\u001c&_�=�1yG�\u0007�kB��$�����j����\u000b������X\u0013mȶ��e�8�;cх\u0001}\u00125�3ak҇`\u0019�\u0017=*�H�\u0018�\u0018�x�Wׁ��w\bE�����%\u000f\u001cfajW#9)�X��͍�@\n�\u0011\u0015���f\u0014~؀N�\u0007�d%�~X�i���\\��\u0011����ò|:���\u0002IS��L8�\u0001e\u0012\u0005,|���w�T^]�;�\u0014yq�R�\u0016��%+J��\n    <W�k~\u0016~��k.c!=&����[�+�Ss�\tPK\u0007\b�D?�\u0005\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml���J�0\u0014��>E(�̤�M/�逊 x\u0001ut����d�&c�N}|�.��`v���\\ )W\u001f�\u001c����e\u0010-�\u0006#��,���5̓UuRZ�\b�^;����Z��x�\u000b|\u0017m��ֹ�9c\u0016��\n�0\u0007�>iL�\n�݆�C�B�-�k�,\u000eÔ�B�*��JW=�\u0017,j'�:\"Y�o�J檒}ųʽh�\u001f�V���'�\u0010gȃ_\u0014%9\u001d�\u000f���\u0007^�V��O�\u001dZ+6hɋ���)�(�(�\u0012�\u0001$Mj�i���\b�,��n\u0000Ÿf��\u0019C��a\u0018���8M%� �4i@�<�k\u001a�\u001c�\"\u0001�ä��فB�L8����Dg�Ԙ\u0003\u000f�4K\"*�\u0002i£�\nh�fu�e̳����\u00183��\u000fc�gU�PK\u0007\bp\u0013߉C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml��MO�0\f�����w�\u0014\u0010���.Ӥ�\u0010\f�Y�њ\u000f�a��v*p�d����O���8#��AC�R 0tѺp����>���i.�N�\u0018O���5\f9�ZJ�\u0006�W1a(�>�7�D:JN����(�z�޸\u0000׆���\u0011��u��ݧǐ�%���E�\u0007�\u0018�\u001f�\u0017\u0012�d��Ճ�ތ� �f�|8��/8Ea��θ7\u0007\rj��\u001fpv^�\bƣ�WL,�r\u0011\u0003A��\u001ahg�A�̮�jnYN���\u0006PK\u0007\b�Wg��\u0000\u0000\u0000a\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�ju[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xmlu��n�0\u0010@��\n���@��\b��P�\u001e*U��\u000e\f�\u00026����_CRd���ћ��\u0012���\u001a�@Ȋ�\u0010�\u0013\u0007#`)�*V���#�_�ut\u0017��8�\u0012@!��d�K��\u0015!2-��r�[`��\\4T�P\u0014D�\u0002h�\u001755�\u001cgN\u001aZ1\u001c\u0005Y�\u0000�\u001a\"\u0001y�7�*�1��>����4֨k����\u0005�Y�����w�!U�c%��U���y\u0015(��\u001ek���OP\u0015�҃����-c�h\u0014\b~FB\u0013-�v���\u001b�X��\u00149\u00019�\u0016�mM���dޘ�&��٣��1KL6\u001b\u0018�΃�7�{F��\u00127��\u00127��\u0012�0v\u0019x9�8KL\u0007���ك%a2�:��\bZg\u001bO\r\r����\u001f,|s3�2�#h��n\u0004��}�4n,��ZZ�\u000b\u0015E�$�s�x�_�d1�(�\\��\"=T���\u0010Ԑ�>\u000b#qy��Z��Z۽��GF?PK\u0007\b��\u0005�}\u0001\u0000\u0000�\u0003\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�D?�\u0005\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[p\u0013߉C\u0001\u0000\u0000�\u0002\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00000\u0006\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�Wg��\u0000\u0000\u0000a\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0007\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\b\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�ju[��\u0005�}\u0001\u0000\u0000�\u0003\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\t\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000�\u000b\u0000\u0000\u0000\u0000"}],"_postman_id":"5fec2c8f-8fe8-4597-9333-b2f09ac519ac"},{"name":"Enviroment Report - Performing Representatives","id":"91228e03-86a5-48a3-96bb-f700cec2116e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-stats/performing-reps?lastDays=30&campaignUuid=string&page=string&size=string&sortBy=sentToOpenedPercent&sortDirection=desc","description":"<h1 id=\"retrieve-performing-representatives-campaign-stats\">Retrieve Performing Representatives Campaign Stats</h1>\n<p>This endpoint retrieves statistics for performing representatives within a campaign, providing insights into message engagement, conversion rates, and representative performance metrics.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://testsandbox.highp.me/api/core/campaign-stats/performing-reps\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. The token should be passed in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>{{token}}</code> variable should contain a valid JWT access token for your tenant.</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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lastDays</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Number of days to consider for the statistics. Default: 30. Example: <code>30</code></td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>Field to sort results by. Available options: <code>sentToOpenedPercent</code>, <code>orderedToSentPercent</code>, <code>openedMessagesValue</code>. Example: <code>sentToOpenedPercent</code></td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>Sorting direction for the results. Options: <code>asc</code>, <code>desc</code>. Default: <code>desc</code></td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Page number for paginated results (zero-based). Default: 0</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Number of items per page. Default: 20</td>\n</tr>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>Unique identifier of a specific campaign to filter results. If not provided, returns stats across all campaigns</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\nconst token = 'your-bearer-token'; // Replace with your access token\n\nconst getPerformingReps = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/campaign-stats/performing-reps?lastDays=30&amp;sortDirection=desc&amp;sortBy=sentToOpenedPercent&amp;page=0&amp;size=20`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('Performing Representatives:', data);\n    \n    // Access individual representatives\n    data.content.forEach(rep =&gt; {\n      console.log(`${rep.representativeName} ${rep.representativeLastName}: ${rep.sentToOpenedPercent}% open rate`);\n    });\n    \n    return data;\n  } catch (error) {\n    console.error('Error fetching performing reps:', error);\n    throw error;\n  }\n};\n\n// Call the function\ngetPerformingReps();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The response follows a paginated structure with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"representativeUuid\": \"string\",\n      \"representativeName\": \"string\",\n      \"representativeLastName\": \"string\",\n      \"sentToOpenedPercent\": \"number\",\n      \"orderedToSentPercent\": \"number\",\n      \"openedMessagesValue\": \"number\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"sorted\": \"boolean\",\n      \"unsorted\": \"boolean\",\n      \"empty\": \"boolean\"\n    },\n    \"pageNumber\": \"integer\",\n    \"pageSize\": \"integer\",\n    \"offset\": \"integer\",\n    \"paged\": \"boolean\",\n    \"unpaged\": \"boolean\"\n  },\n  \"totalElements\": \"integer\",\n  \"totalPages\": \"integer\",\n  \"last\": \"boolean\",\n  \"size\": \"integer\",\n  \"number\": \"integer\",\n  \"numberOfElements\": \"integer\",\n  \"first\": \"boolean\",\n  \"empty\": \"boolean\",\n  \"sort\": {\n    \"sorted\": \"boolean\",\n    \"unsorted\": \"boolean\",\n    \"empty\": \"boolean\"\n  }\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array-fields\">Content Array Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>representativeUuid</code></td>\n<td>string</td>\n<td>Unique identifier for the representative</td>\n</tr>\n<tr>\n<td><code>representativeName</code></td>\n<td>string</td>\n<td>First name of the representative</td>\n</tr>\n<tr>\n<td><code>representativeLastName</code></td>\n<td>string</td>\n<td>Last name of the representative</td>\n</tr>\n<tr>\n<td><code>sentToOpenedPercent</code></td>\n<td>number</td>\n<td>Percentage of sent messages that were opened by recipients</td>\n</tr>\n<tr>\n<td><code>orderedToSentPercent</code></td>\n<td>number</td>\n<td>Percentage of sent messages that resulted in orders/conversions</td>\n</tr>\n<tr>\n<td><code>openedMessagesValue</code></td>\n<td>number</td>\n<td>Total monetary value associated with opened messages</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"pagination-fields\">Pagination Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>content</code></td>\n<td>array</td>\n<td>Array of representative statistics objects</td>\n</tr>\n<tr>\n<td><code>pageable</code></td>\n<td>object</td>\n<td>Pagination metadata including sort and page information</td>\n</tr>\n<tr>\n<td><code>totalElements</code></td>\n<td>integer</td>\n<td>Total number of representatives across all pages</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td><code>last</code></td>\n<td>boolean</td>\n<td>Indicates if this is the last page</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>Number of items per page (as requested)</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Current page number (zero-based)</td>\n</tr>\n<tr>\n<td><code>numberOfElements</code></td>\n<td>integer</td>\n<td>Number of elements in the current page</td>\n</tr>\n<tr>\n<td><code>first</code></td>\n<td>boolean</td>\n<td>Indicates if this is the first page</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Indicates if the result set is empty</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"representativeUuid\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n      \"representativeName\": \"John\",\n      \"representativeLastName\": \"Smith\",\n      \"sentToOpenedPercent\": 85.5,\n      \"orderedToSentPercent\": 42.3,\n      \"openedMessagesValue\": 15420.50\n    },\n    {\n      \"representativeUuid\": \"b2c3d4e5-f6a7-8901-bcde-f12345678901\",\n      \"representativeName\": \"Sarah\",\n      \"representativeLastName\": \"Johnson\",\n      \"sentToOpenedPercent\": 78.2,\n      \"orderedToSentPercent\": 38.7,\n      \"openedMessagesValue\": 12350.75\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"sorted\": true,\n      \"unsorted\": false,\n      \"empty\": false\n    },\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"offset\": 0,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 45,\n  \"totalPages\": 3,\n  \"last\": false,\n  \"size\": 20,\n  \"number\": 0,\n  \"numberOfElements\": 20,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Performance Analysis</strong>: Identify top-performing representatives based on message engagement and conversion rates</li>\n<li><strong>Campaign Optimization</strong>: Analyze which representatives are most effective at driving customer engagement</li>\n<li><strong>Revenue Tracking</strong>: Monitor the monetary value generated through representative communications</li>\n<li><strong>Team Management</strong>: Compare representative performance metrics for training and resource allocation</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Results are sorted by <code>sentToOpenedPercent</code> in descending order by default</li>\n<li>The <code>lastDays</code> parameter allows you to analyze recent performance trends</li>\n<li>Use pagination parameters (<code>page</code>, <code>size</code>) for large datasets</li>\n<li>Filter by <code>campaignUuid</code> to analyze performance for specific campaigns</li>\n<li>All percentage values are returned as decimal numbers (e.g., 85.5 represents 85.5%)</li>\n</ul>\n","urlObject":{"path":["api","core","campaign-stats","performing-reps"],"host":["testsandbox.highp.me"],"query":[{"key":"lastDays","value":"30"},{"key":"campaignUuid","value":"string"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortBy","value":"sentToOpenedPercent"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"5ead263d-0354-46e1-a7ee-401df75e6ef7","name":"Enviroment Report - Performing Representatives","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/performing-reps?lastDays=30&campaignUuid=string&page=string&size=string&sortBy=sentToOpenedPercent&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","performing-reps"],"query":[{"key":"lastDays","value":"30"},{"key":"campaignUuid","value":"string"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortBy","value":"sentToOpenedPercent"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:24:28 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:24:27 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-418bb7c3663d65b57efec70c4069bdda' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-418bb7c3663d65b57efec70c4069bdda' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"representativeUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n            \"representativeName\": \"wbbbb\",\n            \"representativeLastName\": \"bbbwww\",\n            \"sentToOpenedPercent\": 50,\n            \"orderedToSentPercent\": 75,\n            \"openedMessagesValue\": 9\n        },\n        {\n            \"representativeUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\",\n            \"representativeName\": \"Wojciecheee\",\n            \"representativeLastName\": \"Bojarski\",\n            \"sentToOpenedPercent\": 7,\n            \"orderedToSentPercent\": 100,\n            \"openedMessagesValue\": 2\n        },\n        {\n            \"representativeUuid\": \"c5086741-df9e-4517-acfc-7bf5d2578fd8\",\n            \"representativeName\": \"Wojo\",\n            \"representativeLastName\": \"Bojo\",\n            \"sentToOpenedPercent\": 0,\n            \"orderedToSentPercent\": 100,\n            \"openedMessagesValue\": 0\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 3,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": true,\n        \"sorted\": false,\n        \"unsorted\": true\n    },\n    \"numberOfElements\": 3,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"91228e03-86a5-48a3-96bb-f700cec2116e"},{"name":"Enviroment Report - Performing Representatives XLS Export","id":"e8346843-97e8-419a-aa9f-a54d812290b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/campaign-stats/performing-reps/export?lastDays=30&campaignUuid=string&sortBy=sentToOpenedPercent&sortDirection=desc","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports campaign statistics for performing representatives as an Excel (XLSX) file. It provides detailed performance metrics for sales representatives based on their campaign engagement rates over a specified time period.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/campaign-stats/performing-reps/export</code></p>\n<p><strong>Authentication:</strong> Bearer Token (required)</p>\n<p>The endpoint requires a valid Bearer token to be included in the <code>Authorization</code> header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lastDays</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>30</td>\n<td>Number of days to look back for campaign statistics. Determines the time window for performance analysis.</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>desc</td>\n<td>Sort direction for the results. Accepts <code>asc</code> (ascending) or <code>desc</code> (descending).</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Field to sort the results by. Example value: <code>sentToOpenedPercent</code> (sorts by the percentage of sent messages that were opened).</td>\n</tr>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Optional UUID to filter results for a specific campaign.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Content-Type:</strong> <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></p>\n<p><strong>Content-Disposition:</strong> <code>attachment; filename=performing_reps.xlsx</code></p>\n<p>The endpoint returns an Excel file containing performance statistics for representatives. The file is automatically downloaded with the filename <code>performing_reps.xlsx</code>.</p>\n<h3 id=\"response-headers\">Response Headers</h3>\n<ul>\n<li><code>Content-Type</code>: <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></li>\n<li><code>Content-Disposition</code>: <code>attachment; filename=performing_reps.xlsx</code></li>\n<li><code>Cache-Control</code>: <code>no-cache</code></li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\nconst fs = require('fs');\n\nasync function exportPerformingReps() {\n  const tenantDomain = 'your-tenant.highp.me';\n  const token = 'your_bearer_token_here';\n  \n  const url = `https://${tenantDomain}/api/core/campaign-stats/performing-reps/export?lastDays=30&amp;sortDirection=desc`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    // Get the file as a buffer\n    const buffer = await response.buffer();\n    \n    // Save the Excel file\n    fs.writeFileSync('performing_reps.xlsx', buffer);\n    console.log('Excel file downloaded successfully!');\n    \n  } catch (error) {\n    console.error('Error downloading report:', error);\n  }\n}\n\nexportPerformingReps();\n</code></pre>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li>The endpoint generates a report based on campaign statistics for the specified time period</li>\n<li>The Excel file contains detailed metrics about representative performance, including engagement rates</li>\n<li>Use the <code>sortBy</code> parameter with <code>sentToOpenedPercent</code> to rank representatives by their open rate performance</li>\n<li>The <code>lastDays</code> parameter allows you to analyze performance over different time windows (e.g., 7, 30, 90 days)</li>\n<li>The response is a binary Excel file, so ensure your client properly handles binary data</li>\n<li>Cache-Control is set to <code>no-cache</code> to ensure fresh data on each request</li>\n</ul>\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<p>This endpoint is part of the Campaign Statistics API group. For more campaign analytics endpoints, explore other requests in this folder.</p>\n<hr />\n<p><em>This endpoint is useful for generating performance reports, identifying top-performing representatives, and analyzing campaign engagement trends over time.</em></p>\n","urlObject":{"path":["api","core","campaign-stats","performing-reps","export"],"host":["testsandbox.highp.me"],"query":[{"key":"lastDays","value":"30"},{"key":"campaignUuid","value":"string"},{"key":"sortBy","value":"sentToOpenedPercent"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"742ef31a-c88a-4291-973e-cfe84ddfb3ad","name":"Enviroment Report - Performing Representatives XLS Export","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/campaign-stats/performing-reps/export?lastDays=30&campaignUuid=string&sortBy=sentToOpenedPercent&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","campaign-stats","performing-reps","export"],"query":[{"key":"lastDays","value":"30"},{"key":"campaignUuid","value":"string"},{"key":"sortBy","value":"sentToOpenedPercent"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:24:49 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"3608"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:24:48 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=performing_reps.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-de55d76634042f0e681ea623879010b7' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-de55d76634042f0e681ea623879010b7' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm��J�0\u0010F_�依�]e\tm\u0017Q\u0016\u0004�\u0005+�w!\u0019�b�C\u0012����u���%��\u001c&_�;�1yG�\u0007�kB��$�����j����-I|�Z��h��6d�T�2a\u001c\u001e���>�\u001a홰5�C�\f��\u001e\u0015�Y$t\f_�S<ī��r��;�\"��Aa��\u0007\u000e�0�����R�J���E \u0005��\nu�@3\n?l@���\u0003K��G?��4M�T.\\܈������|:���\u0002IS��L8�\u0001e\u0012\u0005,|���w�X^^�{�\u0014yq�R�\u0016��%+6l�}����,�:\u001b�\\�BzL\u000ew�3�>W���\u0013PK\u0007\b�\u001bn�\u0005\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml���J�0\u0014��>E(�̤�M/�逊 x\u0001ut����d�&c�N}|�.��`v���\\ )W\u001f�\u001c����e\u0010-�\u0006#��,���5̓UuRZ�\b�^;����Z��x�\u000b|\u0017m��ֹ�9c\u0016��\n�0\u0007�>iL�\n�݆�C�B�-�k�,\u000eÔ�B�*��JW=�\u0017,j'�:\"Y�o�J檒}ųʽh�\u001f�V���'�\u0010gȃ_\u0014%9\u001d�\u000f���\u0007^�V��O�\u001dZ+6hɋ���)�(�(�\u0012�\u0001$Mj�i���\b�,��n\u0000Ÿf��\u0019C��a\u0018���8M%� �4i@�<�k\u001a�\u001c�\"\u0001�ä��فB�L8����Dg�Ԙ\u0003\u000f�4K\"*�\u0002i£�\nh�fu�e̳����\u00183��\u000fc�gU�PK\u0007\bp\u0013߉C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml��MO�0\f�����w�\u0014\u0010���.Ӥ�\u0010\f�Y�њ\u000f�a��v*p�d����O���8#��AC�R 0tѺp����>���i.�N�\u0018O���5\f9�ZJ�\u0006�W1a(�>�7�D:JN����(�z�޸\u0000׆���\u0011��u��ݧǐ�%���E�\u0007�\u0018�\u001f�\u0017\u0012�d��Ճ�ތ� �f�|8��/8Ea��θ7\u0007\rj��\u001fpv^�\bƣ�WL,�r\u0011\u0003A��\u001ahg�A�̮�jnYN���\u0006PK\u0007\b�Wg��\u0000\u0000\u0000a\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0018ku[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��MO�0\f����(w���\u0018���ب�����g��!ڤJ���'�F�fB�b=�����h��6d\u000fJ�R�ԟy���d^�2��o��5]%\u0017�A�O]\u0001\u0018b�ieLw˘�*h���\u000e�%�T-76T%ӝ\u0002�\u000fEm�\u0002ϻb-�\u0005M��nA�\r��\"�k�6\r)K�!����Fgҷ�I��\u0007�yL�B�w��@f��F}A_����Aͳ\"9\u0014��1/��\u0000uY\u0019kta����rÓH�\u0003Q�X�YX��QL����\u0017��m���\u001df��m0\u000b�l��|��1\u000b�,�l12f5�Qx���\u001c�-\u001d�];L\u001c\u0005x3�>�1^.\\�b|����|40GBn\u001c\u0003��N��\u0004:ﲝc�g\u000e0��3�)��_\u0016��B��8Sp7��\u0018l&Й�m�T��B������\u001e\u0018Z�����UY\u000bMv�\u0018��ś-\u0017�\u0014R\u001aP}do��\u001b>\u0006\r\u0014fȢD\u001d�l8\u001bٝj�%\u001d?��\u0007PK\u0007\b�$�Ӛ\u0001\u0000\u0000{\u0004\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[�\u001bn�\u0005\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[p\u0013߉C\u0001\u0000\u0000�\u0002\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00000\u0006\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[�Wg��\u0000\u0000\u0000a\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0007\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\b\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0018ku[�$�Ӛ\u0001\u0000\u0000{\u0004\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\t\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000�\u000b\u0000\u0000\u0000\u0000"}],"_postman_id":"e8346843-97e8-419a-aa9f-a54d812290b7"}],"id":"504053ec-9e6d-4fd5-9636-cb1356a9dce2","_postman_id":"504053ec-9e6d-4fd5-9636-cb1356a9dce2","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Contact","item":[{"name":"Get Contact By Uuid","id":"3bffee7f-6968-4c7f-b8af-9ae0dd89ce8f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/contact/uuid/:contact_uuid","description":"<h1 id=\"get-contact-by-uuid\">Get Contact By UUID</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves detailed contact information for a specific contact using their unique identifier (UUID). The response includes an extended data model with comprehensive contact details, related user relationships, workplaces, groups, custom fields, and specializations.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/contact/uuid/{{contact_uuid}}</code></p>\n<h3 id=\"path-parameters\">Path 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>contact_uuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"url-variables\">URL Variables</h3>\n<ul>\n<li><p><code>{{tenant_domain}}</code> - Your Highp tenant domain (e.g., <code>yourtenant.highp.me</code>)</p>\n</li>\n<li><p><code>{{contact_uuid}}</code> - The UUID of the contact you want to retrieve</p>\n</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your JWT token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n\n</code></pre><h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\nconst tenantDomain = 'yourtenant.highp.me';\nconst contactUuid = '4bfa126a-93a0-4666-b75c-0802b6dbe060';\nconst token = 'your_jwt_token_here';\nconst url = `https://${tenantDomain}/api/core/contact/uuid/${contactUuid}`;\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Contact retrieved successfully:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching contact:', error);\n  });\n\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a JSON object containing comprehensive contact information.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": number,\n  \"uuid\": string,\n  \"email\": string,\n  \"firstName\": string,\n  \"lastName\": string,\n  \"externalId\": string | null,\n  \"businessTitle\": string,\n  \"phone\": string,\n  \"gender\": boolean,\n  \"pwz\": number,\n  \"academicRank\": string | null,\n  \"unsubscribedTo\": string,\n  \"updatedAt\": string,\n  \"relationUpdatedAt\": string | null,\n  \"avatar\": string,\n  \"nickname\": string,\n  \"incorrectAllChannels\": boolean,\n  \"allowed\": boolean,\n  \"notAllowedReasons\": string | null,\n  \"sentCount\": number | null,\n  \"userRelations\": [\n    {\n      \"uuid\": string,\n      \"personalRelation\": string | null,\n      \"representativeId\": number,\n      \"representativeUuid\": string,\n      \"representativeFirstName\": string,\n      \"representativeLastName\": string,\n      \"representativeEmail\": string,\n      \"relationUpdatedAt\": string\n    }\n  ],\n  \"additionalFields\": [\n    {\n      \"fieldName\": string,\n      \"type\": string,\n      \"valueList\": string,\n      \"uuid\": string\n    }\n  ],\n  \"groups\": [\n    {\n      \"uuid\": string,\n      \"name\": string\n    }\n  ],\n  \"workplaces\": [\n    {\n      \"uuid\": string,\n      \"lastUpdated\": string | null,\n      \"city\": string,\n      \"street\": string,\n      \"ward\": string | null,\n      \"postalCode\": string,\n      \"name\": string\n    }\n  ],\n  \"specialisations\": []\n}\n\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>number</td>\n<td>Internal contact ID</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the contact</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Contact's email address</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>Contact's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>Contact's last name</td>\n</tr>\n<tr>\n<td><code>externalId</code></td>\n<td>string/null</td>\n<td>External system identifier (if applicable)</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string</td>\n<td>Contact's job title or position</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>string</td>\n<td>Contact's phone number</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>boolean</td>\n<td>Gender indicator</td>\n</tr>\n<tr>\n<td><code>pwz</code></td>\n<td>number</td>\n<td>Professional license number</td>\n</tr>\n<tr>\n<td><code>academicRank</code></td>\n<td>string/null</td>\n<td>Academic title or rank</td>\n</tr>\n<tr>\n<td><code>unsubscribedTo</code></td>\n<td>string</td>\n<td>Unsubscription status</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string</td>\n<td>Timestamp of last update (Unix timestamp)</td>\n</tr>\n<tr>\n<td><code>relationUpdatedAt</code></td>\n<td>string/null</td>\n<td>Timestamp of last relationship update</td>\n</tr>\n<tr>\n<td><code>avatar</code></td>\n<td>string</td>\n<td>Avatar image filename</td>\n</tr>\n<tr>\n<td><code>nickname</code></td>\n<td>string</td>\n<td>Contact's nickname</td>\n</tr>\n<tr>\n<td><code>incorrectAllChannels</code></td>\n<td>boolean</td>\n<td>Flag indicating if all communication channels are incorrect</td>\n</tr>\n<tr>\n<td><code>allowed</code></td>\n<td>boolean</td>\n<td>Whether contact is allowed for communications</td>\n</tr>\n<tr>\n<td><code>notAllowedReasons</code></td>\n<td>string/null</td>\n<td>Reasons if contact is not allowed</td>\n</tr>\n<tr>\n<td><code>sentCount</code></td>\n<td>number/null</td>\n<td>Number of messages sent to this contact</td>\n</tr>\n<tr>\n<td><code>userRelations</code></td>\n<td>array</td>\n<td>Array of relationships with representatives</td>\n</tr>\n<tr>\n<td><code>additionalFields</code></td>\n<td>array</td>\n<td>Custom fields and their values</td>\n</tr>\n<tr>\n<td><code>groups</code></td>\n<td>array</td>\n<td>Groups the contact belongs to</td>\n</tr>\n<tr>\n<td><code>workplaces</code></td>\n<td>array</td>\n<td>Contact's workplace information</td>\n</tr>\n<tr>\n<td><code>specialisations</code></td>\n<td>array</td>\n<td>Contact's specializations</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 28000,\n  \"uuid\": \"4bfa126a-93a0-4666-b75c-0802b6dbe060\",\n  \"email\": \"kontakt1@niepodam.pl\",\n  \"firstName\": \"Kontakt 111\",\n  \"lastName\": \"1 t111\",\n  \"externalId\": null,\n  \"businessTitle\": \"ghjkkk\",\n  \"phone\": \"+41797259811\",\n  \"gender\": true,\n  \"pwz\": 96,\n  \"academicRank\": null,\n  \"unsubscribedTo\": \"null\",\n  \"updatedAt\": \"1756665513752\",\n  \"relationUpdatedAt\": null,\n  \"avatar\": \"43f6726c-9ef0-4f52-80c3-3077d8f4a10b.jpg\",\n  \"nickname\": \"woj5\",\n  \"incorrectAllChannels\": false,\n  \"allowed\": true,\n  \"notAllowedReasons\": null,\n  \"sentCount\": null,\n  \"userRelations\": [\n    {\n      \"uuid\": \"7ac03e2e-88fe-45fc-b0c5-876e118c413d\",\n      \"personalRelation\": null,\n      \"representativeId\": 58387,\n      \"representativeUuid\": \"e52834a6-19a3-4177-a130-9d6720a3b8bb\",\n      \"representativeFirstName\": \"TestowyREP\",\n      \"representativeLastName\": \"KontoWB\",\n      \"representativeEmail\": \"testowyrep@niepodam.pl\",\n      \"relationUpdatedAt\": \"1744724438\"\n    }\n  ],\n  \"additionalFields\": [\n    {\n      \"fieldName\": \"channel-email\",\n      \"type\": \"checkbox\",\n      \"valueList\": \"true\",\n      \"uuid\": \"ae415edd-8748-44a1-9987-a7a4a987b1cb\"\n    },\n    {\n      \"fieldName\": \"profession\",\n      \"type\": \"text\",\n      \"valueList\": \"exampleValue\",\n      \"uuid\": \"cff12d18-e6e1-424d-b64b-c3a12828a723\"\n    }\n  ],\n  \"groups\": [\n    {\n      \"uuid\": \"d7945342-73d3-45cf-a64f-ad86ce630579\",\n      \"name\": \"namPOSTMAN123e\"\n    }\n  ],\n  \"workplaces\": [\n    {\n      \"uuid\": \"41316c51-b554-4a20-af39-42612c63117b\",\n      \"lastUpdated\": null,\n      \"city\": \"Warszawa\",\n      \"street\": \"Czerwonych Beretów\",\n      \"ward\": \"10\",\n      \"postalCode\": \"22-222\",\n      \"name\": \"Moja Apteka\"\n    }\n  ],\n  \"specialisations\": []\n}\n\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to access this contact</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Contact with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><p>Retrieve complete contact profile information</p>\n</li>\n<li><p>Access contact's workplace and group associations</p>\n</li>\n<li><p>View custom field values for a specific contact</p>\n</li>\n<li><p>Check contact's communication preferences and consent status</p>\n</li>\n<li><p>Retrieve representative relationships for the contact</p>\n</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The <code>userRelations</code> array contains information about representatives associated with this contact</p>\n</li>\n<li><p>The <code>additionalFields</code> array includes custom fields configured for your tenant</p>\n</li>\n<li><p>The <code>workplaces</code> array may contain multiple workplace entries if the contact is associated with multiple locations</p>\n</li>\n<li><p>Timestamps are provided in Unix timestamp format (milliseconds since epoch)</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","contact","uuid",":contact_uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{contact_uuid}}","key":"contact_uuid"}]}},"response":[{"id":"d7d21c24-3933-4a29-ab42-24de256ed1ec","name":"Get Contact By Uuid","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/contact/uuid/:contact_uuid","host":["testsandbox.highp.me"],"path":["api","core","contact","uuid",":contact_uuid"],"variable":[{"key":"contact_uuid","value":"{{contact_uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:42:22 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:42:21 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-8709ed5858fbe4137a82d35dbcc745ae' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-8709ed5858fbe4137a82d35dbcc745ae' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 28000,\n    \"uuid\": \"4bfa126a-93a0-4666-b75c-0802b6dbe060\",\n    \"email\": \"kontakt1@niepodam.pl\",\n    \"firstName\": \"Kontakt 111\",\n    \"lastName\": \"1 t111\",\n    \"externalId\": null,\n    \"businessTitle\": \"ghjkkk\",\n    \"phone\": \"+41797259811\",\n    \"gender\": true,\n    \"pwz\": 96,\n    \"academicRank\": null,\n    \"unsubscribedTo\": \"null\",\n    \"updatedAt\": \"1756665513752\",\n    \"relationUpdatedAt\": null,\n    \"avatar\": \"43f6726c-9ef0-4f52-80c3-3077d8f4a10b.jpg\",\n    \"nickname\": \"woj5\",\n    \"incorrectAllChannels\": false,\n    \"allowed\": true,\n    \"notAllowedReasons\": null,\n    \"sentCount\": null,\n    \"userRelations\": [\n        {\n            \"uuid\": \"7ac03e2e-88fe-45fc-b0c5-876e118c413d\",\n            \"personalRelation\": null,\n            \"representativeId\": 58387,\n            \"representativeUuid\": \"e52834a6-19a3-4177-a130-9d6720a3b8bb\",\n            \"representativeFirstName\": \"TestowyREP\",\n            \"representativeLastName\": \"KontoWB\",\n            \"representativeEmail\": \"testowyrep@niepodam.pl\",\n            \"relationUpdatedAt\": \"1744724438\"\n        },\n        {\n            \"uuid\": \"12b5925e-05e8-4e8a-a332-94e6ddd188bf\",\n            \"personalRelation\": null,\n            \"representativeId\": 39659,\n            \"representativeUuid\": \"c5086741-df9e-4517-acfc-7bf5d2578fd8\",\n            \"representativeFirstName\": \"Wojo\",\n            \"representativeLastName\": \"Bojo\",\n            \"representativeEmail\": \"wojobojo988@niepodam.pl\",\n            \"relationUpdatedAt\": \"1746182266\"\n        },\n        {\n            \"uuid\": \"e1e6063b-902d-4db7-92a8-1967c71df7ba\",\n            \"personalRelation\": \"professional\",\n            \"representativeId\": 39671,\n            \"representativeUuid\": \"5116566d-3f6b-496b-ae3f-ba1083768242\",\n            \"representativeFirstName\": \"A\",\n            \"representativeLastName\": \"B\",\n            \"representativeEmail\": \"nowytest988+2@gmail.com\",\n            \"relationUpdatedAt\": \"1702646465\"\n        },\n        {\n            \"uuid\": \"b86b1650-e31f-4a31-a2f3-3cf90a1333ab\",\n            \"personalRelation\": null,\n            \"representativeId\": 136,\n            \"representativeUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\",\n            \"representativeFirstName\": \"Wojciecheee\",\n            \"representativeLastName\": \"Bojarski\",\n            \"representativeEmail\": \"nowytest988@gmail.com\",\n            \"relationUpdatedAt\": \"1708344811\"\n        },\n        {\n            \"uuid\": \"66e2b8d3-c7c0-4d5c-a78b-efd4786afcb9\",\n            \"personalRelation\": \"professional\",\n            \"representativeId\": 39722,\n            \"representativeUuid\": \"95028c5f-5b6f-470d-9530-63ea64807264\",\n            \"representativeFirstName\": \"Apple\",\n            \"representativeLastName\": \"Test\",\n            \"representativeEmail\": \"apple.test@connectmedica.com\",\n            \"relationUpdatedAt\": \"1708351072\"\n        }\n    ],\n    \"additionalFields\": [\n        {\n            \"fieldName\": \"channel-email\",\n            \"type\": \"checkbox\",\n            \"valueList\": \"true\",\n            \"uuid\": \"ae415edd-8748-44a1-9987-a7a4a987b1cb\"\n        },\n        {\n            \"fieldName\": \"channel-sms\",\n            \"type\": \"checkbox\",\n            \"valueList\": \"true\",\n            \"uuid\": \"70075b6c-78ec-4985-a2a4-c59c13be6bd4\"\n        },\n        {\n            \"fieldName\": \"zgodawymagana1\",\n            \"type\": \"checkbox\",\n            \"valueList\": \"true\",\n            \"uuid\": \"e113e98b-df34-4151-a361-13051cfd51d1\"\n        },\n        {\n            \"fieldName\": \"zgoda2\",\n            \"type\": \"checkbox\",\n            \"valueList\": \"true\",\n            \"uuid\": \"c370ad76-38ff-4136-a2b3-b66648674048\"\n        },\n        {\n            \"fieldName\": \"CONSENT3\",\n            \"type\": \"checkbox\",\n            \"valueList\": \"true\",\n            \"uuid\": \"0bf0cb16-59e6-4684-b31b-5b4207992182\"\n        },\n        {\n            \"fieldName\": \"profession\",\n            \"type\": \"text\",\n            \"valueList\": \"exampleValue\",\n            \"uuid\": \"cff12d18-e6e1-424d-b64b-c3a12828a723\"\n        },\n        {\n            \"fieldName\": \"specialization\",\n            \"type\": \"text\",\n            \"valueList\": \"Kardiolog\",\n            \"uuid\": \"35c63a37-3b9b-4733-8798-c4e8dfc9e7b4\"\n        },\n        {\n            \"fieldName\": \"termsofuse\",\n            \"type\": \"checkbox\",\n            \"valueList\": \"true\",\n            \"uuid\": \"6d19f965-9566-4763-a56e-2e60d12a63f4\"\n        },\n        {\n            \"fieldName\": \"cookieStatus\",\n            \"type\": \"checkbox\",\n            \"valueList\": \"true\",\n            \"uuid\": \"6271d15c-6e24-4684-b932-d4fd08fbdb34\"\n        }\n    ],\n    \"groups\": [\n        {\n            \"uuid\": \"d7945342-73d3-45cf-a64f-ad86ce630579\",\n            \"name\": \"namPOSTMAN123e\"\n        }\n    ],\n    \"workplaces\": [\n        {\n            \"uuid\": \"41316c51-b554-4a20-af39-42612c63117b\",\n            \"lastUpdated\": null,\n            \"city\": \"Warszawa\",\n            \"street\": \"Czerwonych Beretów\",\n            \"ward\": \"10\",\n            \"postalCode\": \"22-222\",\n            \"name\": \"Moja Apteka\"\n        },\n        {\n            \"uuid\": \"3edbb96b-7bad-44f6-9391-cd5ef4cca761\",\n            \"lastUpdated\": null,\n            \"city\": \"Warszawa\",\n            \"street\": \"Ulica 2\",\n            \"ward\": null,\n            \"postalCode\": \"70-099\",\n            \"name\": \"WB988\"\n        }\n    ],\n    \"specialisations\": []\n}"}],"_postman_id":"3bffee7f-6968-4c7f-b8af-9ae0dd89ce8f"},{"name":"Get Contact By Campaign and Rep","id":"36514209-2eeb-4537-88e6-45a8038b3f19","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/contact/campaign-receivers?campaignUuid={{campaign-uuid}}&repUuid={{repUuid}}&search=string&page=0&size=20","description":"<h1 id=\"get-contact-by-campaign-and-rep\">Get Contact By Campaign and Rep</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Retrieves a paginated list of contacts (campaign receivers) associated with a specific campaign and sales representative. This endpoint returns detailed contact information including personal details, communication preferences, and relationship metadata.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication. The token should be provided in the <code>Authorization</code> header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>Make sure the <code>token</code> variable is set in your environment or collection variables.</p>\n<h2 id=\"required-parameters\">Required Parameters</h2>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the campaign to retrieve contacts for</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the sales representative</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search term to filter contacts by name, email, or other fields (leave empty to retrieve all)</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Page number for pagination (zero-based index). Default: <code>0</code></td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Number of contacts per page. Default: <code>20</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"additional-optional-parameters\">Additional Optional Parameters</h3>\n<p>Based on usage patterns across Postman, you can also use:</p>\n<ul>\n<li><code>sortBy</code> - Field to sort by (e.g., <code>updatedAt</code>)</li>\n<li><code>sortDirection</code> - Sort direction: <code>asc</code> or <code>desc</code></li>\n</ul>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.com';\nconst campaignUuid = 'your-campaign-uuid';\nconst repUuid = 'your-rep-uuid';\nconst token = 'your-bearer-token';\n\nconst url = `https://${tenantDomain}/api/core/contact/campaign-receivers?campaignUuid=${campaignUuid}&amp;repUuid=${repUuid}&amp;search=&amp;page=0&amp;size=20`;\n\nconst options = {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Accept': 'application/json'\n  }\n};\n\nfetch(url, options)\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Total contacts:', data.content.length);\n    console.log('Contacts:', data.content);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching contacts:', error);\n  });\n</code></pre>\n<h2 id=\"response-schema\">Response Schema</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": \"integer - Internal contact ID\",\n      \"uuid\": \"string - Unique identifier for the contact\",\n      \"email\": \"string - Contact's email address\",\n      \"firstName\": \"string - Contact's first name\",\n      \"lastName\": \"string - Contact's last name\",\n      \"externalId\": \"string|null - External system identifier\",\n      \"businessTitle\": \"string|null - Contact's job title\",\n      \"phone\": \"string - Contact's phone number\",\n      \"gender\": \"boolean|null - Gender (true/false)\",\n      \"pwz\": \"integer|null - Professional license number\",\n      \"academicRank\": \"string|null - Academic title or rank\",\n      \"unsubscribedTo\": \"string|null - Unsubscription status\",\n      \"updatedAt\": \"string - Timestamp of last update (Unix timestamp in milliseconds)\",\n      \"relationUpdatedAt\": \"string - Timestamp when relationship was last updated (Unix timestamp in seconds)\",\n      \"avatar\": \"string|null - URL to contact's avatar image\",\n      \"nickname\": \"string|null - Contact's nickname\",\n      \"incorrectAllChannels\": \"boolean - Flag indicating if all communication channels are incorrect\",\n      \"allowed\": \"boolean - Whether contact is allowed to be contacted\",\n      \"notAllowedReasons\": \"array - List of reasons if contact cannot be contacted\",\n      \"sentCount\": \"integer - Number of messages sent to this contact\",\n      \"userRelations\": \"object|null - Relationship data with users\",\n      \"additionalFields\": \"object|null - Custom fields\",\n      \"groups\": \"array|null - Contact groups\",\n      \"workplaces\": \"array|null - Contact's workplace information\",\n      \"specialisations\": \"array|null - Contact's specializations\"\n    }\n  ]\n}\n</code></pre>\n<h3 id=\"example-response-body\">Example Response Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": 28000,\n      \"uuid\": \"4bfa126a-93a0-4666-b75c-0802b6dbe060\",\n      \"email\": \"kontakt1@niepodam.pl\",\n      \"firstName\": \"Kontakt 111\",\n      \"lastName\": \"1 t111\",\n      \"externalId\": null,\n      \"businessTitle\": \"ghjkkk\",\n      \"phone\": \"+41797259811\",\n      \"gender\": true,\n      \"pwz\": 96,\n      \"academicRank\": null,\n      \"unsubscribedTo\": null,\n      \"updatedAt\": \"1756665513752\",\n      \"relationUpdatedAt\": \"1708344811\",\n      \"avatar\": null,\n      \"nickname\": \"woj5\",\n      \"incorrectAllChannels\": false,\n      \"allowed\": true,\n      \"notAllowedReasons\": [],\n      \"sentCount\": 0,\n      \"userRelations\": null,\n      \"additionalFields\": null,\n      \"groups\": null,\n      \"workplaces\": null,\n      \"specialisations\": null\n    },\n    {\n      \"id\": 40365,\n      \"uuid\": \"a4955b9f-221d-4767-9ad6-05e696c1b775\",\n      \"email\": \"gg2@niepodam.pl\",\n      \"firstName\": \"1 ed6\",\n      \"lastName\": \"2 2ed\",\n      \"externalId\": null,\n      \"businessTitle\": \"2fg\",\n      \"phone\": \"+48797259811\",\n      \"gender\": null,\n      \"pwz\": null,\n      \"academicRank\": null,\n      \"unsubscribedTo\": null,\n      \"updatedAt\": \"1761205258262\",\n      \"relationUpdatedAt\": \"1727101871\",\n      \"avatar\": null,\n      \"nickname\": null,\n      \"incorrectAllChannels\": false,\n      \"allowed\": true,\n      \"notAllowedReasons\": [],\n      \"sentCount\": 0,\n      \"userRelations\": null,\n      \"additionalFields\": null,\n      \"groups\": null,\n      \"workplaces\": null,\n      \"specialisations\": null\n    }\n  ]\n}\n</code></pre>\n<h2 id=\"response-fields-description\">Response Fields Description</h2>\n<h3 id=\"contact-object-fields\">Contact Object Fields</h3>\n<ul>\n<li><strong>id</strong> - Internal database identifier for the contact</li>\n<li><strong>uuid</strong> - Globally unique identifier (use this for API operations)</li>\n<li><strong>email</strong> - Primary email address for communication</li>\n<li><strong>firstName</strong> / <strong>lastName</strong> - Contact's name</li>\n<li><strong>businessTitle</strong> - Job title or position</li>\n<li><strong>phone</strong> - Contact phone number (international format recommended)</li>\n<li><strong>gender</strong> - Boolean value representing gender</li>\n<li><strong>pwz</strong> - Professional license number (specific to certain industries)</li>\n<li><strong>updatedAt</strong> - Last modification timestamp in milliseconds</li>\n<li><strong>relationUpdatedAt</strong> - When the campaign-rep-contact relationship was last updated (in seconds)</li>\n<li><strong>allowed</strong> - Whether the contact can be contacted (respects consent/GDPR)</li>\n<li><strong>notAllowedReasons</strong> - Array of reasons if contact cannot be reached</li>\n<li><strong>sentCount</strong> - Number of campaign messages sent to this contact</li>\n<li><strong>incorrectAllChannels</strong> - Flag indicating if contact information is invalid</li>\n</ul>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ol>\n<li><strong>Campaign Management</strong> - View all contacts assigned to a specific campaign and representative</li>\n<li><strong>Contact Search</strong> - Filter contacts using the <code>search</code> parameter</li>\n<li><strong>Pagination</strong> - Navigate through large contact lists using <code>page</code> and <code>size</code> parameters</li>\n<li><strong>Compliance Checking</strong> - Review <code>allowed</code> status and <code>notAllowedReasons</code> before sending communications</li>\n<li><strong>Performance Tracking</strong> - Monitor <code>sentCount</code> to track campaign engagement</li>\n</ol>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The response is paginated. Use the <code>page</code> and <code>size</code> parameters to navigate through results</li>\n<li>Timestamps are in Unix format (milliseconds for <code>updatedAt</code>, seconds for <code>relationUpdatedAt</code>)</li>\n<li>The <code>allowed</code> field should be checked before attempting to contact any individual</li>\n<li>Phone numbers may be in various international formats</li>\n<li>Some fields may be <code>null</code> if not provided or applicable</li>\n</ul>\n","urlObject":{"path":["api","core","contact","campaign-receivers"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"repUuid","value":"{{repUuid}}"},{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"}],"variable":[]}},"response":[{"id":"93ab6305-b16a-4cea-8294-aac40cff5da7","name":"Get Contact By Campaign and Rep","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/contact/campaign-receivers?campaignUuid={{campaign-uuid}}&repUuid={{repUuid}}&search=string&page=0&size=20","host":["testsandbox.highp.me"],"path":["api","core","contact","campaign-receivers"],"query":[{"description":"required","key":"campaignUuid","value":"{{campaign-uuid}}"},{"description":"required","key":"repUuid","value":"{{repUuid}}"},{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:47:52 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:47:51 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-94b90029283a22749ec3efc8ed3b535a' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-94b90029283a22749ec3efc8ed3b535a' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 28000,\n            \"uuid\": \"4bfa126a-93a0-4666-b75c-0802b6dbe060\",\n            \"email\": \"kontakt1@niepodam.pl\",\n            \"firstName\": \"Kontakt 111\",\n            \"lastName\": \"1 t111\",\n            \"externalId\": null,\n            \"businessTitle\": \"ghjkkk\",\n            \"phone\": \"+41797259811\",\n            \"gender\": true,\n            \"pwz\": 96,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1756665513752\",\n            \"relationUpdatedAt\": \"1708344811\",\n            \"avatar\": null,\n            \"nickname\": \"woj5\",\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 40365,\n            \"uuid\": \"a4955b9f-221d-4767-9ad6-05e696c1b775\",\n            \"email\": \"gg2@niepodam.pl\",\n            \"firstName\": \"1 ed6\",\n            \"lastName\": \"2 2ed\",\n            \"externalId\": null,\n            \"businessTitle\": \"2fg\",\n            \"phone\": \"+48797259811\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1761205258262\",\n            \"relationUpdatedAt\": \"1727101871\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 40575,\n            \"uuid\": \"a5423a08-79b6-4acc-b894-e054f4f10722\",\n            \"email\": \"gfjjj@niepodam.pl\",\n            \"firstName\": \"wsssdsds\",\n            \"lastName\": \"23ff3\",\n            \"externalId\": null,\n            \"businessTitle\": \"fffddd222\",\n            \"phone\": \"\",\n            \"gender\": true,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1735809621361\",\n            \"relationUpdatedAt\": \"1735809610\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 40366,\n            \"uuid\": \"e2496776-5d9b-4f33-8ffe-e360d2f63ae3\",\n            \"email\": \"88@niepodam.pl\",\n            \"firstName\": \"4wewq\",\n            \"lastName\": \"5asasad\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"+48990889622\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1732006569985\",\n            \"relationUpdatedAt\": \"1727102065\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 23605,\n            \"uuid\": \"2c2fc5f0-77f2-4806-a5e8-24ec2c2900ae\",\n            \"email\": \"magdalena.aaberg@yopmail.com\",\n            \"firstName\": \"Magdalena\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351083\",\n            \"relationUpdatedAt\": \"1699909579\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 24763,\n            \"uuid\": \"4c60a944-a60d-4694-876d-9b9503971763\",\n            \"email\": \"deane.aaberg@yopmail.com\",\n            \"firstName\": \"Deane\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351093\",\n            \"relationUpdatedAt\": \"1699909495\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 25406,\n            \"uuid\": \"5904b4b6-0c43-4f3c-9029-3a7351112533\",\n            \"email\": \"gretal.aaberg@yopmail.com\",\n            \"firstName\": \"Gretal\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351098\",\n            \"relationUpdatedAt\": \"1699909449\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 25668,\n            \"uuid\": \"843ba8a2-08ba-4f77-8d47-8765aa3dd1fa\",\n            \"email\": \"sherrie.aaberg@yopmail.com\",\n            \"firstName\": \"Sherrie\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351103\",\n            \"relationUpdatedAt\": \"1699909430\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 25780,\n            \"uuid\": \"8253b3c6-6f1b-4eab-a53a-75a08678d572\",\n            \"email\": \"farrah.aaberg@yopmail.com\",\n            \"firstName\": \"Farrah\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351095\",\n            \"relationUpdatedAt\": \"1699909422\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 32218,\n            \"uuid\": \"b6f3d040-88f0-471e-9e1c-ee39cf2788e1\",\n            \"email\": \"farrah.aaberg@yopmail.coms\",\n            \"firstName\": \"Farrah\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351101\",\n            \"relationUpdatedAt\": \"1699910200\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 32330,\n            \"uuid\": \"41bebe17-22fa-40f8-80ac-6f28269b9112\",\n            \"email\": \"sherrie.aaberg@yopmail.coms\",\n            \"firstName\": \"Sherrie\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351088\",\n            \"relationUpdatedAt\": \"1699910208\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 32592,\n            \"uuid\": \"1ed7f7f1-562b-43c7-a91d-22b9f8ba6977\",\n            \"email\": \"gretal.aaberg@yopmail.coms\",\n            \"firstName\": \"Gretal\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351099\",\n            \"relationUpdatedAt\": \"1699910228\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 33235,\n            \"uuid\": \"f0c84e99-56c6-4925-85bf-9c6f383a21c1\",\n            \"email\": \"deane.aaberg@yopmail.coms\",\n            \"firstName\": \"Deane\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351079\",\n            \"relationUpdatedAt\": \"1699910278\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 33670,\n            \"uuid\": \"4fb46aee-2fb6-43b7-8b93-29982fbee717\",\n            \"email\": \"rori.aaberg@yopmail.coms\",\n            \"firstName\": \"Rori\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351077\",\n            \"relationUpdatedAt\": \"1699910312\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 34393,\n            \"uuid\": \"eb2891ee-80a0-4889-ab0a-d1bcad71e717\",\n            \"email\": \"magdalena.aaberg@yopmail.coms\",\n            \"firstName\": \"Magdalena\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351101\",\n            \"relationUpdatedAt\": \"1699910369\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 35075,\n            \"uuid\": \"495d6871-0c38-4131-95d5-adfc2cac1b8e\",\n            \"email\": \"dania.aaberg@yopmail.coms\",\n            \"firstName\": \"Dania\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351090\",\n            \"relationUpdatedAt\": \"1699910436\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 38545,\n            \"uuid\": \"64c2d69b-cb73-4335-9130-7f7b3e2505d1\",\n            \"email\": \"etta.aaberg@yopmail.coms\",\n            \"firstName\": \"Etta\",\n            \"lastName\": \"Aaberg\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351085\",\n            \"relationUpdatedAt\": \"1699910947\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 21877,\n            \"uuid\": \"579ae5bd-3786-4b74-a604-069d698dc155\",\n            \"email\": \"ariela.aaberg@yopmail.com\",\n            \"firstName\": \"Ariela !\",\n            \"lastName\": \"Aaberg ?\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351106\",\n            \"relationUpdatedAt\": \"1699909712\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 36121,\n            \"uuid\": \"f0ea8898-69a8-442f-8d36-a4e5b42df3ca\",\n            \"email\": \"ariela.aaberg@yopmail.coms\",\n            \"firstName\": \"Ariela ed\",\n            \"lastName\": \"Aaberg ed\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351106\",\n            \"relationUpdatedAt\": \"1699910604\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 19244,\n            \"uuid\": \"0d33f0e7-2a98-4272-8146-6d88ee1e8154\",\n            \"email\": \"rhea.abbot@yopmail.com\",\n            \"firstName\": \"Rhea\",\n            \"lastName\": \"Abbot\",\n            \"externalId\": null,\n            \"businessTitle\": null,\n            \"phone\": \"790321644\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1708351111\",\n            \"relationUpdatedAt\": \"1699909905\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": true,\n            \"notAllowedReasons\": [],\n            \"sentCount\": 0,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 67089,\n    \"totalPages\": 3355,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"36514209-2eeb-4537-88e6-45a8038b3f19"},{"name":"Get Contact By Rep","id":"970ab1e9-4ccd-4898-a47b-1b1faac25bb9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/contact/for-rep?repUuid={{repUuid}}&search=string&searchWorkplace=string&searchGroup=string&searchSpecialisation=string&page=0&size=20&sortBy=lastName&sortDirection=desc","description":"<h1 id=\"get-contact-for-representative\">Get Contact for Representative</h1>\n<p>This endpoint retrieves a paginated list of contacts associated with a specific representative. It supports filtering by various criteria including workplace, group, and specialization, as well as text search and sorting capabilities.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/contact/for-rep\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token Authentication</strong>. Include your authentication token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h3 id=\"required-variables\">Required Variables:</h3>\n<ul>\n<li><code>tenant_domain</code> - Your tenant's domain (e.g., <code>example.highp.me</code>)</li>\n<li><code>token</code> - Your authentication bearer token</li>\n<li><code>repUuid</code> - The UUID of the representative</li>\n</ul>\n<h2 id=\"request-parameters\">Request Parameters</h2>\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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>repUuid</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>-</td>\n<td>The UUID of the representative whose contacts you want to retrieve</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>General search query to filter contacts by name, email, or other text fields</td>\n</tr>\n<tr>\n<td><code>searchWorkplace</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Filter contacts by workplace name or identifier</td>\n</tr>\n<tr>\n<td><code>searchGroup</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Filter contacts by group affiliation</td>\n</tr>\n<tr>\n<td><code>searchSpecialisation</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Filter contacts by medical specialization or professional category</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>Page number for pagination (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>Number of contacts to return per page (max: 100)</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>lastName</td>\n<td>Field to sort results by (e.g., <code>lastName</code>, <code>firstName</code>, <code>email</code>, <code>updatedAt</code>)</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>desc</td>\n<td>Sort direction: <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\n// Configuration\nconst tenantDomain = 'your-tenant.highp.me';\nconst bearerToken = 'your_bearer_token_here';\nconst repUuid = 'representative-uuid-here';\n\n// Build query parameters\nconst params = new URLSearchParams({\n  repUuid: repUuid,\n  search: '',\n  page: '0',\n  size: '20',\n  sortBy: 'lastName',\n  sortDirection: 'desc'\n});\n\n// Optional: Add additional filters if needed\n// params.append('searchWorkplace', 'Hospital Name');\n// params.append('searchGroup', 'Group Name');\n// params.append('searchSpecialisation', 'Cardiology');\n\nconst url = `https://${tenantDomain}/api/core/contact/for-rep?${params.toString()}`;\n\n// Make the request\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${bearerToken}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Total contacts:', data.totalElements);\n    console.log('Current page:', data.number);\n    console.log('Contacts:', data.content);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching contacts:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": 40272,\n      \"uuid\": \"ac4bc660-0bda-443f-a740-66eaadeeca8a\",\n      \"email\": \"contact@example.com\",\n      \"firstName\": \"John\",\n      \"lastName\": \"Doe\",\n      \"externalId\": \"EXT-12345\",\n      \"businessTitle\": \"Medical Director\",\n      \"phone\": \"+48501760490\",\n      \"gender\": \"MALE\",\n      \"pwz\": \"1234567\",\n      \"academicRank\": \"PhD\",\n      \"unsubscribedTo\": null,\n      \"updatedAt\": \"1732024021885\",\n      \"relationUpdatedAt\": \"1745923511\",\n      \"avatar\": \"https://example.com/avatar.jpg\",\n      \"nickname\": \"Dr. John\",\n      \"incorrectAllChannels\": false,\n      \"allowed\": true,\n      \"notAllowedReasons\": null,\n      \"sentCount\": 15,\n      \"userRelations\": [],\n      \"additionalFields\": {},\n      \"groups\": [],\n      \"workplaces\": [],\n      \"specialisations\": []\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"sorted\": true,\n      \"unsorted\": false,\n      \"empty\": false\n    },\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"offset\": 0,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalPages\": 5,\n  \"totalElements\": 95,\n  \"last\": false,\n  \"first\": true,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"sorted\": true,\n    \"unsorted\": false,\n    \"empty\": false\n  },\n  \"numberOfElements\": 20,\n  \"empty\": false\n}\n</code></pre>\n<h3 id=\"contact-object-schema\">Contact Object Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the contact</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the contact</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Email address of the contact</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>Contact's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>Contact's last name</td>\n</tr>\n<tr>\n<td><code>externalId</code></td>\n<td>string</td>\n<td>External system identifier for the contact</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string</td>\n<td>Professional title or position</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>string</td>\n<td>Phone number in international format</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>string</td>\n<td>Gender (e.g., MALE, FEMALE, OTHER)</td>\n</tr>\n<tr>\n<td><code>pwz</code></td>\n<td>string</td>\n<td>Medical license number (Polish: Prawo Wykonywania Zawodu)</td>\n</tr>\n<tr>\n<td><code>academicRank</code></td>\n<td>string</td>\n<td>Academic degree or rank</td>\n</tr>\n<tr>\n<td><code>unsubscribedTo</code></td>\n<td>array</td>\n<td>List of communication channels the contact has unsubscribed from</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string</td>\n<td>Timestamp (Unix milliseconds) when contact was last updated</td>\n</tr>\n<tr>\n<td><code>relationUpdatedAt</code></td>\n<td>string</td>\n<td>Timestamp (Unix seconds) when the relationship was last updated</td>\n</tr>\n<tr>\n<td><code>avatar</code></td>\n<td>string</td>\n<td>URL to the contact's profile picture</td>\n</tr>\n<tr>\n<td><code>nickname</code></td>\n<td>string</td>\n<td>Preferred name or nickname</td>\n</tr>\n<tr>\n<td><code>incorrectAllChannels</code></td>\n<td>boolean</td>\n<td>Flag indicating if all contact channels are invalid</td>\n</tr>\n<tr>\n<td><code>allowed</code></td>\n<td>boolean</td>\n<td>Whether the contact is allowed for communication</td>\n</tr>\n<tr>\n<td><code>notAllowedReasons</code></td>\n<td>array</td>\n<td>Reasons why contact is not allowed (if applicable)</td>\n</tr>\n<tr>\n<td><code>sentCount</code></td>\n<td>integer</td>\n<td>Number of messages sent to this contact</td>\n</tr>\n<tr>\n<td><code>userRelations</code></td>\n<td>array</td>\n<td>Related user relationships</td>\n</tr>\n<tr>\n<td><code>additionalFields</code></td>\n<td>object</td>\n<td>Custom fields specific to your tenant configuration</td>\n</tr>\n<tr>\n<td><code>groups</code></td>\n<td>array</td>\n<td>Groups the contact belongs to</td>\n</tr>\n<tr>\n<td><code>workplaces</code></td>\n<td>array</td>\n<td>Associated workplaces/organizations</td>\n</tr>\n<tr>\n<td><code>specialisations</code></td>\n<td>array</td>\n<td>Medical or professional specializations</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pagination-fields\">Pagination Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>content</code></td>\n<td>array</td>\n<td>Array of contact objects for the current page</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td><code>totalElements</code></td>\n<td>integer</td>\n<td>Total number of contacts matching the query</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Current page number (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>first</code></td>\n<td>boolean</td>\n<td>Whether this is the first page</td>\n</tr>\n<tr>\n<td><code>last</code></td>\n<td>boolean</td>\n<td>Whether this is the last page</td>\n</tr>\n<tr>\n<td><code>numberOfElements</code></td>\n<td>integer</td>\n<td>Number of contacts in the current page</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Whether the result set is empty</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"usage-notes\">Usage Notes</h2>\n<h3 id=\"pagination\">Pagination</h3>\n<ul>\n<li>The API uses <strong>zero-based pagination</strong> (first page is <code>page=0</code>)</li>\n<li>Default page size is 20 contacts</li>\n<li>Use <code>totalPages</code> and <code>totalElements</code> to implement pagination controls</li>\n<li>To get all contacts, iterate through pages until <code>last: true</code></li>\n</ul>\n<h3 id=\"sorting\">Sorting</h3>\n<ul>\n<li>Default sort is by <code>lastName</code> in descending order</li>\n<li>Common sort fields: <code>lastName</code>, <code>firstName</code>, <code>email</code>, <code>updatedAt</code>, <code>relationUpdatedAt</code></li>\n<li>Combine with <code>sortDirection</code> to control order</li>\n</ul>\n<h3 id=\"filtering\">Filtering</h3>\n<ul>\n<li>Multiple search parameters can be combined for refined results</li>\n<li>Empty string values in search parameters are ignored</li>\n<li>Search is typically case-insensitive and supports partial matching</li>\n</ul>\n<h3 id=\"performance-considerations\">Performance Considerations</h3>\n<ul>\n<li>Limit page size to reasonable values (20-100) for optimal performance</li>\n<li>Use specific filters to reduce result set size</li>\n<li>Consider caching results for frequently accessed representative contacts</li>\n</ul>\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or expired token\"\n}\n</code></pre>\n<h3 id=\"403-forbidden\">403 Forbidden</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Forbidden\",\n  \"message\": \"Insufficient permissions to access this representative's contacts\"\n}\n</code></pre>\n<h3 id=\"404-not-found\">404 Not Found</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Not Found\",\n  \"message\": \"Representative not found\"\n}\n</code></pre>\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Bad Request\",\n  \"message\": \"Invalid parameter value\",\n  \"details\": \"sortDirection must be 'asc' or 'desc'\"\n}\n</code></pre>\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li><strong>Get Contact Details</strong>: <code>GET /api/core/contact/{contactUuid}</code> - Retrieve detailed information for a specific contact</li>\n<li><strong>Update Contact</strong>: <code>PUT /api/core/contact/{contactUuid}</code> - Update contact information</li>\n<li><strong>Create Contact</strong>: <code>POST /api/core/contact</code> - Create a new contact</li>\n<li><strong>Get Representative Details</strong>: <code>GET /api/core/representative/{repUuid}</code> - Get representative information</li>\n</ul>\n","urlObject":{"path":["api","core","contact","for-rep"],"host":["testsandbox.highp.me"],"query":[{"key":"repUuid","value":"{{repUuid}}"},{"key":"search","value":"string"},{"key":"searchWorkplace","value":"string"},{"key":"searchGroup","value":"string"},{"key":"searchSpecialisation","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastName"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"167d4f06-2aac-4c92-ab9b-eb9402f04d14","name":"Get Contact By Rep","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/contact/for-rep?repUuid={{repUuid}}&search=string&searchWorkplace=string&searchGroup=string&searchSpecialisation=string&page=0&size=20&sortBy=lastName&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","contact","for-rep"],"query":[{"key":"repUuid","value":"{{repUuid}}"},{"key":"search","value":"string"},{"key":"searchWorkplace","value":"string"},{"key":"searchGroup","value":"string"},{"key":"searchSpecialisation","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastName"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:48:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:48:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-7062999b16203d1f59e692fe559f24a8' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-7062999b16203d1f59e692fe559f24a8' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 40272,\n            \"uuid\": \"ac4bc660-0bda-443f-a740-66eaadeeca8a\",\n            \"email\": \"Igororgnot@gmail.com\",\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"Walt-kowalski\",\n            \"businessTitle\": null,\n            \"phone\": \"+48501760490\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1732024021885\",\n            \"relationUpdatedAt\": \"1745923511\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 40556,\n            \"uuid\": \"0bee8d44-3461-49d9-966f-6df246c84a3a\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"456789\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1733736155\",\n            \"relationUpdatedAt\": \"1733836551\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 40564,\n            \"uuid\": \"1b7e4da2-df44-48ac-b6bb-8a941bd33fdc\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"3453444\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1734350572\",\n            \"relationUpdatedAt\": \"1734350572\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 40584,\n            \"uuid\": \"3b5058c0-265a-4163-bc45-c30fa1391e8f\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"778786\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1736504098\",\n            \"relationUpdatedAt\": \"1736504098\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 41241,\n            \"uuid\": \"b4a63d53-153e-4595-b227-29b2edff1409\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"54323\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1740063399\",\n            \"relationUpdatedAt\": \"1740063399\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 41316,\n            \"uuid\": \"ef1192a6-001b-4740-9a21-f645f95f4f4c\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"456787654\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1740493644\",\n            \"relationUpdatedAt\": \"1740493644\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 43333,\n            \"uuid\": \"79250eba-8c55-4356-9850-497b87430173\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"345654\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1740749060\",\n            \"relationUpdatedAt\": \"1740749060\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58393,\n            \"uuid\": \"1893ec0b-db00-437b-8c8c-1a2c384ad5dd\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"3456744\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1744800087\",\n            \"relationUpdatedAt\": \"1744800087\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58395,\n            \"uuid\": \"9ae52080-da98-4328-8c28-946376a0f036\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"4567898\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1745922506\",\n            \"relationUpdatedAt\": \"1745922506\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58396,\n            \"uuid\": \"abd797d7-825f-45c6-b969-9a4c0cab3a78\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"6543443\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1745923520\",\n            \"relationUpdatedAt\": \"1745923520\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58397,\n            \"uuid\": \"d948f95c-2d9e-4479-908f-836cb035c074\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"11241244\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1746543794\",\n            \"relationUpdatedAt\": \"1746543794\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58399,\n            \"uuid\": \"7cbb9408-e1c7-491a-8082-473e41bcac84\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"567890\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1746698092\",\n            \"relationUpdatedAt\": \"1746698092\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58400,\n            \"uuid\": \"d5b8db00-d491-4ca8-bb07-26f11a593c67\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"3456776\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1747224579\",\n            \"relationUpdatedAt\": \"1747224579\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58401,\n            \"uuid\": \"a5515c00-514d-47e7-95ac-23c6a6f69ec1\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"9395749\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1747226568\",\n            \"relationUpdatedAt\": \"1747226568\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58402,\n            \"uuid\": \"217af70b-ff10-4d05-941e-2baf1884b12d\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"233322211\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1747229988\",\n            \"relationUpdatedAt\": \"1747229988\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58403,\n            \"uuid\": \"dc60e932-397b-4a69-8289-da2c5fd8f564\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"4567652111\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1747233612\",\n            \"relationUpdatedAt\": \"1747233612\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58404,\n            \"uuid\": \"5c125fc3-b53d-4c7c-b7dc-cf522fdef5e3\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"987654\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1747305549\",\n            \"relationUpdatedAt\": \"1747305549\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58417,\n            \"uuid\": \"926846b3-8574-4f23-b4d9-a06b5817d9d5\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"353463544\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1749731179\",\n            \"relationUpdatedAt\": \"1749731179\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58418,\n            \"uuid\": \"e0eb9a6d-5372-4cb4-8178-b5da73ed6306\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"12\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1749732156\",\n            \"relationUpdatedAt\": \"1749732156\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 58419,\n            \"uuid\": \"719133df-d8b2-40bb-a1c7-6bd7b05476a1\",\n            \"email\": null,\n            \"firstName\": null,\n            \"lastName\": null,\n            \"externalId\": \"7575655\",\n            \"businessTitle\": null,\n            \"phone\": null,\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": null,\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1749804529\",\n            \"relationUpdatedAt\": \"1749804529\",\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": false,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": null,\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 67089,\n    \"totalPages\": 3355,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"970ab1e9-4ccd-4898-a47b-1b1faac25bb9"},{"name":"Get All","id":"1e75595f-e8bc-41a8-8857-eea800df81a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/contact/all?page=0&size=200&sortBy=lastName&sortDirection=asc&isPhone=true","description":"<h1 id=\"get-all-contacts\">Get All Contacts</h1>\n<p>Retrieves a paginated list of contacts from the system with advanced search, filtering, and sorting capabilities. This endpoint allows you to search contacts by various criteria including email, representative relationships, communication status, and custom fields.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/contact/all\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>{{token}}</code> variable should contain your valid API access token.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<h3 id=\"search-parameters\">Search 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>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search contacts by email, name, or other identifying information. Example: <code>bartosz.lorenc@waywer.com</code></td>\n</tr>\n<tr>\n<td><code>searchGroup</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter contacts by group membership</td>\n</tr>\n<tr>\n<td><code>searchWorkplace</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter contacts by workplace affiliation</td>\n</tr>\n<tr>\n<td><code>searchSpecialisation</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter contacts by their specialisation</td>\n</tr>\n<tr>\n<td><code>searchAdditionalFieldName</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search by custom additional field name</td>\n</tr>\n<tr>\n<td><code>searchAdditionalFieldValue</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search by custom additional field value</td>\n</tr>\n<tr>\n<td><code>searchRep</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter contacts by their assigned representative's email. Example: <code>bartosz.lorenc@connectmedica.com</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"status-filters\">Status Filters</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>phoneStatus</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Filter by phone verification status. <code>true</code> = verified, <code>false</code> = unverified</td>\n</tr>\n<tr>\n<td><code>emailStatus</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Filter by email verification status. <code>true</code> = verified, <code>false</code> = unverified</td>\n</tr>\n<tr>\n<td><code>unsubscribed</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Filter by subscription status. <code>true</code> = unsubscribed, <code>false</code> = subscribed</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"relationship-policy\">Relationship Policy</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>relationPolicy</code></td>\n<td>string</td>\n<td>No</td>\n<td>Defines which representative relationship to return. Options: <code>last</code> (most recent relationship)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pagination-parameters\">Pagination 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>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>Zero-based page number for pagination</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>Number of records per page (max results to return)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sorting-parameters\">Sorting 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>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>lastName</code></td>\n<td>Field to sort by. Options: <code>lastName</code>, <code>firstName</code>, <code>updatedAt</code>, <code>relationUpdatedAt</code></td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>asc</code></td>\n<td>Sort direction. Options: <code>asc</code> (ascending), <code>desc</code> (descending)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": 28782,\n      \"uuid\": \"fc8b9d6d-1671-4da5-a49f-dc055166801a\",\n      \"email\": \"bartosz.lorenc@waywer.com\",\n      \"firstName\": \"Bartosz\",\n      \"lastName\": \"Lorenc Kontakt\",\n      \"externalId\": \"BL2020\",\n      \"businessTitle\": \"Dev Java\",\n      \"phone\": \"48603699489\",\n      \"gender\": true,\n      \"pwz\": null,\n      \"academicRank\": \"none\",\n      \"unsubscribedTo\": null,\n      \"updatedAt\": \"1737366385112\",\n      \"relationUpdatedAt\": null,\n      \"avatar\": null,\n      \"nickname\": null,\n      \"incorrectAllChannels\": null,\n      \"allowed\": null,\n      \"notAllowedReasons\": null,\n      \"sentCount\": null,\n      \"userRelations\": [\n        {\n          \"uuid\": \"c20d852e-c826-45bf-934d-419ae3d028d3\",\n          \"personalRelation\": null,\n          \"representativeId\": 28024,\n          \"representativeUuid\": \"8e1366f8-a57a-4931-b9df-035ad645a9d5\",\n          \"representativeFirstName\": \"Bartosz\",\n          \"representativeLastName\": \"Lorenc Rep\",\n          \"representativeEmail\": \"bartosz.lorenc@connectmedica.com\",\n          \"relationUpdatedAt\": \"1675170492\"\n        }\n      ],\n      \"additionalFields\": null,\n      \"groups\": null,\n      \"workplaces\": null,\n      \"specialisations\": null\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": true,\n      \"sorted\": false,\n      \"unsorted\": true\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 2,\n  \"totalPages\": 1,\n  \"last\": true,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": true,\n    \"sorted\": false,\n    \"unsorted\": true\n  },\n  \"numberOfElements\": 2,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"contact-object\">Contact Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal contact ID</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the contact</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Contact's email address</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>Contact's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>Contact's last name</td>\n</tr>\n<tr>\n<td><code>externalId</code></td>\n<td>string</td>\n<td>External system identifier</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string</td>\n<td>Contact's job title or position</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>string</td>\n<td>Contact's phone number</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>boolean</td>\n<td>Gender indicator</td>\n</tr>\n<tr>\n<td><code>pwz</code></td>\n<td>string</td>\n<td>Professional license number (if applicable)</td>\n</tr>\n<tr>\n<td><code>academicRank</code></td>\n<td>string</td>\n<td>Academic rank or title</td>\n</tr>\n<tr>\n<td><code>unsubscribedTo</code></td>\n<td>string</td>\n<td>Unsubscription details</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string</td>\n<td>Timestamp of last update (Unix timestamp in milliseconds)</td>\n</tr>\n<tr>\n<td><code>relationUpdatedAt</code></td>\n<td>string</td>\n<td>Timestamp of last relationship update</td>\n</tr>\n<tr>\n<td><code>avatar</code></td>\n<td>string</td>\n<td>URL to contact's avatar image</td>\n</tr>\n<tr>\n<td><code>nickname</code></td>\n<td>string</td>\n<td>Contact's nickname</td>\n</tr>\n<tr>\n<td><code>userRelations</code></td>\n<td>array</td>\n<td>Array of representative relationships</td>\n</tr>\n<tr>\n<td><code>additionalFields</code></td>\n<td>object</td>\n<td>Custom additional fields</td>\n</tr>\n<tr>\n<td><code>groups</code></td>\n<td>array</td>\n<td>Groups the contact belongs to</td>\n</tr>\n<tr>\n<td><code>workplaces</code></td>\n<td>array</td>\n<td>Contact's workplace affiliations</td>\n</tr>\n<tr>\n<td><code>specialisations</code></td>\n<td>array</td>\n<td>Contact's specialisations</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"user-relations-object\">User Relations Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the relationship</td>\n</tr>\n<tr>\n<td><code>personalRelation</code></td>\n<td>string</td>\n<td>Type of personal relationship</td>\n</tr>\n<tr>\n<td><code>representativeId</code></td>\n<td>integer</td>\n<td>ID of the assigned representative</td>\n</tr>\n<tr>\n<td><code>representativeUuid</code></td>\n<td>string</td>\n<td>UUID of the assigned representative</td>\n</tr>\n<tr>\n<td><code>representativeFirstName</code></td>\n<td>string</td>\n<td>Representative's first name</td>\n</tr>\n<tr>\n<td><code>representativeLastName</code></td>\n<td>string</td>\n<td>Representative's last name</td>\n</tr>\n<tr>\n<td><code>representativeEmail</code></td>\n<td>string</td>\n<td>Representative's email address</td>\n</tr>\n<tr>\n<td><code>relationUpdatedAt</code></td>\n<td>string</td>\n<td>Timestamp when relationship was last updated</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"pagination-metadata\">Pagination Metadata</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>totalElements</code></td>\n<td>integer</td>\n<td>Total number of contacts matching the criteria</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Current page number (zero-based)</td>\n</tr>\n<tr>\n<td><code>numberOfElements</code></td>\n<td>integer</td>\n<td>Number of elements in current page</td>\n</tr>\n<tr>\n<td><code>first</code></td>\n<td>boolean</td>\n<td>Whether this is the first page</td>\n</tr>\n<tr>\n<td><code>last</code></td>\n<td>boolean</td>\n<td>Whether this is the last page</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Whether the result set is empty</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nasync function getAllContacts() {\n  const tenantDomain = 'your-tenant.highp.me';\n  const token = 'your-access-token';\n  \n  const params = new URLSearchParams({\n    search: 'bartosz.lorenc@waywer.com',\n    searchRep: 'bartosz.lorenc@connectmedica.com',\n    phoneStatus: 'true',\n    emailStatus: 'true',\n    unsubscribed: 'false',\n    relationPolicy: 'last',\n    page: '0',\n    size: '20',\n    sortBy: 'lastName',\n    sortDirection: 'asc'\n  });\n  \n  const url = `https://${tenantDomain}/api/core/contact/all?${params}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    \n    console.log(`Total contacts found: ${data.totalElements}`);\n    console.log(`Current page: ${data.number + 1} of ${data.totalPages}`);\n    console.log(`Contacts on this page: ${data.numberOfElements}`);\n    \n    data.content.forEach(contact =&gt; {\n      console.log(`- ${contact.firstName} ${contact.lastName} (${contact.email})`);\n    });\n    \n    return data;\n  } catch (error) {\n    console.error('Error fetching contacts:', error);\n    throw error;\n  }\n}\n\n// Usage\ngetAllContacts();\n</code></pre>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<h3 id=\"pagination\">Pagination</h3>\n<ul>\n<li>Use <code>page</code> and <code>size</code> parameters to navigate through large result sets</li>\n<li>Page numbers are zero-based (first page is <code>page=0</code>)</li>\n<li>The response includes <code>totalPages</code> and <code>totalElements</code> to help with pagination logic</li>\n<li>Check the <code>last</code> field to determine if there are more pages available</li>\n</ul>\n<h3 id=\"sorting\">Sorting</h3>\n<ul>\n<li>Default sorting is by <code>lastName</code> in ascending order</li>\n<li>You can sort by: <code>lastName</code>, <code>firstName</code>, <code>updatedAt</code>, or <code>relationUpdatedAt</code></li>\n<li>Combine <code>sortBy</code> and <code>sortDirection</code> for custom sorting</li>\n</ul>\n<h3 id=\"filtering-best-practices\">Filtering Best Practices</h3>\n<ul>\n<li>Combine multiple search parameters to narrow down results</li>\n<li>Use <code>phoneStatus</code> and <code>emailStatus</code> to find contacts with verified communication channels</li>\n<li>Filter by <code>unsubscribed=false</code> to get only active contacts</li>\n<li>Use <code>searchRep</code> to find all contacts assigned to a specific representative</li>\n</ul>\n<h3 id=\"performance-considerations\">Performance Considerations</h3>\n<ul>\n<li>Limit the <code>size</code> parameter to reasonable values (20-100) for optimal performance</li>\n<li>Use specific search criteria to reduce result set size</li>\n<li>Consider caching results for frequently accessed data</li>\n</ul>\n<h2 id=\"common-use-cases\">Common Use Cases</h2>\n<ol>\n<li><p><strong>Find all contacts for a representative:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>?searchRep=rep@example.com&amp;page=0&amp;size=20\n</code></pre></li>\n<li><p><strong>Search for a specific contact:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>?search=contact@example.com&amp;size=1\n</code></pre></li>\n<li><p><strong>Get active contacts with verified emails:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>?emailStatus=true&amp;unsubscribed=false&amp;page=0&amp;size=50\n</code></pre></li>\n<li><p><strong>Sort by most recently updated:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>?sortBy=updatedAt&amp;sortDirection=desc&amp;page=0&amp;size=20\n</code></pre></li>\n</ol>\n","urlObject":{"path":["api","core","contact","all"],"host":["testsandbox.highp.me"],"query":[{"disabled":true,"key":"search","value":"bartosz.lorenc@waywer.com"},{"disabled":true,"description":{"content":"<p>search by name or uuid</p>\n","type":"text/plain"},"key":"searchGroup","value":"string"},{"disabled":true,"key":"searchWorkplace","value":"string"},{"disabled":true,"key":"searchSpecialisation","value":"string"},{"disabled":true,"key":"searchAdditionalFieldName","value":"string"},{"disabled":true,"key":"searchAdditionalFieldValue","value":"string"},{"disabled":true,"key":"searchRep","value":"bartosz.lorenc@connectmedica.com"},{"disabled":true,"key":"phoneStatus","value":"true"},{"disabled":true,"key":"emailStatus","value":"true"},{"disabled":true,"key":"unsubscribed","value":"false"},{"disabled":true,"key":"relationPolicy","value":"last"},{"key":"page","value":"0"},{"key":"size","value":"200"},{"key":"sortBy","value":"lastName"},{"key":"sortDirection","value":"asc"},{"key":"isPhone","value":"true"}],"variable":[]}},"response":[{"id":"ca44968b-3318-4573-aa20-910dbbeabb27","name":"Get All","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/contact/all?search=bartosz.lorenc@waywer.com&searchGroup=string&searchWorkplace=string&searchSpecialisation=string&searchAdditionalFieldName=string&searchAdditionalFieldValue=string&searchRep=bartosz.lorenc@connectmedica.com&phoneStatus=true&emailStatus=true&unsubscribed=false&relationPolicy=last&page=0&size=20&sortBy=lastName&sortDirection=asc","host":["testsandbox.highp.me"],"path":["api","core","contact","all"],"query":[{"key":"search","value":"bartosz.lorenc@waywer.com"},{"description":"search by name or uuid","key":"searchGroup","value":"string"},{"key":"searchWorkplace","value":"string"},{"key":"searchSpecialisation","value":"string"},{"key":"searchAdditionalFieldName","value":"string"},{"key":"searchAdditionalFieldValue","value":"string"},{"key":"searchRep","value":"bartosz.lorenc@connectmedica.com"},{"key":"phoneStatus","value":"true"},{"key":"emailStatus","value":"true"},{"key":"unsubscribed","value":"false"},{"key":"relationPolicy","value":"last"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastName"},{"key":"sortDirection","value":"asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:49:48 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:49:47 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-ec8ac37e9791d4f45a20883bbb63dbc7' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-ec8ac37e9791d4f45a20883bbb63dbc7' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 28782,\n            \"uuid\": \"fc8b9d6d-1671-4da5-a49f-dc055166801a\",\n            \"email\": \"bartosz.lorenc@waywer.com\",\n            \"firstName\": \"Bartosz\",\n            \"lastName\": \"Lorenc Kontakt\",\n            \"externalId\": \"BL2020\",\n            \"businessTitle\": \"Dev Java\",\n            \"phone\": \"48603699489\",\n            \"gender\": true,\n            \"pwz\": null,\n            \"academicRank\": \"none\",\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1737366385112\",\n            \"relationUpdatedAt\": null,\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": null,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": [\n                {\n                    \"uuid\": \"c20d852e-c826-45bf-934d-419ae3d028d3\",\n                    \"personalRelation\": null,\n                    \"representativeId\": 28024,\n                    \"representativeUuid\": \"8e1366f8-a57a-4931-b9df-035ad645a9d5\",\n                    \"representativeFirstName\": \"Bartosz\",\n                    \"representativeLastName\": \"Lorenc Rep\",\n                    \"representativeEmail\": \"bartosz.lorenc@connectmedica.com\",\n                    \"relationUpdatedAt\": \"1675170492\"\n                }\n            ],\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        },\n        {\n            \"id\": 29295,\n            \"uuid\": \"32725605-8017-48bc-a73c-77a3c91fb3b0\",\n            \"email\": \"bartosz.lorenc@waywer.coms\",\n            \"firstName\": \"Bartosz\",\n            \"lastName\": \"Lorenc Kontakt\",\n            \"externalId\": null,\n            \"businessTitle\": \"Dev Java\",\n            \"phone\": \"48603699489\",\n            \"gender\": null,\n            \"pwz\": null,\n            \"academicRank\": \"none\",\n            \"unsubscribedTo\": null,\n            \"updatedAt\": \"1706786196\",\n            \"relationUpdatedAt\": null,\n            \"avatar\": null,\n            \"nickname\": null,\n            \"incorrectAllChannels\": null,\n            \"allowed\": null,\n            \"notAllowedReasons\": null,\n            \"sentCount\": null,\n            \"userRelations\": [\n                {\n                    \"uuid\": \"73353bfa-00e5-4198-94fa-f5c60af8a1ee\",\n                    \"personalRelation\": null,\n                    \"representativeId\": 28024,\n                    \"representativeUuid\": \"8e1366f8-a57a-4931-b9df-035ad645a9d5\",\n                    \"representativeFirstName\": \"Bartosz\",\n                    \"representativeLastName\": \"Lorenc Rep\",\n                    \"representativeEmail\": \"bartosz.lorenc@connectmedica.com\",\n                    \"relationUpdatedAt\": \"1746439396\"\n                }\n            ],\n            \"additionalFields\": null,\n            \"groups\": null,\n            \"workplaces\": null,\n            \"specialisations\": null\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 2,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": true,\n        \"sorted\": false,\n        \"unsorted\": true\n    },\n    \"numberOfElements\": 2,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"1e75595f-e8bc-41a8-8857-eea800df81a2"},{"name":"Get All Send Target","id":"df169245-a200-46ad-a421-8f49687fc946","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/contact/all-send-target?search=kontakt1@niepodam.pl&searchGroup=string&searchWorkplace=string&searchSpecialisation=string&searchAdditionalFieldName=string&searchAdditionalFieldValue=string&searchRep=nowytest988@gmail.com&phoneStatus=true&emailStatus=true&unsubscribed=false&relationPolicy=last","description":"<h1 id=\"get-all-send-target\">Get All Send Target</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves pairs of contact-representative IDs based on various search and filter criteria. It's designed to help identify which contacts are associated with which representatives, useful for targeted communication campaigns and relationship management.</p>\n<p>The endpoint returns an array of ID pairs in the format <code>\"contactId-representativeId\"</code>, allowing you to establish the relationships between contacts and their assigned representatives.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<p>All parameters are <strong>optional</strong> and can be combined to refine your search results.</p>\n<h3 id=\"search-parameters\">Search 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>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>Search by contact's firstname, lastname, phone, email, or business title</td>\n</tr>\n<tr>\n<td><code>searchGroup</code></td>\n<td>string</td>\n<td>Filter by group name</td>\n</tr>\n<tr>\n<td><code>searchWorkplace</code></td>\n<td>string</td>\n<td>Search by workplace name, city, street, ward, or postal code</td>\n</tr>\n<tr>\n<td><code>searchSpecialisation</code></td>\n<td>string</td>\n<td>Filter by specialisation</td>\n</tr>\n<tr>\n<td><code>searchAdditionalFieldName</code></td>\n<td>string</td>\n<td>Search by custom field name</td>\n</tr>\n<tr>\n<td><code>searchAdditionalFieldValue</code></td>\n<td>string</td>\n<td>Search by custom field value</td>\n</tr>\n<tr>\n<td><code>searchRep</code></td>\n<td>string</td>\n<td>Search by representative's firstname, lastname, phone, email, or business title</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"status-filters\">Status Filters</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>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>phoneStatus</code></td>\n<td>boolean</td>\n<td><code>false</code></td>\n<td>When <code>true</code>, only returns contacts with phone status CORRECT or UNKNOWN</td>\n</tr>\n<tr>\n<td><code>emailStatus</code></td>\n<td>boolean</td>\n<td><code>false</code></td>\n<td>When <code>true</code>, only returns contacts with email status CORRECT or UNKNOWN</td>\n</tr>\n<tr>\n<td><code>unsubscribed</code></td>\n<td>boolean</td>\n<td><code>false</code></td>\n<td>Filter by contact's unsubscribe status</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"relationship-policy\">Relationship Policy</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>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>relationPolicy</code></td>\n<td>string</td>\n<td><code>last</code></td>\n<td>Defines which contact-representative relationships to return:<br />• <code>first</code> - Returns the first added relation<br />• <code>last</code> - Returns the last added relation<br />• <code>all</code> - Returns all relations with representatives</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns an array of strings, where each string represents a contact-representative ID pair separated by a hyphen.</p>\n<p><strong>Schema:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  \"string\"\n]\n</code></pre>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  \"1111-2222\",\n  \"1234-5678\",\n  \"5555-6666\"\n]\n</code></pre>\n<p>Each string follows the format: <code>\"{contactId}-{representativeId}\"</code></p>\n<hr />\n<h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nasync function getAllSendTargets() {\n  const tenantDomain = 'your-tenant-domain.highp.me';\n  const token = 'your-auth-token';\n  \n  // Build query parameters\n  const params = new URLSearchParams({\n    search: 'kontakt1@niepodam.pl',\n    searchRep: 'nowytest988@gmail.com',\n    phoneStatus: 'true',\n    emailStatus: 'true',\n    unsubscribed: 'false',\n    relationPolicy: 'last'\n  });\n  \n  const url = `https://${tenantDomain}/api/core/contact/all-send-target?${params}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('Contact-Representative pairs:', data);\n    \n    // Process the pairs\n    data.forEach(pair =&gt; {\n      const [contactId, repId] = pair.split('-');\n      console.log(`Contact ${contactId} is assigned to Representative ${repId}`);\n    });\n    \n    return data;\n  } catch (error) {\n    console.error('Error fetching send targets:', error);\n    throw error;\n  }\n}\n\n// Usage\ngetAllSendTargets();\n</code></pre>\n<hr />\n<h2 id=\"important-notes\">Important Notes</h2>\n<ul>\n<li><strong>All parameters are optional</strong> - You can call the endpoint without any parameters to retrieve all contact-representative pairs</li>\n<li><strong>Parameter combination</strong> - Multiple search parameters can be combined to create complex filters</li>\n<li><strong>Default behavior</strong> - Without specifying <code>relationPolicy</code>, the endpoint returns the last added relationship for each contact</li>\n<li><strong>Status filtering</strong> - Both <code>phoneStatus</code> and <code>emailStatus</code> default to <code>false</code>, meaning they don't filter by status unless explicitly set to <code>true</code></li>\n<li><strong>Authentication required</strong> - This endpoint requires a valid authentication token in the request headers</li>\n</ul>\n<hr />\n<h2 id=\"use-cases\">Use Cases</h2>\n<ol>\n<li><strong>Campaign targeting</strong> - Identify which representatives should contact which customers</li>\n<li><strong>Workload distribution</strong> - Analyze contact distribution across representatives</li>\n<li><strong>Relationship tracking</strong> - Monitor contact-representative assignments over time</li>\n<li><strong>Filtered outreach</strong> - Find contacts meeting specific criteria assigned to particular representatives</li>\n</ol>\n","urlObject":{"path":["api","core","contact","all-send-target"],"host":["testsandbox.highp.me"],"query":[{"key":"search","value":"kontakt1@niepodam.pl"},{"description":{"content":"<p>search by name or uuid</p>\n","type":"text/plain"},"key":"searchGroup","value":"string"},{"key":"searchWorkplace","value":"string"},{"key":"searchSpecialisation","value":"string"},{"key":"searchAdditionalFieldName","value":"string"},{"key":"searchAdditionalFieldValue","value":"string"},{"key":"searchRep","value":"nowytest988@gmail.com"},{"key":"phoneStatus","value":"true"},{"key":"emailStatus","value":"true"},{"key":"unsubscribed","value":"false"},{"key":"relationPolicy","value":"last"}],"variable":[]}},"response":[{"id":"e78aa075-fb86-487e-bdb8-614272968b8c","name":"Get All Send Target","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/contact/all-send-target?search=kontakt1@niepodam.pl&searchGroup=string&searchWorkplace=string&searchSpecialisation=string&searchAdditionalFieldName=string&searchAdditionalFieldValue=string&searchRep=nowytest988@gmail.com&phoneStatus=true&emailStatus=true&unsubscribed=false&relationPolicy=last","host":["testsandbox.highp.me"],"path":["api","core","contact","all-send-target"],"query":[{"key":"search","value":"kontakt1@niepodam.pl"},{"description":"search by name or uuid","key":"searchGroup","value":"string"},{"key":"searchWorkplace","value":"string"},{"key":"searchSpecialisation","value":"string"},{"key":"searchAdditionalFieldName","value":"string"},{"key":"searchAdditionalFieldValue","value":"string"},{"key":"searchRep","value":"nowytest988@gmail.com"},{"key":"phoneStatus","value":"true"},{"key":"emailStatus","value":"true"},{"key":"unsubscribed","value":"false"},{"key":"relationPolicy","value":"last"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:50:50 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:50:49 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-73f547e8653b4bf100fa59600fe03b95' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-73f547e8653b4bf100fa59600fe03b95' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n    \"28000-136\"\n]"}],"_postman_id":"df169245-a200-46ad-a421-8f49687fc946"},{"name":"Create Contact","id":"a6ca7817-e9da-46ae-beab-3d8a39805492","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"user@example.com\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"externalId\": \"123456\",\n  \"businessTitle\": \"Cardiologist\",\n  \"phone\": \"+48123456789\",\n  \"gender\": true,\n  \"pwz\": 1234567,\n  \"academicRank\": \"Dr.\",\n  \"workplaces\": [\n    {\n      \"city\": \"Warsaw\",\n      \"street\": \"Main St 10\",\n      \"ward\": \"Central\",\n      \"postalCode\": \"00-001\",\n      \"name\": \"Medical Center\"\n    }\n  ],\n  \"specialisations\": [\n    {\n      \"name\": \"Cardiology\"\n    }\n  ],\n  \"force\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/create","description":"<h2 id=\"create-contact-api\">Create Contact API</h2>\n<p>This endpoint allows you to create a new contact in the system. It is designed to accept various details about the contact, including personal information and workplace details.</p>\n<p>The method first checks if the contact data already exists in Highp. It may return errors:</p>\n<ul>\n<li><p><code>USER_WITH_EMAIL_EXISTS</code></p>\n</li>\n<li><p><code>USER_WITH_EXTERNAL_ID_EXISTS</code></p>\n</li>\n<li><p><code>USER_WITH_PHONE_EXISTS</code></p>\n</li>\n<li><p><code>USER_WITH_FIRSTNAME_LASTNAME_EXISTS</code></p>\n</li>\n</ul>\n<p>When the <code>force</code> parameter is set to <code>true</code>, the system always creates a new contact without checking for duplicates.</p>\n<p><strong>Only a unique email address is required.</strong></p>\n<hr />\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/contact/create</code></p>\n<h4 id=\"request-headers\">Request Headers</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/json\nAuthorization: Bearer {{jwt}}\n\n</code></pre><h4 id=\"request-body-parameters\">Request Body Parameters</h4>\n<p>The request body should be in JSON format and must include the following parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>email</code></td>\n<td><code>string</code></td>\n<td>✅ Yes</td>\n<td>User's email address (must be unique)</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td><code>string</code></td>\n<td>✅ Yes</td>\n<td>User's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td><code>string</code></td>\n<td>✅ Yes</td>\n<td>User's last name</td>\n</tr>\n<tr>\n<td><code>externalId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>External system identifier</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Professional title (e.g., \"Cardiologist\")</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Phone number in international format (e.g., \"+48123456789\")</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td><code>boolean</code></td>\n<td>No</td>\n<td><code>true</code> = male, <code>false</code> = female</td>\n</tr>\n<tr>\n<td><code>pwz</code></td>\n<td><code>number</code></td>\n<td>No</td>\n<td>Polish medical license number</td>\n</tr>\n<tr>\n<td><code>academicRank</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Academic title (e.g., \"Dr.\", \"Prof.\")</td>\n</tr>\n<tr>\n<td><code>workplaces</code></td>\n<td><code>array</code></td>\n<td>No</td>\n<td>List of workplace objects (see below)</td>\n</tr>\n<tr>\n<td><code>specialisations</code></td>\n<td><code>array</code></td>\n<td>No</td>\n<td>List of specialisation objects (see below)</td>\n</tr>\n<tr>\n<td><code>force</code></td>\n<td><code>boolean</code></td>\n<td>No</td>\n<td>Force create even if conflicts occur (default: <code>false</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"🔹-workplaces-object-structure\">🔹 <code>workplaces</code> Object Structure</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>city</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>City name</td>\n</tr>\n<tr>\n<td><code>street</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Street address</td>\n</tr>\n<tr>\n<td><code>ward</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Ward or district</td>\n</tr>\n<tr>\n<td><code>postalCode</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Postal code</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Workplace name</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"🔹-specialisations-object-structure\">🔹 <code>specialisations</code> Object Structure</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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><code>string</code></td>\n<td>Yes</td>\n<td>Specialisation name (e.g., \"Cardiology\")</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"nodejs-fetch-example\">Node.js Fetch Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const createContact = async () =&gt; {\n  const tenantDomain = 'your-tenant-domain.highp.me'; // Replace with your tenant domain\n  const jwtToken = 'your-jwt-token'; // Replace with your JWT token\n  const contactData = {\n    email: \"user@example.com\",\n    firstName: \"John\",\n    lastName: \"Doe\",\n    externalId: \"123456\",\n    businessTitle: \"Cardiologist\",\n    phone: \"+48123456789\",\n    gender: true,\n    pwz: 1234567,\n    academicRank: \"Dr.\",\n    workplaces: [{\n      city: \"Warsaw\",\n      street: \"Main St 10\",\n      ward: \"Central\",\n      postalCode: \"00-001\",\n      name: \"Medical Center\"\n    }],\n    specialisations: [{\n      name: \"Cardiology\"\n    }],\n    force: true\n  };\n  try {\n    const response = await fetch(`https://${tenantDomain}/api/core/contact/create`, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': `Bearer ${jwtToken}`\n      },\n      body: JSON.stringify(contactData)\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('Contact created successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating contact:', error);\n    throw error;\n  }\n};\n// Usage\ncreateContact();\n\n</code></pre>\n<hr />\n<h3 id=\"response\">Response</h3>\n<h4 id=\"success-response-200-ok\">Success Response (200 OK)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"contactId\": \"uuid-string\",\n  \"message\": \"Contact created successfully\",\n  \"data\": {\n    \"id\": \"uuid-string\",\n    \"email\": \"user@example.com\",\n    \"firstName\": \"John\",\n    \"lastName\": \"Doe\",\n    \"externalId\": \"123456\",\n    \"businessTitle\": \"Cardiologist\",\n    \"phone\": \"+48123456789\",\n    \"gender\": true,\n    \"pwz\": 1234567,\n    \"academicRank\": \"Dr.\",\n    \"workplaces\": [{\n      \"id\": \"workplace-uuid\",\n      \"city\": \"Warsaw\",\n      \"street\": \"Main St 10\",\n      \"ward\": \"Central\",\n      \"postalCode\": \"00-001\",\n      \"name\": \"Medical Center\"\n    }],\n    \"specialisations\": [{\n      \"id\": \"specialisation-uuid\",\n      \"name\": \"Cardiology\"\n    }],\n    \"createdAt\": \"2024-01-15T10:30:00Z\",\n    \"updatedAt\": \"2024-01-15T10:30:00Z\"\n  }\n}\n\n</code></pre>\n<h4 id=\"response-model\">Response Model</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>success</code></td>\n<td><code>boolean</code></td>\n<td>Indicates if the operation was successful</td>\n</tr>\n<tr>\n<td><code>contactId</code></td>\n<td><code>string</code></td>\n<td>Unique identifier for the created contact</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td><code>string</code></td>\n<td>Success message</td>\n</tr>\n<tr>\n<td><code>data</code></td>\n<td><code>object</code></td>\n<td>Contact object with all details</td>\n</tr>\n<tr>\n<td><code>data.id</code></td>\n<td><code>string</code></td>\n<td>Contact UUID</td>\n</tr>\n<tr>\n<td><code>data.email</code></td>\n<td><code>string</code></td>\n<td>Contact's email address</td>\n</tr>\n<tr>\n<td><code>data.firstName</code></td>\n<td><code>string</code></td>\n<td>Contact's first name</td>\n</tr>\n<tr>\n<td><code>data.lastName</code></td>\n<td><code>string</code></td>\n<td>Contact's last name</td>\n</tr>\n<tr>\n<td><code>data.externalId</code></td>\n<td><code>string</code></td>\n<td>External system identifier</td>\n</tr>\n<tr>\n<td><code>data.businessTitle</code></td>\n<td><code>string</code></td>\n<td>Professional title</td>\n</tr>\n<tr>\n<td><code>data.phone</code></td>\n<td><code>string</code></td>\n<td>Phone number</td>\n</tr>\n<tr>\n<td><code>data.gender</code></td>\n<td><code>boolean</code></td>\n<td>Gender (true = male, false = female)</td>\n</tr>\n<tr>\n<td><code>data.pwz</code></td>\n<td><code>number</code></td>\n<td>Polish medical license number</td>\n</tr>\n<tr>\n<td><code>data.academicRank</code></td>\n<td><code>string</code></td>\n<td>Academic title</td>\n</tr>\n<tr>\n<td><code>data.workplaces</code></td>\n<td><code>array</code></td>\n<td>Array of workplace objects with IDs</td>\n</tr>\n<tr>\n<td><code>data.specialisations</code></td>\n<td><code>array</code></td>\n<td>Array of specialisation objects with IDs</td>\n</tr>\n<tr>\n<td><code>data.createdAt</code></td>\n<td><code>string</code></td>\n<td>ISO 8601 timestamp of creation</td>\n</tr>\n<tr>\n<td><code>data.updatedAt</code></td>\n<td><code>string</code></td>\n<td>ISO 8601 timestamp of last update</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"error-responses\">Error Responses</h3>\n<h4 id=\"400-bad-request---duplicate-contact\">400 Bad Request - Duplicate Contact</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"error\": \"USER_WITH_EMAIL_EXISTS\",\n  \"message\": \"A contact with this email already exists\"\n}\n\n</code></pre>\n<p><strong>Possible Error Codes:</strong></p>\n<ul>\n<li><p><code>USER_WITH_EMAIL_EXISTS</code> - Email address already in use</p>\n</li>\n<li><p><code>USER_WITH_EXTERNAL_ID_EXISTS</code> - External ID already exists</p>\n</li>\n<li><p><code>USER_WITH_PHONE_EXISTS</code> - Phone number already registered</p>\n</li>\n<li><p><code>USER_WITH_FIRSTNAME_LASTNAME_EXISTS</code> - Contact with same first and last name exists</p>\n</li>\n</ul>\n<p><strong>Solution:</strong> Set <code>force: true</code> in the request body to bypass duplicate checks.</p>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"error\": \"UNAUTHORIZED\",\n  \"message\": \"Invalid or missing authentication token\"\n}\n\n</code></pre>\n<h4 id=\"422-unprocessable-entity---validation-error\">422 Unprocessable Entity - Validation Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"error\": \"VALIDATION_ERROR\",\n  \"message\": \"Invalid request data\",\n  \"details\": {\n    \"email\": \"Invalid email format\",\n    \"phone\": \"Invalid phone number format\"\n  }\n}\n\n</code></pre>\n<hr />\n<h3 id=\"status-codes\">Status Codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200</code></td>\n<td>Contact created successfully</td>\n</tr>\n<tr>\n<td><code>400</code></td>\n<td>Bad request - duplicate contact found</td>\n</tr>\n<tr>\n<td><code>401</code></td>\n<td>Unauthorized - invalid or missing token</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Validation error - invalid data format</td>\n</tr>\n<tr>\n<td><code>500</code></td>\n<td>Internal server error</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>The <code>email</code> field must be unique across the system unless <code>force: true</code> is set</p>\n</li>\n<li><p>Phone numbers should be in international format (e.g., \"+48123456789\")</p>\n</li>\n<li><p>The <code>gender</code> field uses boolean: <code>true</code> for male, <code>false</code> for female</p>\n</li>\n<li><p>When <code>force: true</code>, the system skips all duplicate checks and creates the contact</p>\n</li>\n<li><p>All timestamps are returned in ISO 8601 format (UTC)</p>\n</li>\n<li><p>The API requires a valid JWT token in the Authorization header</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","contact","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"871ed092-abba-43f0-86c6-d5211c8a6259","name":"Create Contact","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"user@example.com\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"externalId\": \"123456\",\n  \"businessTitle\": \"Cardiologist\",\n  \"phone\": \"+48123456789\",\n  \"gender\": true,\n  \"pwz\": 1234567,\n  \"academicRank\": \"Dr.\",\n  \"workplaces\": [\n    {\n      \"city\": \"Warsaw\",\n      \"street\": \"Main St 10\",\n      \"ward\": \"Central\",\n      \"postalCode\": \"00-001\",\n      \"name\": \"Medical Center\"\n    }\n  ],\n  \"specialisations\": [\n    {\n      \"name\": \"Cardiology\"\n    }\n  ],\n  \"force\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/create"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Server","value":"nginx/1.18.0 (Ubuntu)"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 04 Aug 2025 07:58:50 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": 72224,\n  \"uuid\": \"9d8dfb51-4e9a-41a7-9eb6-361dcccd9785\",\n  \"email\": \"user@example.com\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"externalId\": \"123456\",\n  \"businessTitle\": \"Cardiologist\",\n  \"phone\": \"+48123456789\",\n  \"gender\": true,\n  \"pwz\": 1234567,\n  \"academicRank\": \"Dr.\",\n  \"unsubscribedTo\": \"null\",\n  \"updatedAt\": \"1754294330096\",\n  \"relationUpdatedAt\": null,\n  \"avatar\": null,\n  \"nickname\": null,\n  \"incorrectAllChannels\": false,\n  \"allowed\": true,\n  \"notAllowedReasons\": null,\n  \"sentCount\": null,\n  \"userRelations\": [],\n  \"additionalFields\": [],\n  \"groups\": null,\n  \"workplaces\": [],\n  \"specialisations\": [\n    {\n      \"uuid\": \"3ccdf80d-7fb9-4a4a-a7e9-78eb089207ea\",\n      \"name\": \"Cardiology\"\n    }\n  ]\n}"}],"_postman_id":"a6ca7817-e9da-46ae-beab-3d8a39805492"},{"name":"Check Duplicates","id":"67684b24-f1cb-4756-8bd1-7808a31fff1c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"example_email\",\n  \"firstName\": \"name\",\n  \"lastName\": \"lastname\",\n  \"phone\": \"+48000000000\",\n  \"externalId\": \"0x0\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/check-duplicates","description":"<h1 id=\"check-duplicates\">Check Duplicates</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint checks for duplicate contacts in the system based on the provided contact information. It helps prevent duplicate entries by identifying existing contacts that match the submitted data based on various criteria such as email, phone number, name, or external ID.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST https://{{tenant_domain}}/api/core/contact/check-duplicates\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-body\">Request Body</h2>\n<p>The request accepts a JSON object with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>No</td>\n<td>Email address of the contact to check for duplicates</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>No</td>\n<td>First name of the contact</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>No</td>\n<td>Last name of the contact</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>string</td>\n<td>No</td>\n<td>Phone number in international format (e.g., +48000000000)</td>\n</tr>\n<tr>\n<td><code>externalId</code></td>\n<td>string</td>\n<td>No</td>\n<td>External identifier from your system</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string</td>\n<td>No</td>\n<td>Business or professional title</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Gender of the contact</td>\n</tr>\n<tr>\n<td><code>pwz</code></td>\n<td>number</td>\n<td>No</td>\n<td>PWZ (medical license number)</td>\n</tr>\n<tr>\n<td><code>academicRank</code></td>\n<td>string</td>\n<td>No</td>\n<td>Academic rank or title</td>\n</tr>\n<tr>\n<td><code>workplaces</code></td>\n<td>array</td>\n<td>No</td>\n<td>Array of workplace objects</td>\n</tr>\n<tr>\n<td><code>workplaces[].city</code></td>\n<td>string</td>\n<td>No</td>\n<td>City of the workplace</td>\n</tr>\n<tr>\n<td><code>workplaces[].street</code></td>\n<td>string</td>\n<td>No</td>\n<td>Street address</td>\n</tr>\n<tr>\n<td><code>workplaces[].ward</code></td>\n<td>string</td>\n<td>No</td>\n<td>Ward or district</td>\n</tr>\n<tr>\n<td><code>workplaces[].postalCode</code></td>\n<td>string</td>\n<td>No</td>\n<td>Postal code</td>\n</tr>\n<tr>\n<td><code>workplaces[].name</code></td>\n<td>string</td>\n<td>No</td>\n<td>Name of the workplace</td>\n</tr>\n<tr>\n<td><code>specialisations</code></td>\n<td>array</td>\n<td>No</td>\n<td>Array of specialisation objects</td>\n</tr>\n<tr>\n<td><code>specialisations[].name</code></td>\n<td>string</td>\n<td>No</td>\n<td>Name of the specialisation</td>\n</tr>\n<tr>\n<td><code>force</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Force creation even if duplicates exist</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"john.doe@example.com\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"phone\": \"+48501234567\",\n  \"externalId\": \"EXT-12345\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const checkDuplicates = async (contactData) =&gt; {\n  const url = 'https://{{tenant_domain}}/api/core/contact/check-duplicates';\n  const token = '{{token}}';\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify({\n        email: contactData.email,\n        firstName: contactData.firstName,\n        lastName: contactData.lastName,\n        phone: contactData.phone,\n        externalId: contactData.externalId\n      })\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    \n    if (data.duplicatesExists) {\n      console.log('Duplicates found:', data.contactDuplicates.length);\n      data.contactDuplicates.forEach(duplicate =&gt; {\n        console.log(`- Contact ID: ${duplicate.contact.id}`);\n        console.log(`  Reasons: ${duplicate.reasons.join(', ')}`);\n      });\n    } else {\n      console.log('No duplicates found');\n    }\n\n    return data;\n  } catch (error) {\n    console.error('Error checking duplicates:', error);\n    throw error;\n  }\n};\n\n// Usage example\ncheckDuplicates({\n  email: 'john.doe@example.com',\n  firstName: 'John',\n  lastName: 'Doe',\n  phone: '+48501234567',\n  externalId: 'EXT-12345'\n});\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<h4 id=\"when-no-duplicates-found\">When No Duplicates Found</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"duplicatesExists\": false,\n  \"contactDuplicates\": []\n}\n</code></pre>\n<h4 id=\"when-duplicates-found\">When Duplicates Found</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"duplicatesExists\": true,\n  \"contactDuplicates\": [\n    {\n      \"contact\": {\n        \"id\": 4,\n        \"uuid\": \"0f7aa97c-f31d-11ed-b9a8-7d70a2e9b733\",\n        \"email\": \"john.doe@example.com\",\n        \"firstName\": \"John\",\n        \"lastName\": \"Doe\",\n        \"externalId\": \"EXT-12345\",\n        \"businessTitle\": \"Manager\",\n        \"phone\": \"+48501234567\",\n        \"gender\": true,\n        \"pwz\": null,\n        \"academicRank\": \"none\",\n        \"unsubscribedTo\": \"null\",\n        \"updatedAt\": \"1754659595646\",\n        \"relationUpdatedAt\": null,\n        \"avatar\": null,\n        \"nickname\": null,\n        \"incorrectAllChannels\": false,\n        \"allowed\": true,\n        \"notAllowedReasons\": null,\n        \"sentCount\": null,\n        \"userRelations\": null,\n        \"additionalFields\": null,\n        \"groups\": null,\n        \"workplaces\": null,\n        \"specialisations\": null\n      },\n      \"reasons\": [\n        \"EMAIL\"\n      ]\n    }\n  ]\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>duplicatesExists</code></td>\n<td>boolean</td>\n<td>Indicates whether any duplicates were found</td>\n</tr>\n<tr>\n<td><code>contactDuplicates</code></td>\n<td>array</td>\n<td>Array of duplicate contact objects (empty if no duplicates)</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact</code></td>\n<td>object</td>\n<td>Full contact object of the duplicate</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact.id</code></td>\n<td>number</td>\n<td>Internal contact ID</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact.uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the contact</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact.email</code></td>\n<td>string</td>\n<td>Email address</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact.firstName</code></td>\n<td>string</td>\n<td>First name</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact.lastName</code></td>\n<td>string</td>\n<td>Last name</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact.phone</code></td>\n<td>string</td>\n<td>Phone number</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact.allowed</code></td>\n<td>boolean</td>\n<td>Whether the contact is allowed to receive communications</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].contact.updatedAt</code></td>\n<td>string</td>\n<td>Timestamp of last update</td>\n</tr>\n<tr>\n<td><code>contactDuplicates[].reasons</code></td>\n<td>array</td>\n<td>Array of strings indicating which fields matched (e.g., \"EMAIL\", \"PHONE\", \"EXTERNAL_ID\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"duplicate-detection-reasons\">Duplicate Detection Reasons</h3>\n<p>The <code>reasons</code> array indicates which fields triggered the duplicate detection:</p>\n<ul>\n<li><strong>EMAIL</strong>: Email address matches an existing contact</li>\n<li><strong>PHONE</strong>: Phone number matches an existing contact</li>\n<li><strong>EXTERNAL_ID</strong>: External ID matches an existing contact</li>\n<li><strong>NAME</strong>: First and last name combination matches</li>\n</ul>\n<h2 id=\"status-codes\">Status Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Success - Returns duplicate check results</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid request body format</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"use-cases\">Use Cases</h2>\n<ol>\n<li><strong>Pre-validation</strong>: Check for duplicates before creating a new contact</li>\n<li><strong>Data Quality</strong>: Identify potential duplicate entries in your system</li>\n<li><strong>Merge Detection</strong>: Find contacts that should potentially be merged</li>\n<li><strong>Import Validation</strong>: Validate contact data during bulk imports</li>\n</ol>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The endpoint performs fuzzy matching on certain fields to catch potential duplicates</li>\n<li>Multiple matching criteria can be returned in the <code>reasons</code> array</li>\n<li>Use the <code>force</code> parameter to override duplicate detection when creating contacts</li>\n<li>The response includes full contact details for each duplicate found, allowing you to make informed decisions about how to handle them</li>\n</ul>\n","urlObject":{"path":["api","core","contact","check-duplicates"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"fc02d22c-58a2-4fa8-b15a-27ee4e315184","name":"False","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"email\": \"example_email\",\n  \"firstName\": \"name\",\n  \"lastName\": \"lastname\",\n  \"phone\": \"+48000000000\"\n}","options":{"raw":{"language":"json"}}},"url":"https://{{tenant_domain}}/api/core/contact/check-duplicates"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.18.0 (Ubuntu)"},{"key":"Date","value":"Mon, 11 Aug 2025 08:36:02 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"coreserver"}],"cookie":[],"responseTime":null,"body":"{\n    \"duplicatesExists\": false,\n    \"contactDuplicates\": []\n}"},{"id":"76a4edca-749d-4c09-ae32-392eaf4e1066","name":"False","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"example_email\",\n  \"firstName\": \"name\",\n  \"lastName\": \"lastname\",\n  \"phone\": \"+48000000000\",\n  \"externalId\": \"0x0\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/check-duplicates"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Server","value":"nginx/1.18.0 (Ubuntu)"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 11 Aug 2025 08:36:02 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"duplicatesExists\": true,\n    \"contactDuplicates\": [\n        {\n            \"contact\": {\n                \"id\": 4,\n                \"uuid\": \"0f7aa97c-f31d-11ed-b9a8-7d70a2e9b733\",\n                \"email\": \"igorgnot+1@gmail.com\",\n                \"firstName\": \"Igor2\",\n                \"lastName\": \"gnot T1\",\n                \"externalId\": null,\n                \"businessTitle\": null,\n                \"phone\": \"+48501760490\",\n                \"gender\": true,\n                \"pwz\": null,\n                \"academicRank\": \"none\",\n                \"unsubscribedTo\": \"null\",\n                \"updatedAt\": \"1754659595646\",\n                \"relationUpdatedAt\": null,\n                \"avatar\": null,\n                \"nickname\": null,\n                \"incorrectAllChannels\": false,\n                \"allowed\": true,\n                \"notAllowedReasons\": null,\n                \"sentCount\": null,\n                \"userRelations\": null,\n                \"additionalFields\": null,\n                \"groups\": null,\n                \"workplaces\": null,\n                \"specialisations\": null\n            },\n            \"reasons\": [\n                \"EMAIL\"\n            ]\n        }\n    ]\n}"}],"_postman_id":"67684b24-f1cb-4756-8bd1-7808a31fff1c"},{"name":"Update Contact","id":"ab066a55-2388-489f-b1f5-7f558fc3a748","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"nowyemail900@niepodam.pl\", //required\n  \"firstName\": \"nowytyst\", //required\n  \"lastName\": \"test123\" //required\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/b97d17a1-eb68-4a49-89bb-69a3b7aca8e5","description":"<h1 id=\"update-contact\">Update Contact</h1>\n<p>Updates an existing contact in the Highp platform by their UUID. This endpoint allows you to modify contact information such as email address, first name, and last name.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT https://{{tenant_domain}}/api/core/contact/{contactUuid}\n</code></pre><h2 id=\"url-parameters\">URL Parameters</h2>\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>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact to update (e.g., <code>b97d17a1-eb68-4a49-89bb-69a3b7aca8e5</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>{{token}}</code> variable should contain your valid API access token.</p>\n<h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"string\",\n  \"firstName\": \"string\",\n  \"lastName\": \"string\"\n}\n</code></pre>\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>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>The contact's email address. Must be a valid email format.</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>The contact's first name.</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>The contact's last name.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"nowyemail900@niepodam.pl\",\n  \"firstName\": \"nowytyst\",\n  \"lastName\": \"test123\"\n}\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns the updated contact object with all fields, including system-generated metadata.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"uuid\": \"string\",\n  \"email\": \"string\",\n  \"firstName\": \"string\",\n  \"lastName\": \"string\",\n  \"externalId\": \"string | null\",\n  \"businessTitle\": \"string | null\",\n  \"phone\": \"string | null\",\n  \"gender\": \"string | null\",\n  \"pwz\": \"string | null\",\n  \"academicRank\": \"string | null\",\n  \"unsubscribedTo\": \"string | null\",\n  \"updatedAt\": \"string (timestamp)\",\n  \"relationUpdatedAt\": \"string | null\",\n  \"avatar\": \"string | null\",\n  \"nickname\": \"string | null\",\n  \"incorrectAllChannels\": \"boolean\",\n  \"allowed\": \"boolean\",\n  \"notAllowedReasons\": \"string | null\",\n  \"sentCount\": \"integer | null\",\n  \"userRelations\": \"object | null\",\n  \"additionalFields\": \"object | null\",\n  \"groups\": \"array | null\",\n  \"workplaces\": \"array | null\",\n  \"specialisations\": \"array | null\"\n}\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the contact</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) of the contact</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Contact's email address</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>Contact's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>Contact's last name</td>\n</tr>\n<tr>\n<td><code>externalId</code></td>\n<td>string/null</td>\n<td>External system identifier (if integrated)</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string/null</td>\n<td>Contact's job title or position</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>string/null</td>\n<td>Contact's phone number</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>string/null</td>\n<td>Contact's gender</td>\n</tr>\n<tr>\n<td><code>pwz</code></td>\n<td>string/null</td>\n<td>Professional medical license number (Polish: Prawo Wykonywania Zawodu)</td>\n</tr>\n<tr>\n<td><code>academicRank</code></td>\n<td>string/null</td>\n<td>Academic title or rank</td>\n</tr>\n<tr>\n<td><code>unsubscribedTo</code></td>\n<td>string/null</td>\n<td>Channels the contact has unsubscribed from</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string</td>\n<td>Timestamp of last update (Unix timestamp in milliseconds)</td>\n</tr>\n<tr>\n<td><code>relationUpdatedAt</code></td>\n<td>string/null</td>\n<td>Timestamp of last relationship update</td>\n</tr>\n<tr>\n<td><code>avatar</code></td>\n<td>string/null</td>\n<td>URL or path to contact's avatar image</td>\n</tr>\n<tr>\n<td><code>nickname</code></td>\n<td>string/null</td>\n<td>Contact's nickname or preferred name</td>\n</tr>\n<tr>\n<td><code>incorrectAllChannels</code></td>\n<td>boolean</td>\n<td>Flag indicating if contact data is incorrect across all channels</td>\n</tr>\n<tr>\n<td><code>allowed</code></td>\n<td>boolean</td>\n<td>Whether the contact is allowed to receive communications</td>\n</tr>\n<tr>\n<td><code>notAllowedReasons</code></td>\n<td>string/null</td>\n<td>Reasons why contact is not allowed (if applicable)</td>\n</tr>\n<tr>\n<td><code>sentCount</code></td>\n<td>integer/null</td>\n<td>Number of messages sent to this contact</td>\n</tr>\n<tr>\n<td><code>userRelations</code></td>\n<td>object/null</td>\n<td>Related user relationships</td>\n</tr>\n<tr>\n<td><code>additionalFields</code></td>\n<td>object/null</td>\n<td>Custom additional fields</td>\n</tr>\n<tr>\n<td><code>groups</code></td>\n<td>array/null</td>\n<td>Groups the contact belongs to</td>\n</tr>\n<tr>\n<td><code>workplaces</code></td>\n<td>array/null</td>\n<td>Contact's workplace information</td>\n</tr>\n<tr>\n<td><code>specialisations</code></td>\n<td>array/null</td>\n<td>Contact's areas of specialization</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": 89684,\n    \"uuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\",\n    \"email\": \"nowyemail900@niepodam.pl\",\n    \"firstName\": \"nowytyst\",\n    \"lastName\": \"test123\",\n    \"externalId\": null,\n    \"businessTitle\": null,\n    \"phone\": null,\n    \"gender\": null,\n    \"pwz\": null,\n    \"academicRank\": null,\n    \"unsubscribedTo\": \"null\",\n    \"updatedAt\": \"1763733254477\",\n    \"relationUpdatedAt\": null,\n    \"avatar\": null,\n    \"nickname\": null,\n    \"incorrectAllChannels\": false,\n    \"allowed\": true,\n    \"notAllowedReasons\": null,\n    \"sentCount\": null,\n    \"userRelations\": null,\n    \"additionalFields\": null,\n    \"groups\": null,\n    \"workplaces\": null,\n    \"specialisations\": null\n}\n</code></pre>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\nconst token = 'your_access_token_here'; // Replace with your access token\nconst contactUuid = 'b97d17a1-eb68-4a49-89bb-69a3b7aca8e5'; // Replace with the contact UUID\n\nconst updateContact = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/contact/${contactUuid}`;\n  \n  const requestBody = {\n    email: 'nowyemail900@niepodam.pl',\n    firstName: 'nowytyst',\n    lastName: 'test123'\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'PUT',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Contact updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating contact:', error);\n    throw error;\n  }\n};\n\n// Execute the function\nupdateContact();\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Invalid request body or missing required fields</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Insufficient permissions to update this contact</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Contact with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>All three fields (<code>email</code>, <code>firstName</code>, <code>lastName</code>) are required in the request body</li>\n<li>The contact UUID in the URL path must match an existing contact in your tenant</li>\n<li>The <code>updatedAt</code> timestamp in the response is automatically updated by the system</li>\n<li>Only the fields provided in the request body will be updated; other fields remain unchanged</li>\n<li>Ensure your access token has the necessary permissions to modify contacts</li>\n</ul>\n","urlObject":{"path":["api","core","contact","b97d17a1-eb68-4a49-89bb-69a3b7aca8e5"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"4f060441-749c-4176-81ad-74b5e49e5297","name":"Update Contact","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"nowyemail900@niepodam.pl\", //required\n  \"firstName\": \"nowytyst\", //required\n  \"lastName\": \"test123\" //required\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/b97d17a1-eb68-4a49-89bb-69a3b7aca8e5"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:54:14 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:54:13 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-2d7f4167ceb795f666345a69757af520' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-2d7f4167ceb795f666345a69757af520' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 89684,\n    \"uuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\",\n    \"email\": \"nowyemail900@niepodam.pl\",\n    \"firstName\": \"nowytyst\",\n    \"lastName\": \"test123\",\n    \"externalId\": null,\n    \"businessTitle\": null,\n    \"phone\": null,\n    \"gender\": null,\n    \"pwz\": null,\n    \"academicRank\": null,\n    \"unsubscribedTo\": \"null\",\n    \"updatedAt\": \"1763733254477\",\n    \"relationUpdatedAt\": null,\n    \"avatar\": null,\n    \"nickname\": null,\n    \"incorrectAllChannels\": false,\n    \"allowed\": true,\n    \"notAllowedReasons\": null,\n    \"sentCount\": null,\n    \"userRelations\": null,\n    \"additionalFields\": null,\n    \"groups\": null,\n    \"workplaces\": null,\n    \"specialisations\": null\n}"}],"_postman_id":"ab066a55-2388-489f-b1f5-7f558fc3a748"},{"name":"Update Contact Data","id":"136ccdd8-a78e-4592-b7d0-d1f20ce1fa6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  // All variables are optional. The same email / phone exists validation is checking only if the variable is not empty\n  \"email\": \"nowyemail900ed@niepodam.pl\",\n  \"phone\": \"123123123\",\n  \"firstName\": \"Woj\",\n  \"lastName\": \"Boj9\",\n  \"ignorePhoneDuplicates\" : \"true\" //default = false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/b97d17a1-eb68-4a49-89bb-69a3b7aca8e5/contact-data","description":"<h1 id=\"update-contact-data\">Update Contact Data</h1>\n<p>Updates the contact information for an existing contact in the Highp platform. This endpoint allows you to modify contact details such as email, phone number, first name, and last name.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>PUT</code></p>\n<p><strong>URL Structure:</strong> <code>https://{tenant_domain}/api/core/contact/{contactUuid}/contact-data</code></p>\n<h3 id=\"path-parameters\">Path 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>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact to update</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-headers\">Request Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {access_token}</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>All fields in the request body are <strong>optional</strong>. You only need to include the fields you want to update.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"string\",\n  \"phone\": \"string\",\n  \"firstName\": \"string\",\n  \"lastName\": \"string\",\n  \"ignorePhoneDuplicates\": \"boolean\"\n}\n</code></pre>\n<h3 id=\"field-descriptions\">Field Descriptions</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>The contact's email address. Must be a valid email format.</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>The contact's phone number.</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>The contact's first name.</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>The contact's last name.</td>\n</tr>\n<tr>\n<td><code>ignorePhoneDuplicates</code></td>\n<td>boolean</td>\n<td>No</td>\n<td><code>false</code></td>\n<td>When set to <code>true</code>, bypasses phone number duplicate validation.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"important-notes\">Important Notes</h2>\n<h3 id=\"validation-rules\">Validation Rules</h3>\n<ul>\n<li><strong>Email/Phone Duplicate Checking:</strong> The API validates that the email and phone number are unique across contacts. This validation only occurs if the field is provided and not empty.</li>\n<li><strong>Duplicate Bypass:</strong> Use <code>ignorePhoneDuplicates: true</code> to skip phone number duplicate validation when necessary.</li>\n<li><strong>Partial Updates:</strong> Since all fields are optional, you can update only specific fields without affecting others.</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns the updated contact object with all contact details.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 89684,\n  \"uuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\",\n  \"email\": \"nowyemail900ed@niepodam.pl\",\n  \"firstName\": \"Woj\",\n  \"lastName\": \"Boj9\",\n  \"externalId\": null,\n  \"businessTitle\": null,\n  \"phone\": \"123123123\",\n  \"gender\": null,\n  \"pwz\": null,\n  \"academicRank\": null,\n  \"unsubscribedTo\": \"null\",\n  \"updatedAt\": \"1763733361798\",\n  \"relationUpdatedAt\": null,\n  \"avatar\": null,\n  \"nickname\": null,\n  \"incorrectAllChannels\": false,\n  \"allowed\": true,\n  \"notAllowedReasons\": null,\n  \"sentCount\": null,\n  \"userRelations\": null,\n  \"additionalFields\": null,\n  \"groups\": null,\n  \"workplaces\": null,\n  \"specialisations\": null\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the contact</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the contact</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Contact's email address</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>Contact's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>Contact's last name</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>string</td>\n<td>Contact's phone number</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string</td>\n<td>Timestamp of last update (Unix timestamp in milliseconds)</td>\n</tr>\n<tr>\n<td><code>allowed</code></td>\n<td>boolean</td>\n<td>Whether the contact is allowed to receive communications</td>\n</tr>\n<tr>\n<td><code>incorrectAllChannels</code></td>\n<td>boolean</td>\n<td>Indicates if contact information is incorrect across all channels</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst updateContactData = async (tenantDomain, contactUuid, accessToken, contactData) =&gt; {\n  const url = `https://${tenantDomain}/api/core/contact/${contactUuid}/contact-data`;\n  \n  const requestBody = {\n    email: contactData.email,\n    phone: contactData.phone,\n    firstName: contactData.firstName,\n    lastName: contactData.lastName,\n    ignorePhoneDuplicates: contactData.ignorePhoneDuplicates || false\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'PUT',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': `Bearer ${accessToken}`\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Contact updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating contact:', error);\n    throw error;\n  }\n};\n\n// Example usage\nconst contactData = {\n  email: \"newemail@example.com\",\n  phone: \"123123123\",\n  firstName: \"John\",\n  lastName: \"Doe\",\n  ignorePhoneDuplicates: true\n};\n\nupdateContactData(\n  'your-tenant.highp.me',\n  'b97d17a1-eb68-4a49-89bb-69a3b7aca8e5',\n  'your_access_token_here',\n  contactData\n);\n</code></pre>\n<h2 id=\"common-use-cases\">Common Use Cases</h2>\n<ol>\n<li><strong>Update Email Only:</strong> Send only the <code>email</code> field to update just the email address</li>\n<li><strong>Update Phone with Duplicate Override:</strong> Use <code>ignorePhoneDuplicates: true</code> when you know the phone number is valid but may exist in the system</li>\n<li><strong>Update Name Information:</strong> Send <code>firstName</code> and <code>lastName</code> to update contact name details</li>\n<li><strong>Bulk Updates:</strong> Use this endpoint in a loop to update multiple contacts programmatically</li>\n</ol>\n","urlObject":{"path":["api","core","contact","b97d17a1-eb68-4a49-89bb-69a3b7aca8e5","contact-data"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"7e916b55-acb6-4a24-a773-eb1bcb13dd0c","name":"Update Contact Data","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  // All variables are optional. The same email / phone exists validation is checking only if the variable is not empty\n  \"email\": \"nowyemail900ed@niepodam.pl\",\n  \"phone\": \"123123123\",\n  \"firstName\": \"Woj\",\n  \"lastName\": \"Boj9\",\n  \"ignorePhoneDuplicates\" : \"true\" //default = false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/b97d17a1-eb68-4a49-89bb-69a3b7aca8e5/contact-data"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:56:01 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:56:00 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-4fd4fcdec50f3dba04a6ba96cf6fa5b5' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-4fd4fcdec50f3dba04a6ba96cf6fa5b5' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 89684,\n    \"uuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\",\n    \"email\": \"nowyemail900ed@niepodam.pl\",\n    \"firstName\": \"Woj\",\n    \"lastName\": \"Boj9\",\n    \"externalId\": null,\n    \"businessTitle\": null,\n    \"phone\": \"123123123\",\n    \"gender\": null,\n    \"pwz\": null,\n    \"academicRank\": null,\n    \"unsubscribedTo\": \"null\",\n    \"updatedAt\": \"1763733361798\",\n    \"relationUpdatedAt\": null,\n    \"avatar\": null,\n    \"nickname\": null,\n    \"incorrectAllChannels\": false,\n    \"allowed\": true,\n    \"notAllowedReasons\": null,\n    \"sentCount\": null,\n    \"userRelations\": null,\n    \"additionalFields\": null,\n    \"groups\": null,\n    \"workplaces\": null,\n    \"specialisations\": null\n}"}],"_postman_id":"136ccdd8-a78e-4592-b7d0-d1f20ce1fa6a"},{"name":"Delete Contact","id":"a7a2877e-5b20-4214-8fbe-59971abcf4f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/contact/d3cb3926-eefd-446e-8bd2-7147ae47bc67","description":"<h1 id=\"delete-contact\">Delete Contact</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint permanently deletes a contact from the Highp platform using the contact's unique identifier (UUID). Once deleted, the contact and all associated data will be removed from the system.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE https://{{tenant_domain}}/api/core/contact/{contactId}\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>token</code> variable should contain your valid API access token.</p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>contactId</code></td>\n<td>UUID</td>\n<td>Yes</td>\n<td>The unique identifier of the contact to delete (e.g., <code>d3cb3926-eefd-446e-8bd2-7147ae47bc67</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {token}</code></td>\n<td>Your API access token for authentication</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>This endpoint does not require a request body.</p>\n<h2 id=\"response-codes\">Response Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Contact successfully deleted. Returns an empty response body.</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid authentication token.</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Authenticated user does not have permission to delete this contact.</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Contact with the specified UUID does not exist.</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>An unexpected error occurred on the server.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The successful deletion returns an empty response body with a <code>Content-Length: 0</code> header.</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n</ul>\n<p><strong>Response Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>(empty)\n</code></pre><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Delete a contact by UUID\nconst deleteContact = async (tenantDomain, contactId, accessToken) =&gt; {\n  const url = `https://${tenantDomain}/api/core/contact/${contactId}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'DELETE',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (response.ok) {\n      console.log(`Contact ${contactId} successfully deleted`);\n      return {\n        success: true,\n        statusCode: response.status,\n        message: 'Contact deleted successfully'\n      };\n    } else {\n      const errorText = await response.text();\n      console.error(`Failed to delete contact: ${response.status} ${response.statusText}`);\n      return {\n        success: false,\n        statusCode: response.status,\n        error: errorText || response.statusText\n      };\n    }\n  } catch (error) {\n    console.error('Error deleting contact:', error);\n    return {\n      success: false,\n      error: error.message\n    };\n  }\n};\n\n// Example usage\nconst tenantDomain = 'testsandbox.highp.me';\nconst contactId = 'd3cb3926-eefd-446e-8bd2-7147ae47bc67';\nconst accessToken = 'your_access_token_here';\n\ndeleteContact(tenantDomain, contactId, accessToken)\n  .then(result =&gt; {\n    if (result.success) {\n      console.log('Contact deletion completed:', result);\n    } else {\n      console.error('Contact deletion failed:', result);\n    }\n  });\n</code></pre>\n<h2 id=\"important-notes\">Important Notes</h2>\n<ul>\n<li><strong>Permanent Action</strong>: This operation is irreversible. Once a contact is deleted, it cannot be recovered.</li>\n<li><strong>UUID Format</strong>: The contact ID must be a valid UUID format (e.g., <code>d3cb3926-eefd-446e-8bd2-7147ae47bc67</code>).</li>\n<li><strong>Authorization</strong>: Ensure your Bearer token has the necessary permissions to delete contacts.</li>\n<li><strong>Empty Response</strong>: A successful deletion returns an empty response body with HTTP 200 status.</li>\n<li><strong>Rate Limiting</strong>: Be mindful of API rate limits when performing bulk delete operations.</li>\n</ul>\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li><code>GET /api/core/contact/{contactId}</code> - Retrieve contact details</li>\n<li><code>PUT /api/core/contact/{contactId}</code> - Update contact information</li>\n<li><code>POST /api/core/contact</code> - Create a new contact</li>\n<li><code>GET /api/core/contact</code> - List all contacts</li>\n</ul>\n","urlObject":{"path":["api","core","contact","d3cb3926-eefd-446e-8bd2-7147ae47bc67"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"33eaf0f8-bb3d-4947-a0e8-4df8cd804fa3","name":"Delete Contact","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/contact/d3cb3926-eefd-446e-8bd2-7147ae47bc67"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:56:36 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:56:35 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9a4e90a677f0c5ff6e645c7b08a4c8b1' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9a4e90a677f0c5ff6e645c7b08a4c8b1' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"a7a2877e-5b20-4214-8fbe-59971abcf4f6"},{"name":"Unsubscribe","id":"a446e1b4-6655-4791-af14-7f6b54925b2e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"contactUuid\": \"c1cfbbc0-aca0-46a8-98e8-280c88107ad3\",\n  \"dateTime\": \"2025-11-11T00:00:00\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/optout","description":"<h1 id=\"unsubscribe-contact\">Unsubscribe Contact</h1>\n<p>This endpoint allows you to unsubscribe (opt-out) a contact from communications. When a contact is unsubscribed, they will no longer receive messages or notifications from your tenant.</p>\n<h2 id=\"request-details\">Request Details</h2>\n<h3 id=\"http-method\">HTTP Method</h3>\n<p><code>POST</code></p>\n<h3 id=\"endpoint-url\">Endpoint URL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{{tenant_domain}}/api/core/contact/optout\n</code></pre><h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires authentication using a bearer token. The token should be passed in the <code>Authorization</code> header.</p>\n<p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>{{token}}</code> - Your authentication token</li>\n<li><code>{{tenant_domain}}</code> - Your tenant's domain (e.g., <code>yourtenant.highp.me</code>)</li>\n</ul>\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>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n<td>Authentication token for API access</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n<td>Indicates JSON request body</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-schema\">Request Body Schema</h3>\n<p>The request body must be a JSON object with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the contact to unsubscribe</td>\n</tr>\n<tr>\n<td><code>dateTime</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The date and time of the opt-out in ISO 8601 format (e.g., <code>2025-11-11T00:00:00</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"contactUuid\": \"c1cfbbc0-aca0-46a8-98e8-280c88107ad3\",\n  \"dateTime\": \"2025-11-11T00:00:00\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\n// Configuration\nconst tenantDomain = 'yourtenant.highp.me'; // Replace with your tenant domain\nconst token = 'your-auth-token-here'; // Replace with your authentication token\n\n// Request payload\nconst requestBody = {\n  contactUuid: 'c1cfbbc0-aca0-46a8-98e8-280c88107ad3',\n  dateTime: '2025-11-11T00:00:00'\n};\n\n// Make the API call\nasync function unsubscribeContact() {\n  try {\n    const response = await fetch(`https://${tenantDomain}/api/core/contact/optout`, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Contact unsubscribed successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error unsubscribing contact:', error);\n    throw error;\n  }\n}\n\n// Execute the function\nunsubscribeContact();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<p>The endpoint returns a JSON response confirming the opt-out operation.</p>\n<p><strong>Success Response (200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"Contact successfully unsubscribed\"\n}\n</code></pre>\n<h2 id=\"important-notes\">Important Notes</h2>\n<ol>\n<li><p><strong>Authentication Required</strong>: You must provide a valid authentication token in the <code>Authorization</code> header. Ensure your token has the necessary permissions to modify contact preferences.</p>\n</li>\n<li><p><strong>UUID Format</strong>: The <code>contactUuid</code> must be a valid UUID v4 format. Invalid UUIDs will result in an error response.</p>\n</li>\n<li><p><strong>DateTime Format</strong>: The <code>dateTime</code> field should follow ISO 8601 format (<code>YYYY-MM-DDTHH:mm:ss</code>). This timestamp records when the opt-out occurred.</p>\n</li>\n<li><p><strong>Irreversible Action</strong>: Unsubscribing a contact is a significant action. Ensure you have proper consent and business logic before calling this endpoint.</p>\n</li>\n<li><p><strong>Environment Variables</strong>: This request uses Postman variables <code>{{token}}</code> and <code>{{tenant_domain}}</code>. Make sure these are configured in your active environment before sending the request.</p>\n</li>\n</ol>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid request body or missing required fields</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Contact UUID does not exist</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"related-endpoints\">Related Endpoints</h2>\n<ul>\n<li>To resubscribe a contact, use the appropriate opt-in endpoint</li>\n<li>To check a contact's subscription status, use the contact details endpoint</li>\n</ul>\n","urlObject":{"path":["api","core","contact","optout"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"a6668041-83db-4e73-8aa7-2a08b742df7a","name":"Unsubscribe","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"contactUuid\": \"c1cfbbc0-aca0-46a8-98e8-280c88107ad3\",\n  \"dateTime\": \"2025-11-11T00:00:00\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/optout"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 13:58:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 13:58:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-4029b7a4e96ac17fcddf399fab5d79c8' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-4029b7a4e96ac17fcddf399fab5d79c8' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"a446e1b4-6655-4791-af14-7f6b54925b2e"},{"name":"Verify Relation Exists","id":"0033ffb7-edb2-46f4-b773-d77a44176357","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"contactUuid\": \"c1cfbbc0-aca0-46a8-98e8-280c88107ad3\",\n  \"repUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/verify-relation","description":"<h1 id=\"verify-relation-exists\">Verify Relation Exists</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint verifies whether a relationship exists between a specific contact and a representative within the Highp platform. It returns a boolean value indicating the existence of the relation.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/contact/verify-relation</code></li>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"variables\">Variables</h2>\n<p>This endpoint uses the following Postman variables:</p>\n<ul>\n<li><code>{{tenant_domain}}</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>{{token}}</code> - Your authentication bearer token</li>\n</ul>\n<h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer {{token}}</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-parameters\">Request Body Parameters</h2>\n<p>The request body must be a JSON object with the following properties:</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>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the contact whose relation you want to verify</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the representative to check the relation against</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-example\">Request Body Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"contactUuid\": \"c1cfbbc0-aca0-46a8-98e8-280c88107ad3\",\n  \"repUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\"\n}\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a simple boolean value indicating whether the relation exists.</p>\n<p><strong>Response Type:</strong> <code>boolean</code></p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"response-examples\">Response Examples</h3>\n<h4 id=\"relation-exists\">Relation Exists</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">true\n</code></pre>\n<h4 id=\"relation-does-not-exist\">Relation Does Not Exist</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">false\n</code></pre>\n<h3 id=\"response-model\">Response Model</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">type VerifyRelationResponse = boolean;\n</code></pre>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst verifyRelation = async (contactUuid, repUuid) =&gt; {\n  const url = 'https://{{tenant_domain}}/api/core/contact/verify-relation';\n  const token = '{{token}}';\n  \n  const requestBody = {\n    contactUuid: contactUuid,\n    repUuid: repUuid\n  };\n  \n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const relationExists = await response.json();\n    console.log('Relation exists:', relationExists);\n    return relationExists;\n    \n  } catch (error) {\n    console.error('Error verifying relation:', error);\n    throw error;\n  }\n};\n\n// Usage example\nverifyRelation(\n  'c1cfbbc0-aca0-46a8-98e8-280c88107ad3',\n  '0bbb266d-7c15-4fca-882b-225c31ace8ca'\n).then(exists =&gt; {\n  if (exists) {\n    console.log('The contact is related to the representative');\n  } else {\n    console.log('No relation found between contact and representative');\n  }\n});\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Validation:</strong> Check if a contact is assigned to a specific representative before performing operations</li>\n<li><strong>Access Control:</strong> Verify relationship before granting access to contact information</li>\n<li><strong>Data Integrity:</strong> Ensure relationships exist before creating dependent records</li>\n<li><strong>UI Logic:</strong> Conditionally display features based on contact-representative relationships</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Both UUIDs must be valid and exist in the system</li>\n<li>The endpoint returns <code>true</code> if a relation exists, <code>false</code> otherwise</li>\n<li>Authentication is required via Bearer token</li>\n<li>The response is always a 200 OK status with a boolean body, regardless of whether the relation exists</li>\n</ul>\n","urlObject":{"path":["api","core","contact","verify-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"36658cdd-f27d-46d4-ab31-daddca894477","name":"false","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"contactUuid\": \"c1cfbbc0-aca0-46a8-98e8-280c88107ad3\",\n    \"repUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\"\n}","options":{"raw":{"language":"json"}}},"url":"https://{{tenant_domain}}/api/core/contact/verify-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Date","value":"Fri, 21 Nov 2025 14:16:19 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"Fri, 21 Nov 2025 14:16:18 GMT"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-ae1ab4a9f75a9f5c62185a89f4bbddd5' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-ae1ab4a9f75a9f5c62185a89f4bbddd5' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"false"},{"id":"00881795-b808-4937-8761-1286fe4f687e","name":"false","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"contactUuid\": \"c1cfbbc0-aca0-46a8-98e8-280c88107ad3\",\n  \"repUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/verify-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 14:16:19 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 14:16:18 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-ae1ab4a9f75a9f5c62185a89f4bbddd5' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-ae1ab4a9f75a9f5c62185a89f4bbddd5' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"true"}],"_postman_id":"0033ffb7-edb2-46f4-b773-d77a44176357"},{"name":"Replace Relations","id":"0208f057-357f-49fd-b6ab-d9fe1fd8e6b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"currentRepEmail\": \"wb@niepodam.pl\",\n  \"newRepEmail\": \"repboj2@niepodam.pl\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/replace-relations","description":"<h1 id=\"replace-contact-relations\">Replace Contact Relations</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint allows you to replace all contact relations associated with a current representative email address with a new representative email address. This is useful when reassigning contacts from one representative to another, such as during employee transitions or territory reassignments.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/contact/replace-relations</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be a JSON object with the following properties:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"currentRepEmail\": \"string\",\n  \"newRepEmail\": \"string\"\n}\n</code></pre>\n<h3 id=\"parameters\">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>currentRepEmail</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The email address of the current representative whose contact relations will be replaced</td>\n</tr>\n<tr>\n<td><code>newRepEmail</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The email address of the new representative who will take over the contact relations</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"currentRepEmail\": \"wb@niepodam.pl\",\n  \"newRepEmail\": \"repboj2@niepodam.pl\"\n}\n</code></pre>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst replaceContactRelations = async () =&gt; {\n  const url = 'https://{{tenant_domain}}/api/core/contact/replace-relations';\n  \n  const requestBody = {\n    currentRepEmail: 'wb@niepodam.pl',\n    newRepEmail: 'repboj2@niepodam.pl'\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': 'Bearer {{token}}',\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (response.ok) {\n      console.log('Contact relations replaced successfully');\n      console.log('Status:', response.status, response.statusText);\n    } else {\n      console.error('Error:', response.status, response.statusText);\n      const errorData = await response.text();\n      console.error('Error details:', errorData);\n    }\n  } catch (error) {\n    console.error('Request failed:', error);\n  }\n};\n\nreplaceContactRelations();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the operation is successful, the endpoint returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n</ul>\n<h3 id=\"response-model\">Response Model</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": 200,\n  \"statusText\": \"OK\",\n  \"body\": null\n}\n</code></pre>\n<p>The empty response indicates that all contact relations have been successfully transferred from the current representative to the new representative.</p>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Ensure both email addresses are valid and exist in the system</li>\n<li>This operation will affect all contacts associated with the <code>currentRepEmail</code></li>\n<li>The operation is atomic - either all relations are replaced or none are</li>\n<li>Consider the impact on existing workflows and campaigns before executing this operation</li>\n</ul>\n","urlObject":{"path":["api","core","contact","replace-relations"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"befd286f-db52-4256-8fc0-b4b2341ee0b1","name":"Replace Relations","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"currentRepEmail\": \"wb@niepodam.pl\",\n  \"newRepEmail\": \"repboj2@niepodam.pl\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/replace-relations"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 14:21:13 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 14:21:12 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-82106cd50d8da2a639e6ee15391873ed' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-82106cd50d8da2a639e6ee15391873ed' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"0208f057-357f-49fd-b6ab-d9fe1fd8e6b6"},{"name":"Add Relation To Rep","id":"46990e4d-c951-4482-8dc3-96987af0c37c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"contactUuid\": \"36019528-f8a6-4a74-86f0-0a7e7eb58718\", //required\n    \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/add-relation","description":"<h2 id=\"add-relation-between-contact-and-representative\">Add Relation Between Contact and Representative</h2>\n<p>This endpoint creates a relationship between a contact and a representative (rep) in the Highp platform. This is useful for assigning contacts to specific representatives for management and tracking purposes.</p>\n<h3 id=\"endpoint-details\">Endpoint Details</h3>\n<ul>\n<li><strong>URL</strong>: <code>https://{{tenant_domain}}/api/core/contact/add-relation</code></li>\n<li><strong>Method</strong>: <code>POST</code></li>\n<li><strong>Authentication</strong>: Bearer Token (required)</li>\n</ul>\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>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer {{token}}</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-parameters\">Request Body Parameters</h3>\n<p>The request body must be a JSON object with the following properties:</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>contactUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the contact to be associated with the representative</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the representative to be associated with the contact</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"contactUuid\": \"36019528-f8a6-4a74-86f0-0a7e7eb58718\",\n    \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\"\n}\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<h4 id=\"success-response-200-ok\">Success Response (200 OK)</h4>\n<p>When the relation is successfully created, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code</strong>: <code>200 OK</code></p>\n<p><strong>Response Body</strong>: Empty (Content-Length: 0)</p>\n<p><strong>Response Headers</strong>:</p>\n<ul>\n<li><code>Content-Length</code>: 0</li>\n<li><code>Cache-Control</code>: no-cache</li>\n<li><code>X-Content-Type-Options</code>: nosniff</li>\n<li><code>X-Frame-Options</code>: DENY</li>\n</ul>\n<h3 id=\"code-example-nodejs\">Code Example (Node.js)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst addContactRelation = async (tenantDomain, token, contactUuid, repUuid) =&gt; {\n  const url = `https://${tenantDomain}/api/core/contact/add-relation`;\n  \n  const requestBody = {\n    contactUuid: contactUuid,\n    repUuid: repUuid\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (response.ok) {\n      console.log('Relation added successfully');\n      return { success: true, status: response.status };\n    } else {\n      const errorText = await response.text();\n      console.error('Failed to add relation:', response.status, errorText);\n      return { success: false, status: response.status, error: errorText };\n    }\n  } catch (error) {\n    console.error('Error adding relation:', error);\n    throw error;\n  }\n};\n\n// Usage example\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your-access-token';\nconst contactUuid = '36019528-f8a6-4a74-86f0-0a7e7eb58718';\nconst repUuid = 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea';\n\naddContactRelation(tenantDomain, token, contactUuid, repUuid)\n  .then(result =&gt; console.log('Result:', result))\n  .catch(error =&gt; console.error('Error:', error));\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>Both <code>contactUuid</code> and <code>repUuid</code> must be valid UUIDs that exist in your Highp tenant</li>\n<li>The endpoint returns an empty response body on success, so check the HTTP status code to confirm the operation completed successfully</li>\n<li>Ensure your Bearer token has the necessary permissions to create contact-representative relations</li>\n<li>The relation is idempotent - calling this endpoint multiple times with the same parameters will not create duplicate relations</li>\n</ul>\n","urlObject":{"path":["api","core","contact","add-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"6f9ddf5a-5102-41cd-95f4-4dba73418c10","name":"Add Relation To Rep","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n    \"contactUuid\": \"36019528-f8a6-4a74-86f0-0a7e7eb58718\", //required\n    \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/add-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 14:22:50 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 14:22:49 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-52ff2f6f21246a903035185240e43e96' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-52ff2f6f21246a903035185240e43e96' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"46990e4d-c951-4482-8dc3-96987af0c37c"},{"name":"Add Relations To Reps","id":"cb091e63-4810-47c3-aca5-0315c2eedde1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"[\n    {\n        \"contactUuid\": \"85692d58-aa25-4bfc-baec-970b84672dfa\", //required\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n    },\n    {\n        \"contactUuid\": \"f20fe56e-b4c1-469a-a3a6-367cdb030770\", //required\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n    }\n]","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/add-relations","description":"<h1 id=\"add-relations-to-reps\">Add Relations To Reps</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates relationships between contacts and representatives (reps) in the Highp platform. It allows you to associate one or more contacts with specific reps in a single API call, enabling efficient bulk relationship management.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/contact/add-relations</code></p>\n<p><strong>URL Parameters:</strong></p>\n<ul>\n<li><code>{{tenant_domain}}</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>{{token}}</code> variable should contain your valid API access token.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be a JSON array containing one or more relation objects. Each object defines a relationship between a contact and a rep.</p>\n<h3 id=\"schema\">Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"contactUuid\": \"string\",\n    \"repUuid\": \"string\"\n  }\n]\n</code></pre>\n<h3 id=\"field-descriptions\">Field Descriptions</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the contact to be associated with a rep</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the representative to be associated with the contact</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"contactUuid\": \"85692d58-aa25-4bfc-baec-970b84672dfa\",\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\"\n    },\n    {\n        \"contactUuid\": \"f20fe56e-b4c1-469a-a3a6-367cdb030770\",\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\"\n    }\n]\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response\">Success Response</h3>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p>A successful request returns an HTTP 200 status code with an empty response body, indicating that the relationships have been created successfully.</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your-access-token';\n\nconst relations = [\n    {\n        contactUuid: '85692d58-aa25-4bfc-baec-970b84672dfa',\n        repUuid: 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea'\n    },\n    {\n        contactUuid: 'f20fe56e-b4c1-469a-a3a6-367cdb030770',\n        repUuid: 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea'\n    }\n];\n\nasync function addRelationsToReps() {\n    try {\n        const response = await fetch(\n            `https://${tenantDomain}/api/core/contact/add-relations`,\n            {\n                method: 'POST',\n                headers: {\n                    'Authorization': `Bearer ${token}`,\n                    'Content-Type': 'application/json'\n                },\n                body: JSON.stringify(relations)\n            }\n        );\n\n        if (response.ok) {\n            console.log('Relations added successfully');\n            console.log('Status:', response.status);\n        } else {\n            console.error('Error:', response.status, response.statusText);\n        }\n    } catch (error) {\n        console.error('Request failed:', error);\n    }\n}\n\naddRelationsToReps();\n</code></pre>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li><strong>Bulk Operations:</strong> You can add multiple contact-rep relationships in a single request by including multiple objects in the array</li>\n<li><strong>UUID Format:</strong> Both <code>contactUuid</code> and <code>repUuid</code> must be valid UUIDs in the format <code>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</code></li>\n<li><strong>Idempotency:</strong> If a relationship already exists, the API behavior should be verified with your implementation</li>\n<li><strong>Multiple Reps:</strong> A single contact can be associated with multiple reps by including multiple entries with the same <code>contactUuid</code> but different <code>repUuid</code> values</li>\n<li><strong>Authentication:</strong> Ensure your bearer token has the necessary permissions to create contact-rep relationships</li>\n<li><strong>Empty Response:</strong> A successful operation returns no response body, only the HTTP 200 status code</li>\n</ul>\n<h2 id=\"error-handling\">Error Handling</h2>\n<p>While the example shows a successful response, typical error scenarios may include:</p>\n<ul>\n<li><strong>401 Unauthorized:</strong> Invalid or expired authentication token</li>\n<li><strong>403 Forbidden:</strong> Insufficient permissions to create relationships</li>\n<li><strong>400 Bad Request:</strong> Invalid UUID format or missing required fields</li>\n<li><strong>404 Not Found:</strong> Contact or rep UUID does not exist</li>\n<li><strong>500 Internal Server Error:</strong> Server-side error processing the request</li>\n</ul>\n<p>Always check the response status code and handle errors appropriately in your implementation.</p>\n","urlObject":{"path":["api","core","contact","add-relations"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"57c85441-e54a-4a92-a06a-a75928280540","name":"Add Relations To Reps","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"[\n    {\n        \"contactUuid\": \"85692d58-aa25-4bfc-baec-970b84672dfa\", //required\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n    },\n    {\n        \"contactUuid\": \"f20fe56e-b4c1-469a-a3a6-367cdb030770\", //required\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n    }\n]","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/add-relations"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 14:24:39 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 14:24:38 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-3c3e950ef37164905db808fc0bdb2d43' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-3c3e950ef37164905db808fc0bdb2d43' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"cb091e63-4810-47c3-aca5-0315c2eedde1"},{"name":"Delete Relation To Rep","id":"991d529b-78fd-436a-bc5f-30151bf6331b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"contactUuid\": \"36019528-f8a6-4a74-86f0-0a7e7eb58718\", //required\n    \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/delete-relation","description":"<h1 id=\"delete-relation-to-rep\">Delete Relation To Rep</h1>\n<h2 id=\"description\">Description</h2>\n<p>This endpoint removes the relationship between a contact and a representative (rep) in the Highp system. When a contact is associated with a representative for tracking or assignment purposes, this endpoint allows you to delete that association.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST https://{{tenant_domain}}/api/core/contact/delete-relation\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be sent as JSON with the following required fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the contact</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the representative</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-example\">Request Body Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"contactUuid\": \"36019528-f8a6-4a74-86f0-0a7e7eb58718\",\n    \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\"\n}\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the relation is successfully deleted, the API returns an empty response body with HTTP status code 200.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst deleteContactRelation = async (tenantDomain, token, contactUuid, repUuid) =&gt; {\n  const url = `https://${tenantDomain}/api/core/contact/delete-relation`;\n  \n  const requestBody = {\n    contactUuid: contactUuid,\n    repUuid: repUuid\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (response.ok) {\n      console.log('Relation deleted successfully');\n      return { success: true, status: response.status };\n    } else {\n      console.error('Failed to delete relation:', response.status);\n      return { success: false, status: response.status };\n    }\n  } catch (error) {\n    console.error('Error deleting relation:', error);\n    throw error;\n  }\n};\n\n// Usage example\ndeleteContactRelation(\n  'your-tenant.highp.me',\n  'your-access-token',\n  '36019528-f8a6-4a74-86f0-0a7e7eb58718',\n  'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea'\n);\n</code></pre>\n<h2 id=\"error-handling\">Error Handling</h2>\n<p>While the successful response is documented above, you should handle potential error scenarios:</p>\n<ul>\n<li><strong>401 Unauthorized</strong>: Invalid or missing authentication token</li>\n<li><strong>403 Forbidden</strong>: Insufficient permissions to delete the relation</li>\n<li><strong>404 Not Found</strong>: Contact or representative UUID not found</li>\n<li><strong>500 Internal Server Error</strong>: Server-side error</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Both <code>contactUuid</code> and <code>repUuid</code> are required fields</li>\n<li>The UUIDs must be valid and exist in the system</li>\n<li>This operation is idempotent - calling it multiple times with the same parameters will not cause errors</li>\n<li>Ensure you have the necessary permissions to modify contact-representative relationships</li>\n</ul>\n","urlObject":{"path":["api","core","contact","delete-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"f21c41f5-f921-49da-a6e7-e8c5033ef844","name":"Delete Relation To Rep","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n    \"contactUuid\": \"36019528-f8a6-4a74-86f0-0a7e7eb58718\", //required\n    \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/delete-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 21 Nov 2025 14:25:12 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 21 Nov 2025 14:25:11 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-abf279cc89c6aa9d314138e301fe1f39' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-abf279cc89c6aa9d314138e301fe1f39' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"991d529b-78fd-436a-bc5f-30151bf6331b"},{"name":"Delete Relations To Reps","id":"7dc72581-0cc3-42d0-8c22-d2539a02f8f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"[\n    {\n        \"contactUuid\": \"85692d58-aa25-4bfc-baec-970b84672dfa\", //required\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n    },\n    {\n        \"contactUuid\": \"f20fe56e-b4c1-469a-a3a6-367cdb030770\", //required\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n    }\n]","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/delete-relations","description":"<h1 id=\"delete-relations-between-contacts-and-reps\">Delete Relations Between Contacts and Reps</h1>\n<h2 id=\"description\">Description</h2>\n<p>This endpoint deletes the relationships between contacts and representatives (reps) in the Highp platform. You can delete multiple contact-rep relationships in a single request by providing an array of contact-rep pairs.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>DELETE</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/contact/delete-relations</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be a JSON array containing objects with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"contactUuid\": \"85692d58-aa25-4bfc-baec-970b84672dfa\",\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\"\n    },\n    {\n        \"contactUuid\": \"f20fe56e-b4c1-469a-a3a6-367cdb030770\",\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\"\n    }\n]\n</code></pre>\n<h3 id=\"request-body-parameters\">Request 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>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the representative</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst deleteContactRelations = async () =&gt; {\n  const url = 'https://your-tenant-domain.highp.me/api/core/contact/delete-relations';\n  const token = 'your_bearer_token_here';\n  \n  const requestBody = [\n    {\n      contactUuid: '85692d58-aa25-4bfc-baec-970b84672dfa',\n      repUuid: 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea'\n    },\n    {\n      contactUuid: 'f20fe56e-b4c1-469a-a3a6-367cdb030770',\n      repUuid: 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea'\n    }\n  ];\n\n  try {\n    const response = await fetch(url, {\n      method: 'DELETE',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (response.ok) {\n      console.log('Relations deleted successfully');\n      console.log('Status:', response.status); // 200\n    } else {\n      console.error('Error:', response.status, response.statusText);\n    }\n  } catch (error) {\n    console.error('Request failed:', error);\n  }\n};\n\ndeleteContactRelations();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the relations are successfully deleted, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Length: 0\nCache-Control: no-cache\nX-Content-Type-Options: nosniff\nX-Frame-Options: DENY\nX-XSS-Protection: 1; mode=block\n</code></pre><h3 id=\"notes\">Notes</h3>\n<ul>\n<li>The endpoint returns an empty response body on success</li>\n<li>Multiple contact-rep relationships can be deleted in a single request</li>\n<li>Both <code>contactUuid</code> and <code>repUuid</code> are required for each relationship</li>\n<li>Authentication via Bearer token is mandatory</li>\n</ul>\n","urlObject":{"path":["api","core","contact","delete-relations"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"cae4290b-50df-4957-adfb-6bf1f91bdedf","name":"Delete Relations To Reps","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"[\n    {\n        \"contactUuid\": \"85692d58-aa25-4bfc-baec-970b84672dfa\", //required\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n    },\n    {\n        \"contactUuid\": \"f20fe56e-b4c1-469a-a3a6-367cdb030770\", //required\n        \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\" //required\n    }\n]","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/delete-relations"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:39:07 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:39:06 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-02811ce3418edb899452270082b63140' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-02811ce3418edb899452270082b63140' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"7dc72581-0cc3-42d0-8c22-d2539a02f8f3"},{"name":"Update Profile Info (Doc role)","id":"b95fe575-d4a9-4887-b6f5-d48aca78b8a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"pwz\": null,\n  \"avatarMediaAssetId\": 1914,\n  \"avatarMediaAssetUuid\": \"123123-123-123\",\n  \"nickname\": \"Wojciech9000\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/contact/:userUuid/public-info","description":"<h1 id=\"update-contact-public-information\">Update Contact Public Information</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint updates the public information for a specific contact/user in the system. It allows modification of personal details including professional medical license, avatar settings, and nickname. The endpoint supports partial updates - you only need to include the fields you want to modify.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p><strong>Required:</strong> Bearer Token</p>\n<p>This endpoint requires authentication using a bearer token. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT https://{{tenant_domain}}/api/core/contact/{{userUuid}}/public-info\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>userUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact/user to update</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body should be a JSON object. All fields are optional - include only the fields you want to update:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pwz</code></td>\n<td>string/null</td>\n<td>No</td>\n<td>Professional medical license number (PWZ - Polish medical license). Can be set to null to clear the value</td>\n</tr>\n<tr>\n<td><code>avatarMediaAssetId</code></td>\n<td>number</td>\n<td>No</td>\n<td>ID of the media asset to use as avatar</td>\n</tr>\n<tr>\n<td><code>avatarMediaAssetUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>UUID of the media asset to use as avatar</td>\n</tr>\n<tr>\n<td><code>nickname</code></td>\n<td>string</td>\n<td>No</td>\n<td>User's nickname/display name</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-request-body\">Example Request Body</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"pwz\": null,\n  \"avatarMediaAssetId\": 1914,\n  \"avatarMediaAssetUuid\": \"123123-123-123\",\n  \"nickname\": \"Wojciech9000\"\n}\n</code></pre>\n<h2 id=\"response-examples\">Response Examples</h2>\n<h3 id=\"success-response\">SUCCESS Response</h3>\n<p>The endpoint returns a successful response when the contact information is updated successfully.</p>\n<h3 id=\"coremedia_asset_not_found-error\">CORE.MEDIA_ASSET_NOT_FOUND Error</h3>\n<p>This error occurs when the specified <code>avatarMediaAssetId</code> or <code>avatarMediaAssetUuid</code> does not exist in the system.</p>\n<h2 id=\"error-handling\">Error Handling</h2>\n<ul>\n<li>Ensure the <code>userUuid</code> path parameter corresponds to an existing contact</li>\n<li>Verify that the <code>avatarMediaAssetId</code> and <code>avatarMediaAssetUuid</code> reference valid media assets in the system</li>\n<li>The <code>pwz</code> field accepts either a string value or null to clear the existing value</li>\n<li>All fields are optional, allowing for partial updates</li>\n</ul>\n","urlObject":{"path":["api","core","contact",":userUuid","public-info"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{userUuid}}","key":"userUuid"}]}},"response":[{"id":"9fb021db-cf8b-4ac3-9b02-388f6e271fad","name":"SUCCESS","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"pwz\": null,\n  \"avatarMediaAssetId\": 1914,\n  \"avatarMediaAssetUuid\": \"123123-123-123\",\n  \"nickname\": \"Wojciech9000\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/contact/:userUuid/public-info","host":["testsandbox.highp.me"],"path":["api","core","contact",":userUuid","public-info"],"variable":[{"key":"userUuid","value":"{{userUuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Thu, 27 Nov 2025 14:10:19 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Thu, 27 Nov 2025 14:10:18 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-b6877d8fb748afff052de60e5b44b93b' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-b6877d8fb748afff052de60e5b44b93b' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 28000,\n    \"uuid\": \"4bfa126a-93a0-4666-b75c-0802b6dbe060\",\n    \"email\": \"kontakt1@niepodam.pl\",\n    \"firstName\": \"Kontakt 111\",\n    \"lastName\": \"1 t111\",\n    \"externalId\": null,\n    \"businessTitle\": \"ghjkkk\",\n    \"phone\": \"+41797259811\",\n    \"gender\": true,\n    \"pwz\": 96,\n    \"academicRank\": null,\n    \"unsubscribedTo\": \"null\",\n    \"updatedAt\": \"1764252619014\",\n    \"relationUpdatedAt\": null,\n    \"avatar\": \"43f6726c-9ef0-4f52-80c3-3077d8f4a10b.jpg\",\n    \"nickname\": \"Wojciech9000\",\n    \"incorrectAllChannels\": false,\n    \"allowed\": true,\n    \"notAllowedReasons\": null,\n    \"sentCount\": null,\n    \"userRelations\": null,\n    \"additionalFields\": null,\n    \"groups\": null,\n    \"workplaces\": null,\n    \"specialisations\": null\n}"},{"id":"fa854e78-cfed-4f5a-81db-088e4ac69673","name":"CORE.MEDIA_ASSET_NOT_FOUND","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"pwz\": null,\n  \"avatarMediaAssetId\": 1914,\n  \"avatarMediaAssetUuid\": \"123123-123-123\",\n  \"nickname\": \"Wojciech9000\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/contact/:userUuid/public-info","host":["testsandbox.highp.me"],"path":["api","core","contact",":userUuid","public-info"],"variable":[{"key":"userUuid","value":"{{userUuid}}"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Server","value":"nginx/1.18.0 (Ubuntu)"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Thu, 27 Nov 2025 18:02:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Media asset not found\",\n    \"errorType\": \"CORE.MEDIA_ASSET_NOT_FOUND\",\n    \"relatedObjectId\": \"123123-123-123\"\n}"}],"_postman_id":"b95fe575-d4a9-4887-b6f5-d48aca78b8a7"}],"id":"c1934bbf-72ab-4316-ab7c-19fbc4ff98e8","_postman_id":"c1934bbf-72ab-4316-ab7c-19fbc4ff98e8","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Custom Field","item":[{"name":"Definition","item":[{"name":"Get All Definitions","id":"2d2c31ac-cab6-475f-a02d-dabe2438aeba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/custom-field/definition/all","description":"<h1 id=\"get-all-custom-field-definitions\">Get All Custom Field Definitions</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves all custom field definitions configured in your Highp tenant. Custom fields allow you to extend the standard data model with additional fields tailored to your business needs. These fields can be of various types including text, checkbox, single select, multiple select, and textarea.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>GET</code></li>\n<li><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/custom-field/definition/all</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a Bearer token. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-parameters\">Request Parameters</h2>\n<p>This endpoint does not require any query parameters or request body.</p>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns an array of custom field definition objects.</p>\n<h4 id=\"response-structure\">Response Structure</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": integer,\n    \"name\": \"string\",\n    \"label\": \"string\",\n    \"type\": \"string\",\n    \"origin\": \"string\",\n    \"fieldValues\": [\"string\"],\n    \"isActive\": boolean\n  }\n]\n</code></pre>\n<h4 id=\"field-descriptions\">Field Descriptions</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Unique identifier for the custom field definition</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Internal name of the custom field (used in API calls)</td>\n</tr>\n<tr>\n<td><code>label</code></td>\n<td>string</td>\n<td>Display label for the custom field (shown in UI)</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Field type: <code>text</code>, <code>checkbox</code>, <code>singleSelect</code>, <code>multipleSelect</code>, <code>textarea</code></td>\n</tr>\n<tr>\n<td><code>origin</code></td>\n<td>string</td>\n<td>Origin of the field (typically <code>custom</code>)</td>\n</tr>\n<tr>\n<td><code>fieldValues</code></td>\n<td>array</td>\n<td>Array of predefined values (for select fields) or empty array</td>\n</tr>\n<tr>\n<td><code>isActive</code></td>\n<td>boolean</td>\n<td>Whether the field is currently active</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": 28,\n    \"name\": \"Zgoda_1_przy_tworzeniu_kontaktu\",\n    \"label\": \"Zgoda 1 przy tworzeniu kontaktu\",\n    \"type\": \"checkbox\",\n    \"origin\": \"custom\",\n    \"fieldValues\": [],\n    \"isActive\": true\n  },\n  {\n    \"id\": 31,\n    \"name\": \"single_select\",\n    \"label\": \"single_select\",\n    \"type\": \"singleSelect\",\n    \"origin\": \"custom\",\n    \"fieldValues\": [\n      \"single_select_1\",\n      \"ab\",\n      \"single_select_2\",\n      \"ba\"\n    ],\n    \"isActive\": true\n  },\n  {\n    \"id\": 42,\n    \"name\": \"profession\",\n    \"label\": \"Profesja\",\n    \"type\": \"text\",\n    \"origin\": \"custom\",\n    \"fieldValues\": [],\n    \"isActive\": true\n  }\n]\n</code></pre>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your_bearer_token_here';\n\nasync function getAllCustomFieldDefinitions() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/custom-field/definition/all`,\n      {\n        method: 'GET',\n        headers: {\n          'Authorization': `Bearer ${token}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Custom Field Definitions:', data);\n    return data;\n  } catch (error) {\n    console.error('Error fetching custom field definitions:', error);\n    throw error;\n  }\n}\n\n// Execute the function\ngetAllCustomFieldDefinitions();\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Form Building:</strong> Retrieve available custom fields to dynamically build forms</li>\n<li><strong>Data Validation:</strong> Get field types and allowed values for validation</li>\n<li><strong>Integration Setup:</strong> Understand the custom data model before integrating with external systems</li>\n<li><strong>Field Management:</strong> List all custom fields for administrative purposes</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The response includes both active and inactive fields (check <code>isActive</code> property)</li>\n<li>For <code>singleSelect</code> and <code>multipleSelect</code> types, the <code>fieldValues</code> array contains the available options</li>\n<li>For <code>checkbox</code>, <code>text</code>, and <code>textarea</code> types, the <code>fieldValues</code> array is typically empty</li>\n<li>Field names are used when setting custom field values via API, while labels are for display purposes</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","core","custom-field","definition","all"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"e3503525-4740-4001-9eff-77aa766a307f","name":"Get All Definitions","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/custom-field/definition/all"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 09:26:18 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 09:26:17 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-ed13ae5834ff2423a45797b39dbd7752' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-ed13ae5834ff2423a45797b39dbd7752' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 28,\n        \"name\": \"Zgoda_1_przy_tworzeniu_kontaktu\",\n        \"label\": \"Zgoda 1 przy tworzeniu kontaktu\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 29,\n        \"name\": \"Zgoda_2_zaznaczona_automatorem\",\n        \"label\": \"Zgoda 2 zaznaczona automatorem\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 31,\n        \"name\": \"single_select\",\n        \"label\": \"single_select\",\n        \"type\": \"singleSelect\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [\n            \"single_select_1\",\n            \"ab\",\n            \"single_select_2\",\n            \"ba\"\n        ],\n        \"isActive\": true\n    },\n    {\n        \"id\": 32,\n        \"name\": \"chceckbox_test\",\n        \"label\": \"checkbox_test\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 30,\n        \"name\": \"multiple_test\",\n        \"label\": \"multiple_test\",\n        \"type\": \"multipleSelect\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [\n            \"checkbox_test_1\",\n            \"multiple_test_1\"\n        ],\n        \"isActive\": true\n    },\n    {\n        \"id\": 34,\n        \"name\": \"INGLE_SELECT_WB\",\n        \"label\": \"INGLE_SELECT-WB\",\n        \"type\": \"singleSelect\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 35,\n        \"name\": \"CHECKBOX_WB\",\n        \"label\": \"CHECKBOX-WB\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 36,\n        \"name\": \"SINGLE_SELECT_WB\",\n        \"label\": \"SINGLE_SELECT-WB\",\n        \"type\": \"singleSelect\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [\n            \"Option1\",\n            \"Value1\",\n            \"Option2\",\n            \"Value2\",\n            \"Option3\",\n            \"Value3\"\n        ],\n        \"isActive\": true\n    },\n    {\n        \"id\": 37,\n        \"name\": \"zgodasms\",\n        \"label\": \"Zgoda na komunikacje sms\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custome\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 38,\n        \"name\": \"zgodaemail\",\n        \"label\": \"Zgoda na komunikacje email\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 42,\n        \"name\": \"profession\",\n        \"label\": \"Profesja\",\n        \"type\": \"text\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 43,\n        \"name\": \"specialization\",\n        \"label\": \"Specjalizacja\",\n        \"type\": \"text\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 74,\n        \"name\": \"consentmarketing5\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 75,\n        \"name\": \"consentmarketing3\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 33,\n        \"name\": \"TEXTAREA-WB\",\n        \"label\": \"Text Area WB\",\n        \"type\": \"textarea\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 27,\n        \"name\": \"nowe\",\n        \"label\": \"nowe2\",\n        \"type\": \"text\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 76,\n        \"name\": \"consentmarketing7\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 77,\n        \"name\": \"consentmarketing11\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 78,\n        \"name\": \"consentterms111\",\n        \"label\": \"consentterms111\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 56,\n        \"name\": \"consentterms\",\n        \"label\": \"Terms and conditions - consentterms\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 53,\n        \"name\": \"wideo_ob\",\n        \"label\": \"wideo_ob\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 52,\n        \"name\": \"cookieStatus\",\n        \"label\": \"Cookie Acceptance\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 46,\n        \"name\": \"consent_sie_wudaje_marketing\",\n        \"label\": \"consent_sie_wudaje_marketing\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [\n            \"name\",\n            \"John\"\n        ],\n        \"isActive\": true\n    },\n    {\n        \"id\": 50,\n        \"name\": \"CONSENT3\",\n        \"label\": \"CONSENT3\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 45,\n        \"name\": \"channel-sms\",\n        \"label\": \"Zgoda na komunikację SMS\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 47,\n        \"name\": \"zgodawymagana1\",\n        \"label\": \"Umowa prywatnosci i zasady uslugi\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 49,\n        \"name\": \"channel-email\",\n        \"label\": \"Zgoda na komunikację E-mail\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 48,\n        \"name\": \"zgoda2\",\n        \"label\": \"Zgoda na przetwarzanie danych\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 51,\n        \"name\": \"termsofuse\",\n        \"label\": \"Terms of use\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 54,\n        \"name\": \"consentmarketing\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 55,\n        \"name\": \"channel-whatsapp\",\n        \"label\": \"Tekstowa skrocona tresc zgody\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 57,\n        \"name\": \"newtest999\",\n        \"label\": \"test999\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 58,\n        \"name\": \"PostmanNameCF\",\n        \"label\": \"LbelPOSTman\",\n        \"type\": \"text\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 60,\n        \"name\": \"PostmanNameCF23\",\n        \"label\": \"LbelPOSTman2\",\n        \"type\": \"text\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 59,\n        \"name\": \"PostmanNameCF2\",\n        \"label\": \"LbelPOSTman2\",\n        \"type\": \"text\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 61,\n        \"name\": \"Test-deduplikatora\",\n        \"label\": \"\",\n        \"type\": \"text\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 62,\n        \"name\": \"deduplikator\",\n        \"label\": \"deduplikator\",\n        \"type\": \"text\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 63,\n        \"name\": \"consentterms6\",\n        \"label\": \"Terms and conditions\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 64,\n        \"name\": \"consentterms1\",\n        \"label\": \"Terms and conditions\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 65,\n        \"name\": \"consentterms5\",\n        \"label\": \"Terms and conditions\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 66,\n        \"name\": \"consentterms7\",\n        \"label\": \"Terms and conditions\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 67,\n        \"name\": \"consentterms3\",\n        \"label\": \"Terms and conditions\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 68,\n        \"name\": \"consentterms4\",\n        \"label\": \"Terms and conditions\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 69,\n        \"name\": \"consentterms2\",\n        \"label\": \"Terms and conditions\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 70,\n        \"name\": \"consentmarketing6\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 71,\n        \"name\": \"consentmarketing2\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 72,\n        \"name\": \"consentmarketing1\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    },\n    {\n        \"id\": 73,\n        \"name\": \"consentmarketing4\",\n        \"label\": \"Marketing agreement\",\n        \"type\": \"checkbox\",\n        \"origin\": \"custom\",\n        \"fieldValues\": [],\n        \"isActive\": true\n    }\n]"}],"_postman_id":"2d2c31ac-cab6-475f-a02d-dabe2438aeba"},{"name":"Get Definition By Name","id":"c94197f0-541c-4082-983a-610dea16fe98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/custom-field/definition/","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves a custom field definition by its unique name. Custom fields allow you to extend the standard data model with additional fields specific to your business needs.</p>\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>URL Structure:</strong> <code>https://{tenant-domain}/api/core/custom-field/definition/{fieldName}</code></p>\n<h3 id=\"path-parameters\">Path 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>fieldName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique name of the custom field definition to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n</code></pre><p>The token should be stored in the <code>{{token}}</code> variable.</p>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst fieldName = 'Zgoda_2_zaznaczona_automatorem';\nconst accessToken = 'your_access_token_here';\n\nconst url = `https://${tenantDomain}/api/core/custom-field/definition/${fieldName}`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${accessToken}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Custom Field Definition:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching custom field definition:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 29,\n  \"name\": \"Zgoda_2_zaznaczona_automatorem\",\n  \"label\": \"Zgoda 2 zaznaczona automatorem\",\n  \"type\": \"checkbox\",\n  \"origin\": \"custom\",\n  \"fieldValues\": [],\n  \"isActive\": true\n}\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Unique identifier for the custom field definition</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Internal name of the custom field (used in API calls)</td>\n</tr>\n<tr>\n<td><code>label</code></td>\n<td>string</td>\n<td>Display label for the custom field (user-facing)</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Field type (e.g., \"checkbox\", \"text\", \"select\", etc.)</td>\n</tr>\n<tr>\n<td><code>origin</code></td>\n<td>string</td>\n<td>Origin of the field (\"custom\" for user-created fields)</td>\n</tr>\n<tr>\n<td><code>fieldValues</code></td>\n<td>array</td>\n<td>Array of predefined values (for select/dropdown fields)</td>\n</tr>\n<tr>\n<td><code>isActive</code></td>\n<td>boolean</td>\n<td>Whether the field is currently active and available for use</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li>The <code>fieldName</code> parameter in the URL is case-sensitive and must match exactly</li>\n<li>Custom field definitions are tenant-specific</li>\n<li>The <code>fieldValues</code> array will contain options for select-type fields, but will be empty for other field types like checkbox or text</li>\n<li>Inactive fields (<code>isActive: false</code>) may still be retrieved but should not be used for new data entry</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","core","custom-field","definition",""],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"da1b23d1-30bf-46a4-9aea-1d91023fdfaa","name":"Get Definition By Name","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/custom-field/definition/Zgoda_2_zaznaczona_automatorem"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 09:27:33 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 09:27:32 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-5755f7408e7f457c8e36d89a5d44a5cd' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-5755f7408e7f457c8e36d89a5d44a5cd' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 29,\n    \"name\": \"Zgoda_2_zaznaczona_automatorem\",\n    \"label\": \"Zgoda 2 zaznaczona automatorem\",\n    \"type\": \"checkbox\",\n    \"origin\": \"custom\",\n    \"fieldValues\": [],\n    \"isActive\": true\n}"}],"_postman_id":"c94197f0-541c-4082-983a-610dea16fe98"},{"name":"Create Definition","id":"d1e23078-7a1b-44ce-ab63-99316bb4ad72","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test9090333\",\n  \"label\": \"Label test\",\n  \"type\": \"checkbox\",\n  \"fieldValues\": [\n    \"test1\",\n    \"test22\"\n  ],\n  \"isActive\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://{{tenant_domain}}/api/core/custom-field/definition","description":"<h1 id=\"create-custom-field-definition\">Create Custom Field Definition</h1>\n<p>Creates a new custom field definition in the Highp platform. Custom fields allow you to extend the data model with additional fields tailored to your specific needs.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/custom-field/definition</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"variables\">Variables</h2>\n<p>This endpoint uses the following variables that should be configured in your environment:</p>\n<ul>\n<li><code>testsandbox.highp.me</code>: Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>{{token}}</code>: Your authentication bearer token for API access</li>\n</ul>\n<h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be in JSON format with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The unique name identifier for the custom field (e.g., \"Test9090333\")</td>\n</tr>\n<tr>\n<td><code>label</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The display label shown to users (e.g., \"Label test\")</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The field type - determines how the field behaves (e.g., \"checkbox\")</td>\n</tr>\n<tr>\n<td><code>fieldValues</code></td>\n<td>array of strings</td>\n<td>Yes</td>\n<td>An array of possible values for the field (e.g., [\"test1\", \"test22\"])</td>\n</tr>\n<tr>\n<td><code>isActive</code></td>\n<td>boolean</td>\n<td>Yes</td>\n<td>Whether the custom field is active and available for use</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Test9090333\",\n  \"label\": \"Label test\",\n  \"type\": \"checkbox\",\n  \"fieldValues\": [\"test1\", \"test22\"],\n  \"isActive\": true\n}\n</code></pre>\n<h2 id=\"response-schema\">Response Schema</h2>\n<p>A successful request returns a <code>200 OK</code> status with the created custom field definition:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>The unique identifier assigned to the custom field definition</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the custom field</td>\n</tr>\n<tr>\n<td><code>label</code></td>\n<td>string</td>\n<td>The display label</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>The field type</td>\n</tr>\n<tr>\n<td><code>origin</code></td>\n<td>string</td>\n<td>The origin of the field (e.g., \"custom\")</td>\n</tr>\n<tr>\n<td><code>fieldValues</code></td>\n<td>array of strings</td>\n<td>The possible values for the field</td>\n</tr>\n<tr>\n<td><code>isActive</code></td>\n<td>boolean</td>\n<td>Whether the field is active</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 79,\n  \"name\": \"Test9090333\",\n  \"label\": \"Label test\",\n  \"type\": \"checkbox\",\n  \"origin\": \"custom\",\n  \"fieldValues\": [\n    \"test1\",\n    \"test22\"\n  ],\n  \"isActive\": true\n}\n</code></pre>\n<h2 id=\"code-example-nodejs-with-fetch\">Code Example (Node.js with fetch)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst token = 'your_bearer_token_here'; // Replace with your authentication token\n\nconst createCustomFieldDefinition = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/custom-field/definition`;\n  \n  const requestBody = {\n    name: \"Test9090333\",\n    label: \"Label test\",\n    type: \"checkbox\",\n    fieldValues: [\"test1\", \"test22\"],\n    isActive: true\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Custom field definition created:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating custom field definition:', error);\n    throw error;\n  }\n};\n\n// Execute the function\ncreateCustomFieldDefinition();\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Ensure your bearer token has the necessary permissions to create custom field definitions</li>\n<li>The <code>name</code> field should be unique within your tenant</li>\n<li>The <code>type</code> field determines the behavior and validation of the custom field</li>\n<li>Custom fields can be used to extend various entities within the Highp platform</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","core","custom-field","definition"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"359e8884-cbc2-4022-b718-662e89f1e5a1","name":"Create Definition","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test9090333\",\n  \"label\": \"Label test\",\n  \"type\": \"checkbox\",\n  \"fieldValues\": [\n    \"test1\",\n    \"test22\"\n  ],\n  \"isActive\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/custom-field/definition"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 09:29:58 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 09:29:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-eea5c90e75ee6c1f7a6dd6450ab463a2' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-eea5c90e75ee6c1f7a6dd6450ab463a2' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 79,\n    \"name\": \"Test9090333\",\n    \"label\": \"Label test\",\n    \"type\": \"checkbox\",\n    \"origin\": \"custom\",\n    \"fieldValues\": [\n        \"test1\",\n        \"test22\"\n    ],\n    \"isActive\": true\n}"}],"_postman_id":"d1e23078-7a1b-44ce-ab63-99316bb4ad72"},{"name":"Delete Definition By Name","id":"24458576-2aeb-4af6-b054-6b1a1fbc9fd3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://{{tenant_domain}}/api/core/custom-field/definition/CHECKBOX_WB","description":"<h1 id=\"delete-custom-field-definition-by-name\">Delete Custom Field Definition By Name</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint deletes a custom field definition by its name. Once deleted, the custom field definition will be permanently removed from the system.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>DELETE</code></li>\n<li><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/custom-field/definition/{fieldName}</code></li>\n<li><strong>Path Parameter:</strong> <code>{fieldName}</code> - The name of the custom field definition to delete (e.g., <code>CHECKBOX_WB</code>)</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst fieldName = 'CHECKBOX_WB';\nconst token = 'your_access_token';\n\nconst url = `https://${tenantDomain}/api/core/custom-field/definition/${fieldName}`;\n\nconst options = {\n  method: 'DELETE',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n};\n\nfetch(url, options)\n  .then(response =&gt; {\n    if (response.ok) {\n      console.log('Custom field definition deleted successfully');\n      return response.status;\n    } else {\n      throw new Error(`Failed to delete: ${response.status} ${response.statusText}`);\n    }\n  })\n  .then(status =&gt; {\n    console.log('Status Code:', status);\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the custom field definition is successfully deleted, the API returns:</p>\n<ul>\n<li><strong>Status Code:</strong> <code>200 OK</code></li>\n<li><strong>Response Body:</strong> Empty (Content-Length: 0)</li>\n<li><strong>Headers:</strong><ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-model\">Response Model</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// No response body - successful deletion returns empty response with 200 status\n</code></pre>\n<h2 id=\"important-notes\">Important Notes</h2>\n<ul>\n<li><strong>Permanent Action:</strong> This operation permanently deletes the custom field definition. This action cannot be undone.</li>\n<li><strong>Field Name:</strong> The field name in the URL path is case-sensitive and must match exactly.</li>\n<li><strong>Authorization Required:</strong> A valid Bearer token with appropriate permissions is required to perform this operation.</li>\n<li><strong>Empty Response:</strong> A successful deletion returns an empty response body with HTTP 200 status code.</li>\n<li><strong>Dependencies:</strong> Ensure that the custom field definition is not in use before deletion to avoid data integrity issues.</li>\n</ul>\n<h2 id=\"error-responses\">Error Responses</h2>\n<p>Common error responses you may encounter:</p>\n<ul>\n<li><strong>401 Unauthorized:</strong> Invalid or missing authentication token</li>\n<li><strong>403 Forbidden:</strong> Insufficient permissions to delete custom field definitions</li>\n<li><strong>404 Not Found:</strong> Custom field definition with the specified name does not exist</li>\n<li><strong>500 Internal Server Error:</strong> Server-side error occurred during deletion</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","core","custom-field","definition","CHECKBOX_WB"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"10f7363f-e0b6-44a8-9f52-ff8b6f330581","name":"Delete Definition By Name","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/custom-field/definition/CHECKBOX_WB"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 09:30:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 09:30:56 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-4fd9b4f0859ade512c6beb1f62bea702' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-4fd9b4f0859ade512c6beb1f62bea702' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"24458576-2aeb-4af6-b054-6b1a1fbc9fd3"}],"id":"71fc258e-32a5-4db5-8711-4aa6a67c6079","_postman_id":"71fc258e-32a5-4db5-8711-4aa6a67c6079","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Update Custom Field","id":"8eb4b05f-6bd1-4d2c-9b39-acf80da5de2a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"fieldName\": \"nowe\",\n  \"fieldUuid\": null,\n  \"type\": \"text\",\n  \"value\": \"testNOWY ed\",\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/custom-field/increase","description":"<h1 id=\"update-custom-field-value\">Update Custom Field Value</h1>\n<p>Updates the value of a custom field for a specific contact. This endpoint allows you to modify existing custom field data associated with a contact record.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p><strong>Type:</strong> Bearer Token<br /><strong>Requirement:</strong> Valid access token with appropriate permissions</p>\n<h3 id=\"how-to-obtain-the-access-token\">How to obtain the access token:</h3>\n<ol>\n<li><p>Call <code>POST /api/auth/oauth/token</code> with valid login credentials</p>\n</li>\n<li><p>Copy the <code>access_token</code> from the response</p>\n</li>\n<li><p>Use it in the Authorization header: <code>Authorization: Bearer</code></p>\n</li>\n</ol>\n<hr />\n<h2 id=\"endpoint\">Endpoint</h2>\n<p><strong>POST</strong> <code>https://{{tenant_domain}}/api/core/custom-field</code></p>\n<hr />\n<h2 id=\"request\">Request</h2>\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>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer</td>\n<td>Yes</td>\n<td>Authentication token</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>Yes</td>\n<td>Request body format</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>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>fieldName</td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the custom field to update</td>\n</tr>\n<tr>\n<td>fieldUuid</td>\n<td>string</td>\n<td>No</td>\n<td>UUID of the custom field definition (can be null)</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Yes</td>\n<td>The type of the custom field (e.g., text, number, date, select)</td>\n</tr>\n<tr>\n<td>value</td>\n<td>string</td>\n<td>Yes</td>\n<td>The new value to set for the custom field</td>\n</tr>\n<tr>\n<td>contactUuid</td>\n<td>string</td>\n<td>Yes</td>\n<td>UUID of the contact whose custom field is being updated</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\nconst updateCustomField = async () =&gt; {\n  const tenantDomain = 'your-tenant-domain.com'; // Replace with your tenant domain\n  const accessToken = 'your_access_token_here'; // Replace with your access token\n  const contactUuid = 'contact-uuid-here'; // Replace with the contact UUID\n  const url = `https://${tenantDomain}/api/core/custom-field`;\n  const requestBody = {\n    fieldName: \"exampleField\",\n    fieldUuid: null,\n    type: \"exampleType\",\n    value: \"exampleValue\",\n    contactUuid: contactUuid\n  };\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('Custom field updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating custom field:', error);\n    throw error;\n  }\n};\n// Call the function\nupdateCustomField();\n\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The API returns a JSON object with the following structure:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>fieldName</td>\n<td>string</td>\n<td>The name of the custom field that was updated</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>The type of the custom field</td>\n</tr>\n<tr>\n<td>valueList</td>\n<td>string</td>\n<td>The updated value of the custom field</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>string</td>\n<td>Unique identifier for the custom field record</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Response Schema:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fieldName\": \"string\",\n  \"type\": \"string\",\n  \"valueList\": \"string\",\n  \"uuid\": \"string (UUID format)\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"example-responses\">Example Responses</h2>\n<h3 id=\"success-200-ok\">Success (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fieldName\": \"exampleField\",\n  \"type\": \"exampleType\",\n  \"valueList\": \"exampleValue\",\n  \"uuid\": \"422e9468-bf1f-4f00-a993-3f002abaa2f7\"\n}\n\n</code></pre>\n<h3 id=\"error-responses\">Error Responses</h3>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or expired access token\"\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  \"error\": \"Bad Request\",\n  \"message\": \"Missing required field: contactUuid\"\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  \"error\": \"Not Found\",\n  \"message\": \"Contact with specified UUID not found\"\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  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred while updating the custom field\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"important-notes\">Important Notes</h2>\n<ol>\n<li><p><strong>Authentication Required</strong>: This endpoint requires a valid Bearer token. Ensure your token has not expired before making the request.</p>\n</li>\n<li><p><strong>Contact UUID</strong>: The <code>contactUuid</code> must correspond to an existing contact in your system. Invalid UUIDs will result in a 404 error.</p>\n</li>\n<li><p><strong>Field Type Validation</strong>: The <code>type</code> parameter should match the expected custom field type. Mismatched types may cause validation errors.</p>\n</li>\n<li><p><strong>Null Values</strong>: The <code>fieldUuid</code> parameter can be null if you're referencing the field by name only.</p>\n</li>\n<li><p><strong>Response Field</strong>: Note that the response returns <code>valueList</code> instead of <code>value</code> - this is the confirmed field name from the API response.</p>\n</li>\n<li><p><strong>Variables</strong>: This endpoint uses environment variables:</p>\n<ul>\n<li><p><code>{{tenant_domain}}</code> - Your organization's tenant domain</p>\n</li>\n<li><p><code>{{SomeUserUuid}}</code> - The UUID of the contact being updated</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Rate Limiting</strong>: Be mindful of API rate limits when making multiple requests in succession.</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><p>Update contact preferences or settings</p>\n</li>\n<li><p>Modify custom data fields for CRM integration</p>\n</li>\n<li><p>Bulk update operations for contact management</p>\n</li>\n<li><p>Dynamic field updates based on user interactions</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","custom-field","increase"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"47fbd6a6-4266-490a-8e8d-477afaaf0f96","name":"Update Custom Field","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"fieldName\": \"nowe\",\n  \"fieldUuid\": null,\n  \"type\": \"text\",\n  \"value\": \"testNOWY ed\",\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/custom-field/increase"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 09:38:03 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 09:38:02 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-58c566ab7d9ac683dcee0cd31d46047e' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-58c566ab7d9ac683dcee0cd31d46047e' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"fieldName\": \"nowe\",\n    \"type\": \"text\",\n    \"valueList\": \"testNOWY ed\",\n    \"uuid\": \"7a38995d-3f0d-402f-8b2c-154d2db5697d\"\n}"}],"_postman_id":"8eb4b05f-6bd1-4d2c-9b39-acf80da5de2a"},{"name":"Increase Custom Field","id":"d7d97198-cbe2-4645-85bc-0d249aff7f64","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"fieldName\": \"public-video-count\",\n  \"fieldUuid\": null,\n  \"type\": \"number\",\n  \"value\": \"2\",\n  \"contactUuid\": \"{{SomeUserUuid}}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://{{tenant_domain}}/api/core/custom-field/increase","description":"<h1 id=\"update-custom-field-value\">Update Custom Field Value</h1>\n<p>Updates the value of a custom field for a specific contact. This endpoint allows you to modify existing custom field data associated with a contact record.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p><strong>Type:</strong> Bearer Token<br /><strong>Requirement:</strong> Valid access token with appropriate permissions</p>\n<h3 id=\"how-to-obtain-the-access-token\">How to obtain the access token:</h3>\n<ol>\n<li><p>Call <code>POST /api/auth/oauth/token</code> with valid login credentials</p>\n</li>\n<li><p>Copy the <code>access_token</code> from the response</p>\n</li>\n<li><p>Use it in the Authorization header: <code>Authorization: Bearer</code></p>\n</li>\n</ol>\n<hr />\n<h2 id=\"endpoint\">Endpoint</h2>\n<p><strong>POST</strong> <code>https://{{tenant_domain}}/api/core/custom-field</code></p>\n<hr />\n<h2 id=\"request\">Request</h2>\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>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer</td>\n<td>Yes</td>\n<td>Authentication token</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>Yes</td>\n<td>Request body format</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>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>fieldName</td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the custom field to update</td>\n</tr>\n<tr>\n<td>fieldUuid</td>\n<td>string</td>\n<td>No</td>\n<td>UUID of the custom field definition (can be null)</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Yes</td>\n<td>The type of the custom field (e.g., text, number, date, select)</td>\n</tr>\n<tr>\n<td>value</td>\n<td>string</td>\n<td>Yes</td>\n<td>The new value to set for the custom field</td>\n</tr>\n<tr>\n<td>contactUuid</td>\n<td>string</td>\n<td>Yes</td>\n<td>UUID of the contact whose custom field is being updated</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\nconst updateCustomField = async () =&gt; {\n  const tenantDomain = 'your-tenant-domain.com'; // Replace with your tenant domain\n  const accessToken = 'your_access_token_here'; // Replace with your access token\n  const contactUuid = 'contact-uuid-here'; // Replace with the contact UUID\n  const url = `https://${tenantDomain}/api/core/custom-field`;\n  const requestBody = {\n    fieldName: \"exampleField\",\n    fieldUuid: null,\n    type: \"exampleType\",\n    value: \"exampleValue\",\n    contactUuid: contactUuid\n  };\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('Custom field updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating custom field:', error);\n    throw error;\n  }\n};\n// Call the function\nupdateCustomField();\n\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The API returns a JSON object with the following structure:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>fieldName</td>\n<td>string</td>\n<td>The name of the custom field that was updated</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>The type of the custom field</td>\n</tr>\n<tr>\n<td>valueList</td>\n<td>string</td>\n<td>The updated value of the custom field</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>string</td>\n<td>Unique identifier for the custom field record</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Response Schema:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fieldName\": \"string\",\n  \"type\": \"string\",\n  \"valueList\": \"string\",\n  \"uuid\": \"string (UUID format)\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"example-responses\">Example Responses</h2>\n<h3 id=\"success-200-ok\">Success (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fieldName\": \"exampleField\",\n  \"type\": \"exampleType\",\n  \"valueList\": \"exampleValue\",\n  \"uuid\": \"422e9468-bf1f-4f00-a993-3f002abaa2f7\"\n}\n\n</code></pre>\n<h3 id=\"error-responses\">Error Responses</h3>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or expired access token\"\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  \"error\": \"Bad Request\",\n  \"message\": \"Missing required field: contactUuid\"\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  \"error\": \"Not Found\",\n  \"message\": \"Contact with specified UUID not found\"\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  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred while updating the custom field\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"important-notes\">Important Notes</h2>\n<ol>\n<li><p><strong>Authentication Required</strong>: This endpoint requires a valid Bearer token. Ensure your token has not expired before making the request.</p>\n</li>\n<li><p><strong>Contact UUID</strong>: The <code>contactUuid</code> must correspond to an existing contact in your system. Invalid UUIDs will result in a 404 error.</p>\n</li>\n<li><p><strong>Field Type Validation</strong>: The <code>type</code> parameter should match the expected custom field type. Mismatched types may cause validation errors.</p>\n</li>\n<li><p><strong>Null Values</strong>: The <code>fieldUuid</code> parameter can be null if you're referencing the field by name only.</p>\n</li>\n<li><p><strong>Response Field</strong>: Note that the response returns <code>valueList</code> instead of <code>value</code> - this is the confirmed field name from the API response.</p>\n</li>\n<li><p><strong>Variables</strong>: This endpoint uses environment variables:</p>\n<ul>\n<li><p><code>{{tenant_domain}}</code> - Your organization's tenant domain</p>\n</li>\n<li><p><code>{{SomeUserUuid}}</code> - The UUID of the contact being updated</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Rate Limiting</strong>: Be mindful of API rate limits when making multiple requests in succession.</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><p>Update contact preferences or settings</p>\n</li>\n<li><p>Modify custom data fields for CRM integration</p>\n</li>\n<li><p>Bulk update operations for contact management</p>\n</li>\n<li><p>Dynamic field updates based on user interactions</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","core","custom-field","increase"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d7d97198-cbe2-4645-85bc-0d249aff7f64"},{"name":"Get Custom Field","id":"4dface61-07ce-4db7-b555-cd8685571616","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/custom-field?contactUuid={{SomeUserUuid}}&name={{exampleFieldName}}","description":"<h1 id=\"get-custom-field\">Get Custom Field</h1>\n<p>Retrieves a custom field associated with a specific contact by UUID and field name. This endpoint allows you to fetch custom field data including its type, value list, and unique identifier.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer YOUR_ACCESS_TOKEN\n\n</code></pre><h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/custom-field\n\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact whose custom field you want to retrieve. Example: <code>ec486514-250b-4852-a418-040d0fe23a1a</code></td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the custom field to retrieve. Example: <code>nowe</code>, <code>text</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch'); // or use native fetch in Node.js 18+\nasync function getCustomField() {\n  const tenantDomain = 'your-tenant-domain.com';\n  const contactUuid = 'ec486514-250b-4852-a418-040d0fe23a1a';\n  const fieldName = 'exampleField';\n  const accessToken = 'YOUR_ACCESS_TOKEN';\n  // Construct URL with query parameters\n  const url = `https://${tenantDomain}/api/core/custom-field?contactUuid=${contactUuid}&amp;name=${fieldName}`;\n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('Custom Field Data:', data);\n    return data;\n  } catch (error) {\n    console.error('Error fetching custom field:', error);\n    throw error;\n  }\n}\n// Call the function\ngetCustomField();\n\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fieldName\": \"string\",\n  \"type\": \"string\",\n  \"valueList\": \"string\",\n  \"uuid\": \"string (UUID)\"\n}\n\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fieldName</code></td>\n<td>string</td>\n<td>The name of the custom field</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>The data type of the custom field</td>\n</tr>\n<tr>\n<td><code>valueList</code></td>\n<td>string</td>\n<td>The value(s) associated with the custom field</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for this custom field instance</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-responses\">Example Responses</h2>\n<h3 id=\"success-200-ok\">Success (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fieldName\": \"exampleField\",\n  \"type\": \"exampleType\",\n  \"valueList\": \"exampleValue\",\n  \"uuid\": \"422e9468-bf1f-4f00-a993-3f002abaa2f7\"\n}\n\n</code></pre>\n<h3 id=\"error-responses\">Error Responses</h3>\n<h4 id=\"401-unauthorized\">401 Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or missing authentication token\"\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  \"error\": \"Not Found\",\n  \"message\": \"Custom field not found for the specified contact and name\"\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  \"error\": \"Bad Request\",\n  \"message\": \"Missing required query parameters: contactUuid or name\"\n}\n\n</code></pre>\n<h2 id=\"important-notes\">Important Notes</h2>\n<ul>\n<li><p><strong>Required Parameters</strong>: Both <code>contactUuid</code> and <code>name</code> query parameters are required for this endpoint to function properly.</p>\n</li>\n<li><p><strong>UUID Format</strong>: The <code>contactUuid</code> must be a valid UUID format (e.g., <code>ec486514-250b-4852-a418-040d0fe23a1a</code>).</p>\n</li>\n<li><p><strong>Case Sensitivity</strong>: The <code>name</code> parameter may be case-sensitive depending on your system configuration.</p>\n</li>\n<li><p><strong>Authentication</strong>: Ensure your Bearer token is valid and has the necessary permissions to access custom field data.</p>\n</li>\n<li><p><strong>Tenant Domain</strong>: Replace <code>{{tenant_domain}}</code> with your actual tenant domain (e.g., <code>api.yourcompany.com</code>).</p>\n</li>\n</ul>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><p>Retrieve custom field values for contact personalization</p>\n</li>\n<li><p>Validate custom field data before updates</p>\n</li>\n<li><p>Display custom field information in user interfaces</p>\n</li>\n<li><p>Integrate custom field data into workflows and automations</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","custom-field"],"host":["testsandbox.highp.me"],"query":[{"key":"contactUuid","value":"{{SomeUserUuid}}"},{"key":"name","value":"{{exampleFieldName}}"}],"variable":[]}},"response":[{"id":"725bb34d-cb16-45e8-94a7-eef42351acbe","name":"Get Custom Field","originalRequest":{"method":"GET","header":[],"url":{"raw":"testsandbox.highp.me/api/core/custom-field?contactUuid={{SomeUserUuid}}&name={{exampleFieldName}}","host":["testsandbox.highp.me"],"path":["api","core","custom-field"],"query":[{"key":"contactUuid","value":"{{SomeUserUuid}}"},{"key":"name","value":"{{exampleFieldName}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 09:36:58 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 09:36:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-c91b3becea3140cd188ff76a54f67bca' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-c91b3becea3140cd188ff76a54f67bca' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"fieldName\": \"nowe\",\n    \"type\": \"text\",\n    \"valueList\": \"testNOWY\",\n    \"uuid\": \"7a38995d-3f0d-402f-8b2c-154d2db5697d\"\n}"}],"_postman_id":"4dface61-07ce-4db7-b555-cd8685571616"},{"name":"Delete Custom Field","id":"6e283e5f-67c3-4444-b88c-f202eb259262","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/custom-field?contactUuid={{SomeUserUuid}}&name={{exampleFieldName}}","description":"<h1 id=\"delete-custom-field\">Delete Custom Field</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint deletes a custom field associated with a specific contact in the Highp platform. Custom fields allow you to store additional metadata for contacts, and this endpoint removes a specific custom field by name.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>HTTP Method:</strong> <code>DELETE</code></p>\n<p><strong>URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{{tenant_domain}}/api/core/custom-field\n</code></pre><h3 id=\"url-variables\">URL Variables</h3>\n<ul>\n<li><strong><code>tenant_domain</code></strong>: Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the contact whose custom field you want to delete</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the custom field to delete</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication. Include a Bearer token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n</code></pre><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me';\nconst contactUuid = 'your-contact-uuid';\nconst fieldName = 'your-custom-field-name';\nconst accessToken = 'your-access-token';\n\nconst url = `https://${tenantDomain}/api/core/custom-field?contactUuid=${contactUuid}&amp;name=${fieldName}`;\n\nfetch(url, {\n  method: 'DELETE',\n  headers: {\n    'Authorization': `Bearer ${accessToken}`\n  }\n})\n  .then(response =&gt; {\n    if (response.ok) {\n      console.log('Custom field deleted successfully');\n      return response;\n    } else {\n      throw new Error(`Failed to delete custom field: ${response.status} ${response.statusText}`);\n    }\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the custom field is successfully deleted, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n</ul>\n<h2 id=\"error-handling\">Error Handling</h2>\n<p>Consider handling the following error scenarios:</p>\n<ul>\n<li><strong>400 Bad Request</strong>: Invalid query parameters (missing or malformed <code>contactUuid</code> or <code>name</code>)</li>\n<li><strong>401 Unauthorized</strong>: Missing or invalid authentication token</li>\n<li><strong>403 Forbidden</strong>: Insufficient permissions to delete custom fields</li>\n<li><strong>404 Not Found</strong>: Contact or custom field does not exist</li>\n<li><strong>500 Internal Server Error</strong>: Server-side error occurred</li>\n</ul>\n<h3 id=\"example-error-handling\">Example Error Handling</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">fetch(url, {\n  method: 'DELETE',\n  headers: {\n    'Authorization': `Bearer ${accessToken}`\n  }\n})\n  .then(response =&gt; {\n    if (response.ok) {\n      console.log('Custom field deleted successfully');\n    } else if (response.status === 404) {\n      console.error('Custom field or contact not found');\n    } else if (response.status === 401) {\n      console.error('Authentication failed - check your access token');\n    } else if (response.status === 403) {\n      console.error('Insufficient permissions to delete custom field');\n    } else {\n      console.error(`Error: ${response.status} ${response.statusText}`);\n    }\n  })\n  .catch(error =&gt; {\n    console.error('Network or request error:', error);\n  });\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>This is a destructive operation and cannot be undone</li>\n<li>Ensure you have the correct <code>contactUuid</code> and field <code>name</code> before making the request</li>\n<li>The custom field name is case-sensitive</li>\n<li>After deletion, the custom field will no longer be associated with the specified contact</li>\n</ul>\n","urlObject":{"path":["api","core","custom-field"],"host":["testsandbox.highp.me"],"query":[{"key":"contactUuid","value":"{{SomeUserUuid}}"},{"key":"name","value":"{{exampleFieldName}}"}],"variable":[]}},"response":[{"id":"41d1d607-8588-4e8c-be4a-b36b7a9ad94a","name":"Delete Custom Field","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"testsandbox.highp.me/api/core/custom-field?contactUuid={{SomeUserUuid}}&name={{exampleFieldName}}","host":["testsandbox.highp.me"],"path":["api","core","custom-field"],"query":[{"key":"contactUuid","value":"{{SomeUserUuid}}"},{"key":"name","value":"{{exampleFieldName}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 09:38:52 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 09:38:51 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-24d1561138cd6d1ca5b5da7a4dba59f8' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-24d1561138cd6d1ca5b5da7a4dba59f8' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"6e283e5f-67c3-4444-b88c-f202eb259262"},{"name":"Update Video Count (via Custom Field)","id":"f49efae0-c7bf-48e5-8496-060402600071","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\",\n  \"fieldName\": \"public-video-count\",\n  \"type\": \"number\",\n  \"value\": \"3\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://{{tenant_domain}}/api/core/custom-field","description":"<h2 id=\"overview\">Overview</h2>\n<p>Updates the <code>public-video-count</code> custom field for a specific user. This endpoint is used by the frontend to increment the video watch count when a user views public videos.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/custom-field</code></p>\n<p><strong>Authentication:</strong> Bearer token required (see collection-level authentication)</p>\n<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer {access_token}</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-parameters\">Request Body Parameters</h2>\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>contactUuid</td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact/user whose custom field is being updated</td>\n</tr>\n<tr>\n<td>fieldName</td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the custom field to update (e.g., \"public-video-count\")</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Yes</td>\n<td>The data type of the custom field value. Accepted values: \"number\", \"string\", \"boolean\"</td>\n</tr>\n<tr>\n<td>value</td>\n<td>string</td>\n<td>Yes</td>\n<td>The new value for the custom field. Even for number types, this should be passed as a string</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-example\">Request Body Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\",\n  \"fieldName\": \"public-video-count\",\n  \"type\": \"number\",\n  \"value\": \"3\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const updateCustomField = async () =&gt; {\n  const url = 'https://your-tenant-domain.highp.me/api/core/custom-field';\n  \n  const requestBody = {\n    contactUuid: 'b97d17a1-eb68-4a49-89bb-69a3b7aca8e5',\n    fieldName: 'public-video-count',\n    type: 'number',\n    value: '3'\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': 'Bearer YOUR_ACCESS_TOKEN'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Custom field updated:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating custom field:', error);\n    throw error;\n  }\n};\n\n// Usage\nupdateCustomField();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fieldName\": \"public-video-count\",\n  \"type\": \"number\",\n  \"valueList\": \"3\",\n  \"uuid\": \"be69af63-1d6f-41f4-a56e-95c109a336b6\"\n}\n</code></pre>\n<h3 id=\"response-model\">Response Model</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>fieldName</td>\n<td>string</td>\n<td>The name of the custom field that was updated</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>The data type of the custom field</td>\n</tr>\n<tr>\n<td>valueList</td>\n<td>string</td>\n<td>The updated value of the custom field</td>\n</tr>\n<tr>\n<td>uuid</td>\n<td>string (UUID)</td>\n<td>The unique identifier of the custom field record</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Video Analytics</strong>: Track how many public videos a user has watched</li>\n<li><strong>User Engagement</strong>: Monitor user interaction with video content</li>\n<li><strong>Progress Tracking</strong>: Increment counters for user achievements or milestones</li>\n<li><strong>Custom Metrics</strong>: Store and update any custom numerical data associated with users</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>value</code> parameter should be passed as a string, even when the <code>type</code> is \"number\"</li>\n<li>The endpoint returns a UUID that uniquely identifies this custom field record</li>\n<li>Custom fields allow flexible data storage per contact without modifying the core user schema</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"protocol":"https","path":["api","core","custom-field"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"98837b1f-d808-421b-b1a4-29b5e2f004db","name":"Update Video Count (via Custom Field)","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\",\n  \"fieldName\": \"public-video-count\",\n  \"type\": \"number\",\n  \"value\": \"3\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/custom-field"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 09:39:49 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 09:39:48 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-c938628e638e0966814a1e6d57eaee26' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-c938628e638e0966814a1e6d57eaee26' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"fieldName\": \"public-video-count\",\n    \"type\": \"number\",\n    \"valueList\": \"3\",\n    \"uuid\": \"be69af63-1d6f-41f4-a56e-95c109a336b6\"\n}"}],"_postman_id":"f49efae0-c7bf-48e5-8496-060402600071"},{"name":"Repair legacy custom names","id":"0a10e6b6-bcc5-41d8-8272-c88f19365550","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://{{tenant_domain}}/api/core/custom-field/repair/fix-names","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"protocol":"https","path":["api","core","custom-field","repair","fix-names"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0a10e6b6-bcc5-41d8-8272-c88f19365550"}],"id":"a748ac23-c787-4e8a-8f82-0418ca77fb12","_postman_id":"a748ac23-c787-4e8a-8f82-0418ca77fb12","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Event","item":[{"name":"Get Message Events","id":"366cdcf1-cce3-46ac-8422-7626be192520","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/event/message/all?campaignUuid={{campaign-uuid}}&contactSearch=asfasfsssseds@niepodam.pl&contactUuid=string&repSearch=wbbbb&repUuid=string&events=highp_event_send_sms,highp_event_send_email&token=vRaeuW&dateFrom=2025-11-18 00:00:00&dateTo=2025-11-19T00:00:00&page=0&size=10&sortBy=createdAtUTC&sortDirection=desc","description":"<h1 id=\"get-message-events\">Get Message Events</h1>\n<p>Retrieves a paginated list of message events from the Highp platform with advanced filtering capabilities. This endpoint allows you to search and filter message events by campaign, contact, representative, event type, and date range.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<h3 id=\"campaignuuid-string\"><strong>campaignUuid</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Unique identifier for the campaign</li>\n<li><strong>Example</strong>: <code>123e4567-e89b-12d3-a456-426614174000</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"contactsearch-string\"><strong>contactSearch</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Search by contact details including firstname, lastname, or email</li>\n<li><strong>Example</strong>: <code>john.doe@example.com</code> or <code>John Doe</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"contactuuid-string\"><strong>contactUuid</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Unique identifier for a specific contact</li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"repsearch-string\"><strong>repSearch</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Search by representative details including firstname, lastname, or email</li>\n<li><strong>Example</strong>: <code>Jane Smith</code> or <code>jane.smith@example.com</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"repuuid-string\"><strong>repUuid</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Unique identifier for a specific representative</li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"events-string\"><strong>events</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Comma-separated list of event types to filter by</li>\n<li><strong>Possible Values</strong>: <ul>\n<li><code>highp_event_send_sms</code> - SMS send events</li>\n<li><code>highp_event_send_email</code> - Email send events</li>\n</ul>\n</li>\n<li><strong>Example</strong>: <code>highp_event_send_sms,highp_event_send_email</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"token-string\"><strong>token</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Authentication token for the request</li>\n<li><strong>Required</strong>: Yes</li>\n</ul>\n<h3 id=\"datefrom-string\"><strong>dateFrom</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Start date for filtering events (inclusive)</li>\n<li><strong>Format</strong>: <code>YYYY-MM-DD HH:mm:ss</code> or <code>YYYY-MM-DDTHH:mm:ss</code></li>\n<li><strong>Example</strong>: <code>2025-11-18 00:00:00</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"dateto-string\"><strong>dateTo</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: End date for filtering events (inclusive)</li>\n<li><strong>Format</strong>: <code>YYYY-MM-DD HH:mm:ss</code> or <code>YYYY-MM-DDTHH:mm:ss</code></li>\n<li><strong>Example</strong>: <code>2025-11-19T00:00:00</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"page-integer\"><strong>page</strong> (integer)</h3>\n<ul>\n<li><strong>Description</strong>: Page number for pagination (zero-indexed)</li>\n<li><strong>Default</strong>: <code>0</code></li>\n<li><strong>Example</strong>: <code>0</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"size-integer\"><strong>size</strong> (integer)</h3>\n<ul>\n<li><strong>Description</strong>: Number of results per page</li>\n<li><strong>Default</strong>: <code>10</code></li>\n<li><strong>Example</strong>: <code>10</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"sortby-string\"><strong>sortBy</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Field to sort results by</li>\n<li><strong>Possible Values</strong>: <ul>\n<li><code>createdAtUTC</code> - Sort by creation timestamp</li>\n<li><code>date</code> - Sort by date</li>\n</ul>\n</li>\n<li><strong>Default</strong>: <code>createdAtUTC</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h3 id=\"sortdirection-string\"><strong>sortDirection</strong> (string)</h3>\n<ul>\n<li><strong>Description</strong>: Sort direction</li>\n<li><strong>Possible Values</strong>: <ul>\n<li><code>asc</code> - Ascending order</li>\n<li><code>desc</code> - Descending order</li>\n</ul>\n</li>\n<li><strong>Default</strong>: <code>desc</code></li>\n<li><strong>Required</strong>: No</li>\n</ul>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst getMessageEvents = async () =&gt; {\n  const tenantDomain = 'your-tenant.highp.me';\n  const token = 'your-auth-token';\n  const campaignUuid = '123e4567-e89b-12d3-a456-426614174000';\n  \n  const params = new URLSearchParams({\n    campaignUuid: campaignUuid,\n    contactSearch: 'john.doe@example.com',\n    repSearch: 'Jane Smith',\n    events: 'highp_event_send_sms,highp_event_send_email',\n    token: token,\n    dateFrom: '2025-11-18 00:00:00',\n    dateTo: '2025-11-19T00:00:00',\n    page: '0',\n    size: '10',\n    sortBy: 'createdAtUTC',\n    sortDirection: 'desc'\n  });\n\n  const url = `https://${tenantDomain}/api/core/event/message/all?${params}`;\n\n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Message Events:', data);\n    return data;\n  } catch (error) {\n    console.error('Error fetching message events:', error);\n    throw error;\n  }\n};\n\n// Call the function\ngetMessageEvents();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"eventType\": \"string\",\n      \"eventValue\": \"string\",\n      \"createdAtUTC\": \"string\",\n      \"token\": \"string\",\n      \"campaignUuid\": \"string\",\n      \"campaignName\": \"string\",\n      \"contactUuid\": \"string\",\n      \"contactName\": \"string\",\n      \"repUuid\": \"string\",\n      \"repName\": \"string\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": \"boolean\",\n      \"sorted\": \"boolean\",\n      \"unsorted\": \"boolean\"\n    },\n    \"offset\": \"integer\",\n    \"pageNumber\": \"integer\",\n    \"pageSize\": \"integer\",\n    \"paged\": \"boolean\",\n    \"unpaged\": \"boolean\"\n  },\n  \"totalElements\": \"integer\",\n  \"totalPages\": \"integer\",\n  \"last\": \"boolean\",\n  \"size\": \"integer\",\n  \"number\": \"integer\",\n  \"sort\": {\n    \"empty\": \"boolean\",\n    \"sorted\": \"boolean\",\n    \"unsorted\": \"boolean\"\n  },\n  \"numberOfElements\": \"integer\",\n  \"first\": \"boolean\",\n  \"empty\": \"boolean\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array\">Content Array</h4>\n<ul>\n<li><strong>eventType</strong> (string): Type of event (e.g., <code>highp_event_send_email</code>, <code>highp_event_send_sms</code>)</li>\n<li><strong>eventValue</strong> (string): Additional event value or metadata</li>\n<li><strong>createdAtUTC</strong> (string): Timestamp when the event was created (UTC)</li>\n<li><strong>token</strong> (string): Associated token</li>\n<li><strong>campaignUuid</strong> (string): UUID of the campaign</li>\n<li><strong>campaignName</strong> (string): Name of the campaign</li>\n<li><strong>contactUuid</strong> (string): UUID of the contact</li>\n<li><strong>contactName</strong> (string): Full name of the contact</li>\n<li><strong>repUuid</strong> (string): UUID of the representative</li>\n<li><strong>repName</strong> (string): Full name of the representative</li>\n</ul>\n<h4 id=\"pagination-metadata\">Pagination Metadata</h4>\n<ul>\n<li><strong>totalElements</strong> (integer): Total number of events matching the filter</li>\n<li><strong>totalPages</strong> (integer): Total number of pages available</li>\n<li><strong>size</strong> (integer): Number of items per page</li>\n<li><strong>number</strong> (integer): Current page number (zero-indexed)</li>\n<li><strong>numberOfElements</strong> (integer): Number of elements in the current page</li>\n<li><strong>first</strong> (boolean): Whether this is the first page</li>\n<li><strong>last</strong> (boolean): Whether this is the last page</li>\n<li><strong>empty</strong> (boolean): Whether the result set is empty</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"eventType\": \"highp_event_send_email\",\n      \"eventValue\": \"\",\n      \"createdAtUTC\": \"2025-11-18 11:57:03\",\n      \"token\": \"vRaeuW\",\n      \"campaignUuid\": \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\",\n      \"campaignName\": \"test kreator900\",\n      \"contactUuid\": \"0c87f63b-53ef-4e14-bf99-e5bfa7d0f748\",\n      \"contactName\": \"124124124 124124124\",\n      \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n      \"repName\": \"wbbbb bbbwww\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 10,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 1,\n  \"totalPages\": 1,\n  \"last\": true,\n  \"size\": 10,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": false,\n    \"sorted\": true,\n    \"unsorted\": false\n  },\n  \"numberOfElements\": 1,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n","urlObject":{"path":["api","core","event","message","all"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>uuid1,uuid2</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"contactSearch","value":"asfasfsssseds@niepodam.pl"},{"key":"contactUuid","value":"string"},{"key":"repSearch","value":"wbbbb"},{"key":"repUuid","value":"string"},{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"token","value":"vRaeuW"},{"key":"dateFrom","value":"2025-11-18 00:00:00"},{"key":"dateTo","value":"2025-11-19T00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"10"},{"key":"sortBy","value":"createdAtUTC"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"5a92539a-dd6d-46a0-b9cd-73319674361d","name":"Get Message Events","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/event/message/all?campaignUuid={{campaign-uuid}}&contactSearch=asfasfsssseds@niepodam.pl&contactUuid=string&repSearch=wbbbb&repUuid=string&events=highp_event_send_sms,highp_event_send_email&token=vRaeuW&dateFrom=2025-11-18 00:00:00&dateTo=2025-11-19T00:00:00&page=0&size=10&sortBy=createdAtUTC&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","event","message","all"],"query":[{"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"contactSearch","value":"asfasfsssseds@niepodam.pl"},{"key":"contactUuid","value":"string"},{"key":"repSearch","value":"wbbbb"},{"key":"repUuid","value":"string"},{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"token","value":"vRaeuW"},{"key":"dateFrom","value":"2025-11-18 00:00:00"},{"key":"dateTo","value":"2025-11-19T00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"10"},{"key":"sortBy","value":"createdAtUTC"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:17:33 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:17:32 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9e8681fc3c5eba8cbf09502f99105e72' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9e8681fc3c5eba8cbf09502f99105e72' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"eventType\": \"highp_event_send_email\",\n            \"eventValue\": \"\",\n            \"createdAtUTC\": \"2025-11-18 11:57:03\",\n            \"token\": \"vRaeuW\",\n            \"campaignUuid\": \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\",\n            \"campaignName\": \"test kreator900\",\n            \"contactUuid\": \"0c87f63b-53ef-4e14-bf99-e5bfa7d0f748\",\n            \"contactName\": \"124124124 124124124\",\n            \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n            \"repName\": \"wbbbb bbbwww\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 10,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 1,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 10,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 1,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"366cdcf1-cce3-46ac-8422-7626be192520"},{"name":"[Representatiive] Get Message Events","id":"3b6b5f8d-d750-4cc0-8843-1007d9a2caae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/event/message/all/rep?campaignUuid={{campaign-uuid}}&contactSearch=firstname, lastname, email&contactUuid=&repSearch=firstname, lastname, email&repUuid=d9991474-5ccd-4bc2-8ec5-a0b70bebfcea&events=highp_event_send_sms,highp_event_send_email&token=TAtXfT&dateFrom=2024-09-24 00:00:00&dateTo=2025-11-19T00:00:00&page=0&size=10&sortBy=createdAtUTC&sortDirection=desc","description":"<h1 id=\"get-message-events-for-representative\">Get Message Events for Representative</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves a paginated list of message events (SMS and email) associated with a specific representative within a campaign. It allows filtering by date range, event types, and supports sorting and pagination.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/event/message/all/rep\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"variables\">Variables</h2>\n<ul>\n<li><strong><code>tenant_domain</code></strong> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><strong><code>campaign-uuid</code></strong> - The UUID of the campaign to query</li>\n</ul>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the campaign</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the representative</td>\n</tr>\n<tr>\n<td><code>events</code></td>\n<td>string (comma-separated)</td>\n<td>Yes</td>\n<td>Event types to filter by. Supported values: <code>highp_event_send_sms</code>, <code>highp_event_send_email</code></td>\n</tr>\n<tr>\n<td><code>dateFrom</code></td>\n<td>string (datetime)</td>\n<td>Yes</td>\n<td>Start date for filtering events (format: <code>YYYY-MM-DD HH:mm:ss</code>)</td>\n</tr>\n<tr>\n<td><code>dateTo</code></td>\n<td>string (datetime)</td>\n<td>Yes</td>\n<td>End date for filtering events (format: <code>YYYY-MM-DD HH:mm:ss</code> or ISO 8601)</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>Page number for pagination (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Field to sort by (e.g., <code>createdAtUTC</code>)</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Sort direction: <code>asc</code> or <code>desc</code></td>\n</tr>\n<tr>\n<td><code>contactSearch</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search filter for contact (firstname, lastname, email)</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>No</td>\n<td>Filter by specific contact UUID</td>\n</tr>\n<tr>\n<td><code>repSearch</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search filter for representative (firstname, lastname, email)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me';\nconst campaignUuid = '78bab367-90a7-4faf-ba47-bb054320d506';\nconst repUuid = 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea';\nconst token = 'YOUR_ACCESS_TOKEN';\n\nconst url = new URL(`https://${tenantDomain}/api/core/event/message/all/rep`);\nurl.searchParams.append('campaignUuid', campaignUuid);\nurl.searchParams.append('repUuid', repUuid);\nurl.searchParams.append('events', 'highp_event_send_sms,highp_event_send_email');\nurl.searchParams.append('dateFrom', '2024-09-24 00:00:00');\nurl.searchParams.append('dateTo', '2025-11-19T00:00:00');\nurl.searchParams.append('page', '0');\nurl.searchParams.append('size', '10');\nurl.searchParams.append('sortBy', 'createdAtUTC');\nurl.searchParams.append('sortDirection', 'desc');\n\nfetch(url.toString(), {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Message Events:', data);\n    console.log(`Total Elements: ${data.totalElements}`);\n    console.log(`Total Pages: ${data.totalPages}`);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching message events:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"eventType\": \"string\",\n      \"eventValue\": \"string\",\n      \"createdAtUTC\": \"string (datetime)\",\n      \"token\": \"string\",\n      \"campaignUuid\": \"string (UUID)\",\n      \"campaignName\": \"string\",\n      \"contactUuid\": \"string (UUID)\",\n      \"contactName\": \"string\",\n      \"repUuid\": \"string (UUID)\",\n      \"repName\": \"string\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": \"boolean\",\n      \"sorted\": \"boolean\",\n      \"unsorted\": \"boolean\"\n    },\n    \"offset\": \"integer\",\n    \"pageNumber\": \"integer\",\n    \"pageSize\": \"integer\",\n    \"paged\": \"boolean\",\n    \"unpaged\": \"boolean\"\n  },\n  \"totalElements\": \"integer\",\n  \"totalPages\": \"integer\",\n  \"last\": \"boolean\",\n  \"size\": \"integer\",\n  \"number\": \"integer\",\n  \"sort\": {\n    \"empty\": \"boolean\",\n    \"sorted\": \"boolean\",\n    \"unsorted\": \"boolean\"\n  },\n  \"numberOfElements\": \"integer\",\n  \"first\": \"boolean\",\n  \"empty\": \"boolean\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array\">Content Array</h4>\n<p>Each event object in the <code>content</code> array contains:</p>\n<ul>\n<li><strong><code>eventType</code></strong> - Type of event (e.g., <code>highp_event_send_email</code>, <code>highp_event_send_sms</code>)</li>\n<li><strong><code>eventValue</code></strong> - Additional event value (may be empty)</li>\n<li><strong><code>createdAtUTC</code></strong> - Timestamp when the event was created (UTC)</li>\n<li><strong><code>token</code></strong> - Unique token identifier for the event</li>\n<li><strong><code>campaignUuid</code></strong> - UUID of the associated campaign</li>\n<li><strong><code>campaignName</code></strong> - Name of the campaign</li>\n<li><strong><code>contactUuid</code></strong> - UUID of the contact involved</li>\n<li><strong><code>contactName</code></strong> - Name of the contact</li>\n<li><strong><code>repUuid</code></strong> - UUID of the representative</li>\n<li><strong><code>repName</code></strong> - Name of the representative</li>\n</ul>\n<h4 id=\"pagination-metadata\">Pagination Metadata</h4>\n<ul>\n<li><strong><code>totalElements</code></strong> - Total number of events matching the query</li>\n<li><strong><code>totalPages</code></strong> - Total number of pages available</li>\n<li><strong><code>size</code></strong> - Number of items per page</li>\n<li><strong><code>number</code></strong> - Current page number (zero-indexed)</li>\n<li><strong><code>numberOfElements</code></strong> - Number of elements in the current page</li>\n<li><strong><code>first</code></strong> - Boolean indicating if this is the first page</li>\n<li><strong><code>last</code></strong> - Boolean indicating if this is the last page</li>\n<li><strong><code>empty</code></strong> - Boolean indicating if the result set is empty</li>\n</ul>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"eventType\": \"highp_event_send_email\",\n      \"eventValue\": \"\",\n      \"createdAtUTC\": \"2025-11-18 13:02:43\",\n      \"token\": \"YKmrTD\",\n      \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n      \"campaignName\": \"test ene [cloned] started\",\n      \"contactUuid\": \"a90770d8-b4f9-4a4b-bab4-5ec1f18ce689\",\n      \"contactName\": \"Karolina Dąbrowski\",\n      \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n      \"repName\": \"wbbbb bbbwww\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 10,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 2,\n  \"totalPages\": 1,\n  \"last\": true,\n  \"size\": 10,\n  \"number\": 0,\n  \"numberOfElements\": 2,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li>Track message delivery events for a specific representative</li>\n<li>Monitor campaign performance by representative</li>\n<li>Audit message sending history</li>\n<li>Generate reports on representative activity</li>\n<li>Debug message delivery issues</li>\n</ul>\n","urlObject":{"path":["api","core","event","message","all","rep"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>uuid1,uuid2</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"contactSearch","value":"firstname, lastname, email"},{"key":"contactUuid","value":""},{"key":"repSearch","value":"firstname, lastname, email"},{"key":"repUuid","value":"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea"},{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"token","value":"TAtXfT"},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2025-11-19T00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"10"},{"key":"sortBy","value":"createdAtUTC"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"d5f85f60-ece0-4a11-81eb-4c3a64ee4808","name":"[Representatiive] Get Message Events","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/event/message/all/rep?campaignUuid={{campaign-uuid}}&contactSearch=firstname, lastname, email&contactUuid=&repSearch=firstname, lastname, email&repUuid=d9991474-5ccd-4bc2-8ec5-a0b70bebfcea&events=highp_event_send_sms,highp_event_send_email&token=TAtXfT&dateFrom=2024-09-24 00:00:00&dateTo=2025-11-19T00:00:00&page=0&size=10&sortBy=createdAtUTC&sortDirection=desc","host":["testsandbox.highp.me"],"path":["api","core","event","message","all","rep"],"query":[{"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"contactSearch","value":"firstname, lastname, email"},{"key":"contactUuid","value":""},{"key":"repSearch","value":"firstname, lastname, email"},{"key":"repUuid","value":"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea"},{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"token","value":"TAtXfT"},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2025-11-19T00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"10"},{"key":"sortBy","value":"createdAtUTC"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:20:27 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:20:26 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-139a82ac38d2bcfdf3f1701cb4a6152e' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-139a82ac38d2bcfdf3f1701cb4a6152e' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"eventType\": \"highp_event_send_email\",\n            \"eventValue\": \"\",\n            \"createdAtUTC\": \"2025-11-18 13:02:43\",\n            \"token\": \"YKmrTD\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\",\n            \"contactUuid\": \"a90770d8-b4f9-4a4b-bab4-5ec1f18ce689\",\n            \"contactName\": \"Karolina Dąbrowski\",\n            \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n            \"repName\": \"wbbbb bbbwww\"\n        },\n        {\n            \"eventType\": \"highp_event_send_email\",\n            \"eventValue\": \"\",\n            \"createdAtUTC\": \"2025-11-18 13:01:50\",\n            \"token\": \"rziXkG\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\",\n            \"contactUuid\": \"a90770d8-b4f9-4a4b-bab4-5ec1f18ce689\",\n            \"contactName\": \"Karolina Dąbrowski\",\n            \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n            \"repName\": \"wbbbb bbbwww\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 10,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 2,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 10,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 2,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"3b6b5f8d-d750-4cc0-8843-1007d9a2caae"},{"name":"Get Message Events - Xls Export","id":"ebfd73c4-96c6-4781-990c-64976e7dd81e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/event/message/all/export?campaignUuid={{campaign-uuid}}&contactSearch=firstname, lastname, email&contactUuid=string&repSearch=firstname, lastname, email&repUuid=&events=highp_event_send_sms,highp_event_send_email&token=&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-26 00:00:00&extended=true/false","description":"<h1 id=\"get-message-events---xls-export\">Get Message Events - XLS Export</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports message events data to an Excel (XLS) file format. It retrieves all message events associated with a specific campaign and returns them as a downloadable <code>.xlsx</code> file. The endpoint supports various filtering options to narrow down the exported data based on contacts, representatives, event types, and date ranges.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/event/message/all/export\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>token</code> variable should contain a valid JWT access token obtained through the Highp authentication flow.</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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the campaign for which to export message events. Example: <code>{{campaign-uuid}}</code></td>\n</tr>\n<tr>\n<td><code>contactSearch</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search filter for contacts. Accepts comma-separated values to search by firstname, lastname, or email. Example: <code>firstname, lastname, email</code></td>\n</tr>\n<tr>\n<td><code>repSearch</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search filter for representatives. Accepts comma-separated values to search by firstname, lastname, or email. Example: <code>firstname, lastname, email</code></td>\n</tr>\n<tr>\n<td><code>events</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter by specific event types. Accepts comma-separated event type identifiers. Example: <code>highp_event_send_sms,highp_event_send_email</code></td>\n</tr>\n<tr>\n<td><code>dateFrom</code></td>\n<td>string (datetime)</td>\n<td>No</td>\n<td>Start date for filtering events. Format: <code>YYYY-MM-DD HH:MM:SS</code>. Example: <code>2024-09-24 00:00:00</code></td>\n</tr>\n<tr>\n<td><code>dateTo</code></td>\n<td>string (datetime)</td>\n<td>No</td>\n<td>End date for filtering events. Format: <code>YYYY-MM-DD HH:MM:SS</code>. Example: <code>2024-09-26 00:00:00</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p><strong>Content-Type:</strong> <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></p>\n<p>The endpoint returns a binary Excel file (<code>.xlsx</code> format) containing the message events data. The response includes a <code>Content-Disposition</code> header with the filename:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Disposition: attachment; filename={campaignUuid}_events.xlsx\n</code></pre><p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Type</code>: <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></li>\n<li><code>Content-Disposition</code>: <code>attachment; filename={campaignUuid}_events.xlsx</code></li>\n<li><code>Content-Length</code>: Size of the file in bytes</li>\n<li><code>Cache-Control</code>: <code>no-cache</code></li>\n</ul>\n<p>The Excel file contains structured data with message event information including timestamps, contact details, representative information, event types, and message status.</p>\n<h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\n// Configuration\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your-bearer-token';\nconst campaignUuid = 'your-campaign-uuid';\n\n// Optional filters\nconst queryParams = new URLSearchParams({\n  campaignUuid: campaignUuid,\n  // Uncomment and modify as needed:\n  // contactSearch: 'john, doe, john@example.com',\n  // repSearch: 'jane, smith, jane@example.com',\n  // events: 'highp_event_send_sms,highp_event_send_email',\n  // dateFrom: '2024-09-24 00:00:00',\n  // dateTo: '2024-09-26 00:00:00'\n});\n\nconst url = `https://${tenantDomain}/api/core/event/message/all/export?${queryParams}`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    // Get filename from Content-Disposition header\n    const contentDisposition = response.headers.get('content-disposition');\n    const filename = contentDisposition \n      ? contentDisposition.split('filename=')[1] \n      : `${campaignUuid}_events.xlsx`;\n    \n    return response.buffer().then(buffer =&gt; ({ buffer, filename }));\n  })\n  .then(({ buffer, filename }) =&gt; {\n    // Save the file\n    const fs = require('fs');\n    fs.writeFileSync(filename, buffer);\n    console.log(`File saved as: ${filename}`);\n  })\n  .catch(error =&gt; {\n    console.error('Error exporting message events:', error);\n  });\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Campaign Reporting</strong>: Export all message events for a campaign to analyze performance metrics</li>\n<li><strong>Compliance &amp; Auditing</strong>: Download complete message history for compliance purposes</li>\n<li><strong>Data Analysis</strong>: Export data for further analysis in Excel or other tools</li>\n<li><strong>Filtered Exports</strong>: Use date ranges and search filters to export specific subsets of message events</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The exported file format is <code>.xlsx</code> (Excel 2007+)</li>\n<li>Large datasets may take longer to generate and download</li>\n<li>Ensure you have sufficient permissions to access the specified campaign</li>\n<li>The file is generated on-demand and not cached</li>\n</ul>\n","urlObject":{"path":["api","core","event","message","all","export"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>uuid1,uuid2</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"contactSearch","value":"firstname, lastname, email"},{"key":"contactUuid","value":"string"},{"key":"repSearch","value":"firstname, lastname, email"},{"key":"repUuid","value":""},{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"token","value":""},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-26 00:00:00"},{"description":{"content":"<p>optional. true - return specialisations and consents</p>\n","type":"text/plain"},"key":"extended","value":"true/false"}],"variable":[]}},"response":[{"id":"ff5152a9-69cb-4753-a4ce-12c281cee4ce","name":"Get Message Events - Xls Export","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/event/message/all/export?campaignUuid={{campaign-uuid}}&contactSearch=firstname, lastname, email&contactUuid=string&repSearch=firstname, lastname, email&repUuid=&events=highp_event_send_sms,highp_event_send_email&token=&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-26 00:00:00","host":["testsandbox.highp.me"],"path":["api","core","event","message","all","export"],"query":[{"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"contactSearch","value":"firstname, lastname, email"},{"key":"contactUuid","value":"string"},{"key":"repSearch","value":"firstname, lastname, email"},{"key":"repUuid","value":""},{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"token","value":""},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-26 00:00:00"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:21:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"7122"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:21:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=8b9b52fb-b9ee-47ac-944e-2f770c53ab4d_events.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-6c145c6378a432d0839aaea996da8aa8' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-6c145c6378a432d0839aaea996da8aa8' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm��J�0\u0010F_�依&U��v\u0011eAP\\pE�.$c[l~H�]�޴�\u0015Ի$ߙ��7\u0007=f���`MChQ�\f��j0]C\u001e����d!\n��h\r6�X�ik鸴\u001ew�:�q��%�\t\\���1:\u000e\u0010d�Z�\"\u0011&�/�k\u0011��w��|\u0015\u001d\u0002+�3�\u0018�\u0012Q�,��j$G���ҽ�q\u0011(\t8�F\u0013\u0003Ђ�\u000f\u001b��������!\f+5MS1U\u000b�6��t{s�,�\u000ff��D��G5�\u001eED�%\u0001�\u001f.5�\n    <V�W�-iY�NsJsv��%g��깆_���l}{�\n�1��]���\\ß��OPK\u0007\b��P�\u0004\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml��Oo�6\u0014���\u0014�O�\u0015)��(8.\n�\u0003vh\u000f���fP�S��\"5�����n�nC���8K:�\u0012cȂ��{��G�y���f\u0017\u001c��k��f�\u001d�\u0005��.ku{5�Y�����śyߛ@�2W3�,�W�o{X�G\b&��Σ���Ƙ6\u000f�^n�\u0011�;݂��Jw�0�gw\u001b�m\u0007��7\u0000�م\u0011�i؈Z�\u0016�^����\u0001�\tV�-�C�����\u001f%��n��৛���P��[P���hZQߪ����Q�g�8\u000b-�2B�ˊO�Kz_���s\u001a��o��M�����S\u0010ׇZ�mH�݀\f��\u0016�\"B\u0010�\u0002\u0012�\u0004�\rg>|\u0011��>\u001c�\n^Ш*P�\u0001PD\n        <I\u0000E\u0015cX�X\u0014I9�1`�bk�it�1\u001e���X��\u0005�1T(\u0001����\u001c\u0001-*�J\\�$\u001b�(9_���\u0010)9�$a\t�R�()d�2�\u0014\t\\0\\@QI\u0010C�ca?��\u001e�ǡLj՟��A�\u000fN\u001e�F(\u0005;�7�P��ڱ���E�\u0004�Վ�H4DZ���u��[��� \u0007I�\u001f�[\u0019�gq��\"�X�\t��\u0010?�\u000b�~d�i�S�G���\u0011gC����]$�#~s���H�'�@|\u001eY��E|\u001ee��=#�%��Ď���\u0007\\��ۡ ����l�e��xs�y��\u0011yE��?\u0011ğ\bo�[dr�Y����E|\u000b1ρyF|�c��b�Ҳ�/�\u0016y�-��%��cy�+\u0006v��]ĉ�-�}��\u0017�\u0011w\"<�&L\u0003{r�Q�\u001d�W\u001f̯�jʂSK���iw``��z^��9v�r����Y�\u0012�(J\u001c!�+۴�4F\u0019O\u0005\u0012\f�2�d)�����\u000fq�M�\u0005\u001f����>m�Ӕ�B�G��'��7\u0004�?>��j���t9����wڋ�h�?!�Dݿ �Bg7����i���К�&�@7�c=/8~\u0018>#��#qNG7�\u0013\u0012�s\u0018��t3\u001c��tGWNS\t�*\tNS�\u0016���Ԯ\u0016<+Q\u0004��*JDI�䉾�W ��t��\u000b\u0010��_�\u0001PK\u0007\b\n��\u0019W\u0003\u0000\u0000�\r\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml���N�0\f��\n            <E�;K\n\bA�t�\ri\u0007$\u000e��׸m�&�������\n\u001c9Y����Wm�� &�l��Pl\u0014\b�M0�w\u001aޏ/�O��o�K��S\bg�q�\u001a���RJnzrț0�ϛ6D�)��I\u001e#��(�A�)�(\u001dZ\u000f׆2��#��mh\u0017�OG>]K\"\r��,�vd��ޢ0��xV\u000f\u001aZ\u001c�@�ռ��t�_p�\u0002�d':�I��9�\u0007\\��)<:��J�ؑ�OY�A��\u001a\r�`�A,�!�biZ�����\u0006PK\u0007\b��t�\u0000\u0000\u0000e\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000�Rx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��]o[�\u0015����\n���Er��8�ɤ��\u0000\u0005�~�;��\u0018\u0013[��I��+�S�l\u0012}��\b˒�\u0005���}�����}������p{���L�v�\u0017����w��\u001f�/������߿����\u000f\u001f�������\u001f�/?�N����zx�qw����yN�\u001f�w7���㇫����ͻow��t�w;������|��������\t/���ח?��~i~y����\u001f��������\u0017����p������/Ͽ��������oO������㽯��������x�n���O��\u001d�������t~�z~��{�W7��\u0017Ϗ��\u0017�sr�\r�>��t~��ˇ��//vϯ��������m�b��6�1{��J����$f��������b��6����j�~�f�)�:w�TT~**o�\u0018�\n�XU\bǮB8�\u0015±�\u0010�u�p�+�ca!\u001c\u001b\u000b����\n                <UV��\u0010���p��Pe�*+TY��\nUV���P�\n                    <U&�\u0017>���B�\tU&T�PeB�\tU&T�Pe�P�>U�T�Re!\u001c^�+�ʔ*S�L�2�ʔ*Ӆ��2�\u000f�QeF�\u0019UfT�QeF�\u0019UfT�-T�O�9�˜*s�̩2�ʜ*s�̩2��|���TY�wY��*UV��J�U��Re�*�TY]��=U֨�F��pxm�\u001aU֨�F�5��Qe�*k\u000b��]_��N��\u001d�\u0016ҩ��Nk�\u001d5\u0017�i=���b:�iw+�m��a!?�a���^��\u0012������%l/a{\t�K+�u\u0014��8��\u001e� ����\u0010\u0006\te��\u0006\tm�\u0010\u0007\tu�Vx��\u000fRX\u001bO�܂�\u0005\"Ա=4BB$$TBB&$tBB(�\u0015)�N�\u0014V�S{�����=�BB/$\u0004CB1$$CB3�\u00154����lH膘N��\u001c\u0012�!�\u001d\u0012�!�\u001e\u0012�!��!u@$\u0014DBB�����\u0010\u0011\t\u0015��\u0011\t\u001d�\u0010\u0012\t%�V(��%�c{����4���H\b���HH���H������Y�*~r\u0011\u0016!��CZ$�EB\\$�EB^$�EZ\u0001F��H\r�Cc��L������H茄�H(���H+���\u001a\u0019���\u001a!-C?�2Z#�52Z#�52Z#�5�5r�FFkd�FH���\u001a\u0019���\u001a\u0019���\u001a\u0019��W��7\u0003��ｌ�m�2�d\u001eB�\u0014��\u0010<��A\u0004O\"V���5r��\u001eN#BZF�f�FFkd�FFkd�FFk�\u0015k�n�\u001c�0:7���k�\u0016\u001b�Ckd�FFkd�FFkd�F^�F���au=}r\u0015�ۦe�%�h����h����h����+���\u001a���\bi\u0019w\t2Z#�52Z#�52Z#�5�5r�FFkd�FH���\u001a\u0019���\u001a\u0019���\u001a\u0019��W���52Z#�5BZ�]����h����h����h��b�ܭ�q���\u001a!�q� �52Z#�52Z#�52Z#�X�tk�\u001d��\nZ#�S{\u0005�Q�\u001a\u0005�Q�\u001a\u0005�Q�\u001ae�\u001a�[�$z�\u0015�FHe�%(h���(h���(h���(+�(�\u001a\u0005�\u001a\u0005�\u001a!���\u001d�FAk\u0014�FAk\u0014�FAk��Þ�5\n�5\n�5B*�s\u000b\u001f��\u0007?��O|�\u0013\u001f��\u0007@�X�tk\u0014<\u0006��\\#�2:��5\nZ��5\nZ��5\nZ��X�tk�0���{8�\b��\u001eZ��5\nZ��5\nZ��5ʊ5J�F��FAk�T�]���(h���(h���(h��b�ҭQ� ���\b��\u001eZ��5\nZ��5\nZ��5ʊ5J�FAk\u0014�FH���\u001a\u0005�Q�\u001a\u0005�Q�\u001a\u0005�QV�Q�5\nZ��5B*�\u000eUAk\u0014�FAk\u0014�FAk\u0014�FY��tk\b�5\u0004�\u0011ҩ=Ak\bZC�\u001a��\u0010���5d�\u001aҭ!8�\u0010�FH���\u001a��\u0010���5\u0004�!h\rY��tkH��p�\u0011ҹ=���5\u0004�!h\rAk\bZCV�!�\u001a�'Y\b�5B*�޲�5\u0004�!h\rAk\bZC�\u001a�b\rٜn��P\tZ#�s{|�\u0005�s�']�Y\u0017|�\u0005�w�b\r��\u0010<�J�\u001a!��Ck\bZC�\u001a��\u0010���5d�\u001aҭ!8�\u0010�FH���\u001a��\u0010���5\u0004�!h\rY��tk\b�5\u0004�\u0011R\u0019�\u001a��\u0010���5\u0004�!h\rAkȊ5�[C�&����N;T!�q�!h\rAk\bZC�\u001a��\u0010���XC�5$����^�����;��\u0010���5\u0004�!h\rAkȊ5�[C��k\u001d�y\u0019�a��ǘ�����P���5\u0014��h\rEk�5�[C�\u001a��\b�N'<�5\u0014��h\rEk(ZC�\u001a�b\r��P<�J�\u001a!�q�E�\u001a��P���5\u0014��h\r]��vk(\u001eC�h���(5Ek(ZC�\u001a��P���5t�\u001aڭ�h\rEk�T����5\u0014��h\rEk(ZC�\u001a�b\rݜ�s\rEk�T����5\u0014��h\rEk(ZC�\u001a�b\r��P���5B:���P���5\u0014��h\rEk�5�[C�&��rH��^Hu\\-+ZC�\u001a��P���5\u0014��+��n\r\r��铋�\b���eEk(ZC�\u001a��P���5t�\u001aڭ�x���\\#�6\u001eǢh\rEk(ZC�\u001a��P���Xú5\f��2�k����X\f�ah\rCk\u0018Z��\u001a�ְ\u0015kX���1T��\b��\u001eZ��\u001a��0���5\f�a+ְn\rù��5B:���0���5\f�ah\rCk؊5�[�p�ah�����5\f�ah\rCk\u0018Z��\u001a�b\r��0���5B:���0���5\f�ah\rCk؊5�[��\u001a��\b��;T��0���5\f�ah\rCk؊5lsq)���5B:��\u0017��+L�%��\u001aS|�)��Ԋ5�[�p�a8�\b��\u001eZ��\u001a��0���5\f�a+ְn\r�c�\f��\n��\u001eZ��\u001a��0���5\f�a+ְn\rCk\u0018Z#�6]\u0019\u000e�ah\rCk\u0018Z��\u001a�ְ\u0015kx���5\u001c�\u0011R\u001b��\u001d��h\rGk8Z��\u001a���\u0015kx���5\u001c�\u0011ҹ=���5\u001c��h\rGk8Z�W���\u001a�s\rGk��ƝyGk8Z��\u001a��p���5|�\u001aޭ�8�p�FHmܙw���5\u001c��h\rGk8Z�W���\u001a��p�FH���\u001a��p���5\u001c��h\r_��wk8\u001eC�h�����5\u001c��h\rGk8Z��\u001a�b\r��p\n                        <_��\u001a!��Ck8Z��\u001a��p���5|�\u001a���-_Ԗ�j\u001b�1N�\u001c��h\rGk8Z��\u001a���\u0015kx����m\u001d�\u0011R\u001b�B��p���5\u001c��h\rGk��5�[��\u001a��\b��\u001eZ��\u001a��p���5\u001c��+֨�\u001a\u0015�רh���8S�h��֨h��֨h��֨+֨�\u001a\u0015���h���8S�h��֨h��֨h��֨+֨�\u001a\u0015�\r\u000f�4�\r��{�\u0015�Q�\u001a\u0015�Q�\u001a\u0015�Q�\u001au�\u001a�[���1��ۦ>�PU�FEkT�FEkT�FEk�\u0015k�n��]]����u��}�]��֨h��֨h��֨h��b�ڭQ\u0015���P����\u00041��=�FEkT�FEkT�F]�F�֨�յױ=���}�\u0015KH�nl\u000f�Q�\u001a���^H��\u001eZ��X�vk���N��T��B:}r\u001d�CkT�F|�=���\u001au�\u001au�U\u001a\u0015�\u000b���ttnL����4�\u000b5*�W�=�N�\u0015k�n�\u001a41�X�|���ѹ1��CkT�F|䩽���5�5Z�F\u000b���KIv�^H��w/�c{\r���\u001a���b:���\u001am�\u001a�[��/���\u000b��^��\u0012���hh���S{\t�Ck�\u0015k�n���P����\n�t\\-�tn\u000f���\u001a��2���h+�h�\u001a-L.ƿ{\r�\u0011�6�sC:���hh���S{\u0005�Ck�\u0015k�n�\u0016V��'\u0017�\u0011�6}\u001d�`{h��ֈ�<�'�\u001eZ��X�uk4�FCk����\b��\u001eZ��5�#O�)���h+�h�\u001aͰ=�FH��B:J��5\u001aZ��\\��\\��5ڊ5Z�Fsl\u000f��\b��^H��\u001eZ��5�#���p��n�\u000f��\u0010\u001bW�o\u0007�|�a��������7���pw}�{�8�{8����[翢\u001f�7�n|ڿ?}��ˋ��v�ۿO�Ͽ���[���Z��\u0000PK\u0007\b�\u0007��>\r\u0000\u0000�y\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[��P�\u0004\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[\n��\u0019W\u0003\u0000\u0000�\r\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000C\b\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[��t�\u0000\u0000\u0000e\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\t\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\n\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000�Rx[�\u0007��>\r\u0000\u0000�y\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u000b\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000}\u0019\u0000\u0000\u0000\u0000"}],"_postman_id":"ebfd73c4-96c6-4781-990c-64976e7dd81e"},{"name":"Get Multiple Campaigns Message Events - Xls Export","id":"bbddb60b-f33e-47e0-9b7d-c7ffe50bd26e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/event/message/all-campaigns/export?events=highp_event_send_sms,highp_event_send_email&dateFrom=2024-09-24 00:00:00&dateTo=2025-09-26 00:00:00&campaignUuids=c4dc22d2-0614-472c-aa8d-ff530f3e5b65,8b9b52fb-b9ee-47ac-944e-2f770c53ab4d&contactUuid=example_uuid&repUuid=example_uuid&messageToken=string","description":"<h1 id=\"get-multiple-campaigns-message-events---xls-export\">Get Multiple Campaigns Message Events - XLS Export</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports message events for multiple campaigns in XLS (Excel) format. It allows you to retrieve and download event data such as SMS sends, email sends, and other campaign-related events for analysis and reporting purposes.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a bearer token. The token should be passed in the <code>Authorization</code> header.</p>\n<p><strong>Required Variable:</strong></p>\n<ul>\n<li><code>token</code> - Your API authentication token</li>\n<li><code>tenant_domain</code> - Your tenant's domain URL</li>\n</ul>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>events</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Comma-separated list of event types to export. Examples: <code>highp_event_send_sms</code>, <code>highp_event_send_email</code></td>\n</tr>\n<tr>\n<td><code>campaignUuids</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Comma-separated list of campaign UUIDs to export events from</td>\n</tr>\n<tr>\n<td><code>dateFrom</code></td>\n<td>string</td>\n<td>No</td>\n<td>Start date for the event range in format: <code>YYYY-MM-DD HH:MM:SS</code> (e.g., <code>2024-09-24 00:00:00</code>)</td>\n</tr>\n<tr>\n<td><code>dateTo</code></td>\n<td>string</td>\n<td>No</td>\n<td>End date for the event range in format: <code>YYYY-MM-DD HH:MM:SS</code> (e.g., <code>2025-09-26 00:00:00</code>)</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter events by specific contact UUID</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter events by specific representative UUID</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-usage\">Example Usage</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.com';\nconst token = 'your-auth-token';\n\nconst queryParams = new URLSearchParams({\n  events: 'highp_event_send_sms,highp_event_send_email',\n  campaignUuids: 'c4dc22d2-0614-472c-aa8d-ff530f3e5b65,8b9b52fb-b9ee-47ac-944e-2f770c53ab4d',\n  dateFrom: '2024-09-24 00:00:00',\n  dateTo: '2025-09-26 00:00:00'\n});\n\nconst url = `https://${tenantDomain}/api/core/event/message/all-campaigns/export?${queryParams}`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.blob(); // XLS file as blob\n  })\n  .then(blob =&gt; {\n    // Save the file or process the blob\n    console.log('Export successful, file size:', blob.size);\n  })\n  .catch(error =&gt; {\n    console.error('Error exporting events:', error);\n  });\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<p>The endpoint returns an XLS (Excel) file containing the exported message events. The file will include columns for event details such as:</p>\n<ul>\n<li>Event type</li>\n<li>Campaign information</li>\n<li>Contact details</li>\n<li>Timestamp</li>\n<li>Status</li>\n<li>Additional event-specific metadata</li>\n</ul>\n<p>The response content type is typically <code>application/vnd.ms-excel</code> or <code>application/octet-stream</code>.</p>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li>Export campaign performance data for offline analysis</li>\n<li>Generate reports for stakeholders</li>\n<li>Archive historical campaign event data</li>\n<li>Analyze message delivery patterns across multiple campaigns</li>\n<li>Audit campaign activities within specific date ranges</li>\n</ul>\n","urlObject":{"path":["api","core","event","message","all-campaigns","export"],"host":["testsandbox.highp.me"],"query":[{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2025-09-26 00:00:00"},{"key":"campaignUuids","value":"c4dc22d2-0614-472c-aa8d-ff530f3e5b65,8b9b52fb-b9ee-47ac-944e-2f770c53ab4d"},{"key":"contactUuid","value":"example_uuid"},{"key":"repUuid","value":"example_uuid"},{"key":"messageToken","value":"string"}],"variable":[]}},"response":[{"id":"662c1ba0-d122-4bb3-907d-7c6dc60962d7","name":"Get Multiple Campaigns Message Events - Xls Export","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/event/message/all-campaigns/export?events=highp_event_send_sms,highp_event_send_email&dateFrom=2024-09-24 00:00:00&dateTo=2025-09-26 00:00:00&campaignUuids=c4dc22d2-0614-472c-aa8d-ff530f3e5b65,8b9b52fb-b9ee-47ac-944e-2f770c53ab4d&contactUuid=example_uuid&repUuid=example_uuid&messageToken=string","host":["testsandbox.highp.me"],"path":["api","core","event","message","all-campaigns","export"],"query":[{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2025-09-26 00:00:00"},{"key":"campaignUuids","value":"c4dc22d2-0614-472c-aa8d-ff530f3e5b65,8b9b52fb-b9ee-47ac-944e-2f770c53ab4d"},{"key":"contactUuid","value":"example_uuid"},{"key":"repUuid","value":"example_uuid"},{"key":"messageToken","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:24:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"3889"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:24:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=campaigns_events.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-3e324b0ea0f30b8733e508dbb22679bd' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-3e324b0ea0f30b8733e508dbb22679bd' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm��J�0\u0010F_�依�[EB�E�\u0005Aq���w!\u0019�b�C\u0012����u���%��\u001c&_�=�1yG�\u0007�kB��$�����j����\u000b������X\u0013mȶ��e�8�;cх\u0001}\u00125�3ak҇`\u0019�\u0017=*�H�\u0018�\u0018�x�Wׁ��w\bE�����%\u000f\u001cfajW#9)�X��͍�@\n�\u0011\u0015���f\u0014~؀N�\u0007�d%�~X�i��i�pq#\n��ۇe�t���\u0005��:��p�\u0003�$\nX������isu��HS��YJiZ�-�YQ��>W�k~\u0016~��k.c!=&����[�+�Ss�\tPK\u0007\b��<�\u0005\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml}TK�� \u0010��W ��\u0003k��1Q�U�l�\u001e��n��\u0016�\u0018bob��d�\\����J�}��\u0018��\u0007x\u0006���K�GOp\u0018���\u0012zC\u0012\u0004Nw�q�Y�^��Ur;1\u001d\u0006�twt~��Art��#,��<\u0000a\u00167̒��~�������M׃\u000b��\u000e����M��\u0000�\f5�o�iFH���q�|:4��=��hu�a���4��2\u001f��8���\u0003z�^-^�̪ہ���l{�l\u001dZ��.�I���h�E�����\u0007w�w\u000f�U�\u0005����m�o�R�f\u0000g6���>R�Y2�1L)�\u0015�t�����O�\u0012�\u001fc�RB��*�\u0004\u0000.��X\u0014\u0005��rN4˥*L��\u0010��.��\u000e���&���\u0015f9X\\\u0000-��B``�Jn��E\u0015{hV<\u0007���\u0012#��\u0005/0���B�\fW�\u0019�Dq�@Y\r2��TxPxO�S��l\u0019a��I�M\b\u001d�����]��H�I�c�Y<��:F\u001f�=���?�ZCIY�RA��K�JT\u0006g���2*\r\u001b�K\u000e&\u0004���D\u0018F���|\u001c�ce)�!\u0019��ae�+QJ,9T���h>�<|�*O]�\u001c��\u0012-��B�[���a�\u001dPK\u0007\b\t�zl�\u0001\u0000\u0000I\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml���N�0\f��\n    <E�;K\n\bA�t�\ri\u0007$\u000e��׸m�&�������\n\u001c9Y����Wm�� &�l��Pl\u0014\b�M0�w\u001aޏ/�O��o�K��S\bg�q�\u001a���RJnzrț0�ϛ6D�)��I\u001e#��(�A�)�(\u001dZ\u000f׆2��#��mh\u0017�OG>]K\"\r��,�vd��ޢ0��xV\u000f\u001aZ\u001c�@�ռ��t�_p�\u0002�d':�I��9�\u0007\\��)<:��J�ؑ�OY�A��\u001a\r�`�A,�!�biZ�����\u0006PK\u0007\b��t�\u0000\u0000\u0000e\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000\u0014Sx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��]o�0\u0014����\n���\u0004l�C@�-ɒJ���۽\u0003�C\u0005�����ϰ\u000e���Q�^��\t�I\u001e~wmp�zlT���jM\u0002��h�*%?��\u001fo�C�!�(�2�R���ߏ)��\u0019��p�kىq�\u0006��R*�\tc��\n�AKQ̓�6��k\u001ev��I�\u0014M'�i�@�2%���'N�,�������\u001c\u0007��'�^���H��C#N?d+s#���W9�\u000e�M��w�M\u0007�,�kk���A6Um�2�����\n#�D�K�m�7�O\u0007�\u001b�PJF;>g�$<�%���m\u001b�>�-�m�\u0018���(l{�1ؾ���vp�\rlG����䶻���h��\u0016����@��@��@��@��@��@��@��@��@�\u000fY���\u0018Y���1�fnA�f�b�,��b�,��b�,���.d\u0014#�\u0018�\u001b#�-\u0003��(FF12��Q��bd�\n2��1��ad\f#\u0003�S�1��ad�^<��y\u001e\u0019FƮ �\u000b\u0019��8F�12\u0010�_|�12����z\u000f~\u0000��#�\u0018\u0019��Bg�\u001cD%�\n]5�\u0018��1�����ƒ�J\u0019�������C`\u0019��4�Y$�7��ب�m/�\u001b�\u001fPK\u0007\b�yt��\u0001\u0000\u0000�\b\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[��<�\u0005\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[\t�zl�\u0001\u0000\u0000I\u0004\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0006\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[��t�\u0000\u0000\u0000e\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000a\b\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000}\t\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000\u0014Sx[�yt��\u0001\u0000\u0000�\b\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\n\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000�\f\u0000\u0000\u0000\u0000"}],"_postman_id":"bbddb60b-f33e-47e0-9b7d-c7ffe50bd26e"},{"name":"[Representative] Get Message Events - Xls Export","id":"6a5aceaf-76db-4a6e-b961-e815334f39ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/event/message/all/export/rep?campaignUuid={{campaign-uuid}}&contactSearch=firstname, lastname, email&contactUuid=string&repSearch=firstname, lastname, email&repUuid=d9991474-5ccd-4bc2-8ec5-a0b70bebfcea&events=highp_event_send_sms,highp_event_send_email&token=&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-26 00:00:00","description":"<h1 id=\"get-message-events---xls-export-representative\">Get Message Events - XLS Export (Representative)</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports message events for a specific representative in XLS (Excel) format. It retrieves all message-related events (such as SMS and email sends) associated with a representative within a campaign and returns them as a downloadable Excel spreadsheet.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/event/message/all/export/rep\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"query-parameters\">Query Parameters</h2>\n<h3 id=\"required-parameters\">Required 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>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Required.</strong> The unique identifier of the campaign for which to export message events.</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Required.</strong> The unique identifier of the representative whose message events should be exported.</td>\n</tr>\n<tr>\n<td><code>events</code></td>\n<td>string</td>\n<td><strong>Required.</strong> Comma-separated list of event types to include in the export. Common values include: <code>highp_event_send_sms</code>, <code>highp_event_send_email</code>. Example: <code>highp_event_send_sms,highp_event_send_email</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"optional-parameters\">Optional 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>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>contactSearch</code></td>\n<td>string</td>\n<td>Search filter for contacts by firstname, lastname, or email.</td>\n</tr>\n<tr>\n<td><code>repSearch</code></td>\n<td>string</td>\n<td>Search filter for representatives by firstname, lastname, or email.</td>\n</tr>\n<tr>\n<td><code>dateFrom</code></td>\n<td>string (datetime)</td>\n<td>Start date for filtering events. Format: <code>YYYY-MM-DD HH:MM:SS</code>. Example: <code>2024-09-24 00:00:00</code></td>\n</tr>\n<tr>\n<td><code>dateTo</code></td>\n<td>string (datetime)</td>\n<td>End date for filtering events. Format: <code>YYYY-MM-DD HH:MM:SS</code>. Example: <code>2024-09-26 00:00:00</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns an Excel file (<code>.xlsx</code>) containing the message events data.</p>\n<p><strong>Content-Type:</strong> <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></p>\n<p><strong>Content-Disposition:</strong> <code>attachment; filename={uuid}_events.xlsx</code></p>\n<p>The Excel file contains columns with message event details including event types, timestamps, contact information, and message delivery status.</p>\n<h3 id=\"response-headers\">Response Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\nContent-Disposition: attachment; filename={campaign_uuid}_events.xlsx\nContent-Length: {file_size}\n</code></pre><h2 id=\"code-example-nodejs-with-fetch\">Code Example (Node.js with fetch)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst exportMessageEvents = async () =&gt; {\n  const tenantDomain = 'your-tenant.highp.me';\n  const campaignUuid = 'your-campaign-uuid';\n  const repUuid = 'your-representative-uuid';\n  const token = 'your-bearer-token';\n  \n  const url = new URL(`https://${tenantDomain}/api/core/event/message/all/export/rep`);\n  \n  // Add query parameters\n  url.searchParams.append('campaignUuid', campaignUuid);\n  url.searchParams.append('repUuid', repUuid);\n  url.searchParams.append('events', 'highp_event_send_sms,highp_event_send_email');\n  \n  // Optional: Add date filters\n  url.searchParams.append('dateFrom', '2024-09-24 00:00:00');\n  url.searchParams.append('dateTo', '2024-09-26 00:00:00');\n  \n  try {\n    const response = await fetch(url.toString(), {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    // Get the file as a buffer\n    const buffer = await response.buffer();\n    \n    // Save to file\n    const fs = require('fs');\n    const filename = `message_events_${Date.now()}.xlsx`;\n    fs.writeFileSync(filename, buffer);\n    \n    console.log(`File downloaded successfully: ${filename}`);\n    return filename;\n    \n  } catch (error) {\n    console.error('Error exporting message events:', error);\n    throw error;\n  }\n};\n\n// Usage\nexportMessageEvents()\n  .then(filename =&gt; console.log('Export complete:', filename))\n  .catch(error =&gt; console.error('Export failed:', error));\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Campaign Reporting:</strong> Export all message events for a representative to analyze campaign performance</li>\n<li><strong>Compliance &amp; Auditing:</strong> Download records of all sent messages for compliance purposes</li>\n<li><strong>Data Analysis:</strong> Export event data for further analysis in Excel or other tools</li>\n<li><strong>Representative Performance:</strong> Track message delivery and engagement metrics per representative</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The exported file includes all message events matching the specified criteria</li>\n<li>Large datasets may take longer to generate</li>\n<li>The file is generated on-demand and returned as a binary stream</li>\n<li>Ensure you have appropriate permissions to access the campaign and representative data</li>\n</ul>\n","urlObject":{"path":["api","core","event","message","all","export","rep"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>uuid1,uuid2</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"contactSearch","value":"firstname, lastname, email"},{"key":"contactUuid","value":"string"},{"key":"repSearch","value":"firstname, lastname, email"},{"key":"repUuid","value":"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea"},{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"token","value":""},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-26 00:00:00"}],"variable":[]}},"response":[{"id":"a1c64f50-eb88-4419-86f2-c979ecff9f3f","name":"[Representative] Get Message Events - Xls Export","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/event/message/all/export/rep?campaignUuid={{campaign-uuid}}&contactSearch=firstname, lastname, email&contactUuid=string&repSearch=firstname, lastname, email&repUuid=d9991474-5ccd-4bc2-8ec5-a0b70bebfcea&events=highp_event_send_sms,highp_event_send_email&token=&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-26 00:00:00","host":["testsandbox.highp.me"],"path":["api","core","event","message","all","export","rep"],"query":[{"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"contactSearch","value":"firstname, lastname, email"},{"key":"contactUuid","value":"string"},{"key":"repSearch","value":"firstname, lastname, email"},{"key":"repUuid","value":"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea"},{"key":"events","value":"highp_event_send_sms,highp_event_send_email"},{"key":"token","value":""},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-26 00:00:00"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:26:08 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"4045"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:26:07 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=78bab367-90a7-4faf-ba47-bb054320d506_events.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-8b2a57b66681cde6d70db1f9cdadc463' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-8b2a57b66681cde6d70db1f9cdadc463' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm�]K�0\u0014��J�}{�N�\bm�(\u0003Aq�D�.$Ƕ�|�D;��i�\u0015Ի$�s\u001eN�j{�C��>��Ԅ\u0015�dh�U�ik�p��\u001b��(�\u0012�5X\u0013cɶ����z�{���\u001eC�4&p�j���8@�\u001dj\u0011�D�\u0014�X�ELW߂\u0013�U�\b%�k�\u0018�\u0012Q�$��b$'���ҽ�a\u0016(\t8�F\u0013\u0003���\u000f\u001b������,�1�\u000b5�c1�f.m�����~^>���u���Nj.=��*K\u0002\u001e?\\j�;y\\]^\u001dv�)iy�3��g\u0007Fy��t�\\���I�u���H�t���'ny��O��'PK\u0007\bџ��\u0005\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml�Tێ�0\u0010}�+�<����8\u0017WmW��,hQťe�\b����\r�8!q��!�����+\u0010��+\u00119RrΜ��$��Ն\\aە��\u0004�!\u000b\bZ]�Ү&�r�����޸�\u001c��ֺI����-?mq�\u0013����,��\u0004k�Q\u0018vz�\u0015t\u000f�\u0006�g������v\u0015vM�`�5��6a�X\u001aVP�`:����MO��:��np\u001c��8ܣ3�a�\u001dP����_.f\u000f�̢�D�\u0007gP5P�,Y.�\u001e�IΡ\u001al4��\u0003�\u000e\u000bq�t/�9������j�\\��\u000e����,7���\u001fIĢ�rN#F�\u001c�t�Y?������>��\nT�fT2Ȩ(��\nDF�b��#f\u0012��5\u000e�<�E�^oj��\u0003�\u001c�\u000eM?0�u!�DQ�ɜ\n��T��Tʘ\u001b\u0019�4\u0015��������\u001fu�z]�ˁk#��\"\u00134��P�tDs�\t\u0005�2�P\u0015\u001a���)\u0011�v�>7?��|�\u0010�\u0014q\"�J�\u0012*�T�\\��\u001aa�kH\u0015\u001b�?�\u0001yW⦼�z������<:y�T�\u0007B�󈁤\u001c\u0012M��U�\u0019\u00164e�bi�fz��3h�Mi�������$\u0007��Yw�n���\"b\u0005&)R%4�\"�@!���I�F��e� ���~��\u000b�p�\u0015�\u0013\u001e�X4\u0012q?��Y�.\u0006_\u0011��f&�V\nI\u0005\b�'X��@�\u000b�kL�A�����7�\u001e\u001c��\u001f>J\u0006\u0005�7���?h����\u001fPK\u0007\b@��\u0016b\u0002\u0000\u0000T\u0005\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml���N�0\f��\n    <E�;K\n\bA�t�\ri\u0007$\u000e��׸m�&�������\n\u001c9Y����Wm�� &�l��Pl\u0014\b�M0�w\u001aޏ/�O��o�K��S\bg�q�\u001a���RJnzrț0�ϛ6D�)��I\u001e#��(�A�)�(\u001dZ\u000f׆2��#��mh\u0017�OG>]K\"\r��,�vd��ޢ0��xV\u000f\u001aZ\u001c�@�ռ��t�_p�\u0002�d':�I��9�\u0007\\��)<:��J�ؑ�OY�A��\u001a\r�`�A,�!�biZ�����\u0006PK\u0007\b��t�\u0000\u0000\u0000e\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000DSx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��]o�0\u0014����\n���\u0004\u0003n+��\u0006Y�4i��=!N@\u0005\u001c\u00197�ϟa\u001d�9ӎr\u0017�\u0005�<���㯾�.R��\u001aR�Y��'�Z\u001d�ᔲ\u001f߷���c�.�*�26R\u001a�^?�)k�9?��X7��ƕ:�����}e�P���eu�o�;?X�c��ځeɡ��0-�iyL����Y0?K�k��::��i�R/Ӡ<����T�o����vl�������};���\u000e�X�v櫺�d{j�}��>��%��TY���Ӷ�\r�ӏ��](e�\u001d_�u�_�\u0012�[��\rl\u001f�\u0016�����V�-�m�\b�On�a۹M�V��\u000e�g��/ͷF\u000bT�@\u0005.\u0006�\u0002\u0011S���@�X b-\u00101\u0017��\u000bD\f\u0006\"\u0016\u0003�?d|!�\u0014\u0019��8E��\u0000M[p��Sd`Z��\u001d�hC%���\rd�B\u0016Rd!E��\u0000�H9�H�\b)��\"\u0003Ӣ�\u0003\u0011��eH��7�E\u000bYD�E\u0014�\u001b\u0003�\u001d� �\u001d\u0016\u0011E\u0016Qd`�{D�F�\u001e��(��\u0006�x!�)��\"s#G1\u0007\u0011}$EL��\u0014\u0019�\u0016��;\u0010ѴeL��7���LPd�\"s#Gϖ��>�BPd�\"\u0013\u0014���\u0004E&(2�9f����\\�S;��^\u0019�z{�Y\t��\u001e�2RO#���س�2����W1O�9�̿�:��;\u001d�#Z�\u001bPK\u0007\bn��\u001a-\u0002\u0000\u0000�\t\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[џ��\u0005\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[@��\u0016b\u0002\u0000\u0000T\u0005\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000O\u0007\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[��t�\u0000\u0000\u0000e\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\b\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\t\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000DSx[n��\u001a-\u0002\u0000\u0000�\t\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u000b\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000x\r\u0000\u0000\u0000\u0000"}],"_postman_id":"6a5aceaf-76db-4a6e-b961-e815334f39ec"},{"name":"Get Message Events Types","id":"bf072a67-0d73-4e8a-8d29-506059ce61c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/event/message/types","description":"<h1 id=\"get-message-events-types\">Get Message Events Types</h1>\n<h2 id=\"description\">Description</h2>\n<p>This endpoint retrieves a comprehensive list of all available message event types in the Highp platform. These event types represent various actions and interactions that can occur throughout the lifecycle of messages, campaigns, and user engagement tracking.</p>\n<p>The endpoint returns an array of event type identifiers that can be used for:</p>\n<ul>\n<li>Event tracking and analytics</li>\n<li>Filtering event logs</li>\n<li>Setting up event-based triggers</li>\n<li>Monitoring campaign performance</li>\n<li>Understanding user interactions with content</li>\n</ul>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/event/message/types\n</code></pre><h2 id=\"url-structure\">URL Structure</h2>\n<h3 id=\"path-variables\">Path Variables</h3>\n<ul>\n<li><strong><code>tenant_domain</code></strong> (required): Your Highp tenant domain (e.g., <code>yourtenant.highp.me</code>)</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>token</code> variable should contain a valid JWT access token obtained through the Highp authentication process.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<p>This endpoint does not accept any query parameters.</p>\n<h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer {token}</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\n// Configuration\nconst tenantDomain = 'yourtenant.highp.me'; // Replace with your tenant domain\nconst accessToken = 'your_access_token_here'; // Replace with your access token\n\n// API endpoint\nconst url = `https://${tenantDomain}/api/core/event/message/types`;\n\n// Make the request\nasync function getMessageEventTypes() {\n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const eventTypes = await response.json();\n    console.log('Message Event Types:', eventTypes);\n    return eventTypes;\n  } catch (error) {\n    console.error('Error fetching message event types:', error);\n    throw error;\n  }\n}\n\n// Execute the function\ngetMessageEventTypes();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a JSON array of strings, where each string represents a unique event type identifier.</p>\n<p><strong>Response Type:</strong> <code>Array&lt;string&gt;</code></p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"event-type-categories\">Event Type Categories</h3>\n<p>The response includes event types organized into the following categories:</p>\n<h4 id=\"messaging-events\"><strong>Messaging Events</strong></h4>\n<ul>\n<li><code>highp_event_send_sms</code> - SMS message sent</li>\n<li><code>highp_event_send_email</code> - Email message sent</li>\n<li><code>highp_event_send_whats_app</code> - WhatsApp message sent</li>\n<li><code>highp_event_resend_email</code> - Email resent</li>\n<li><code>highp_event_resend_sms</code> - SMS resent</li>\n<li><code>highp_event_resend_whats_app</code> - WhatsApp message resent</li>\n</ul>\n<h4 id=\"openingaccess-events\"><strong>Opening/Access Events</strong></h4>\n<ul>\n<li><code>highp_event_open_via_sms</code> - Content opened via SMS link</li>\n<li><code>highp_event_open_via_email</code> - Content opened via email link</li>\n<li><code>highp_event_open_via_whats_app</code> - Content opened via WhatsApp link</li>\n<li><code>highp_event_open_via_proxy</code> - Content opened via proxy</li>\n<li><code>highp_event_open_via_link</code> - Content opened via direct link</li>\n<li><code>highp_event_open_preview</code> - Preview opened</li>\n</ul>\n<h4 id=\"media-playback-events\"><strong>Media Playback Events</strong></h4>\n<ul>\n<li><code>highp_event_play</code> - Media playback started</li>\n<li><code>highp_event_pause</code> - Media playback paused</li>\n<li><code>highp_event_finish</code> - Media playback finished</li>\n<li><code>highp_event_move_to_screen</code> - Moved to different screen</li>\n</ul>\n<h4 id=\"user-interaction-events\"><strong>User Interaction Events</strong></h4>\n<ul>\n<li><code>highp_event_click</code> - Element clicked</li>\n<li><code>highp_event_start</code> - Session started</li>\n<li><code>highp_event_answer</code> - Question answered</li>\n<li><code>highp_event_feedback</code> - Feedback provided</li>\n<li><code>highp_event_form_completed</code> - Form completed</li>\n</ul>\n<h4 id=\"subscription-management\"><strong>Subscription Management</strong></h4>\n<ul>\n<li><code>highp_event_unsubscribe</code> - General unsubscribe</li>\n<li><code>highp_event_unsubscribe_sms</code> - SMS unsubscribe</li>\n<li><code>highp_event_unsubscribe_email</code> - Email unsubscribe</li>\n<li><code>highp_event_cancel</code> - Subscription cancelled</li>\n</ul>\n<h4 id=\"delivery-status-events\"><strong>Delivery Status Events</strong></h4>\n<ul>\n<li><code>highp_event_bounce_email</code> - Email bounced</li>\n<li><code>highp_event_bounce_sms</code> - SMS bounced</li>\n<li><code>sms_provider_message_status</code> - SMS provider status update</li>\n<li><code>email_provider_message_status</code> - Email provider status update</li>\n</ul>\n<h4 id=\"order-events\"><strong>Order Events</strong></h4>\n<ul>\n<li><code>highp_event_order</code> - Order placed</li>\n</ul>\n<h4 id=\"proxyvideo-events\"><strong>Proxy/Video Events</strong></h4>\n<ul>\n<li><code>proxy_createdbyviewer</code> - Proxy created by viewer</li>\n<li><code>proxy_created</code> - Proxy created</li>\n<li><code>proxy_addvideo</code> - Video added to proxy</li>\n<li><code>proxy_savevideo</code> - Video saved in proxy</li>\n</ul>\n<h4 id=\"ai-events\"><strong>AI Events</strong></h4>\n<ul>\n<li><code>highp_event_ai_prompt</code> - AI prompt submitted</li>\n<li><code>highp_event_ai_answer</code> - AI answer received</li>\n<li><code>highp_event_ai_response</code> - AI response generated</li>\n<li><code>highp_event_ai_click</code> - AI element clicked</li>\n<li><code>highp_event_ai_rate</code> - AI response rated</li>\n</ul>\n<h4 id=\"streaming-events\"><strong>Streaming Events</strong></h4>\n<ul>\n<li><code>highp_event_stream</code> - Stream started</li>\n<li><code>highp_event_stream_ok</code> - Stream successful</li>\n<li><code>highp_event_stream_rate</code> - Stream rated</li>\n</ul>\n<h4 id=\"presentation-events\"><strong>Presentation Events</strong></h4>\n<ul>\n<li><code>presentation_start</code> - Presentation started</li>\n<li><code>presentation_finish</code> - Presentation finished</li>\n<li><code>slide_show</code> - Slide displayed</li>\n<li><code>slide_play</code> - Slide playback started</li>\n<li><code>slide_finish</code> - Slide finished</li>\n</ul>\n<h4 id=\"consent-events\"><strong>Consent Events</strong></h4>\n<ul>\n<li><code>consent_add</code> - Consent added</li>\n<li><code>consent_remove</code> - Consent removed</li>\n</ul>\n<h4 id=\"popup-events\"><strong>Popup Events</strong></h4>\n<ul>\n<li><code>popup_skip</code> - Popup skipped</li>\n<li><code>popup_start</code> - Popup started</li>\n<li><code>popup_finish</code> - Popup finished</li>\n</ul>\n<h4 id=\"tracking-events\"><strong>Tracking Events</strong></h4>\n<ul>\n<li><code>highp_cookie</code> - Cookie tracking event</li>\n</ul>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    \"highp_event_order\",\n    \"highp_event_send_sms\",\n    \"highp_event_send_email\",\n    \"highp_event_send_whats_app\",\n    \"highp_event_open_via_sms\",\n    \"highp_event_open_via_email\",\n    \"highp_event_open_via_whats_app\",\n    \"highp_event_open_via_proxy\",\n    \"highp_event_open_via_link\",\n    \"proxy_createdbyviewer\",\n    \"proxy_created\",\n    \"proxy_addvideo\",\n    \"proxy_savevideo\",\n    \"highp_event_move_to_screen\",\n    \"highp_event_play\",\n    \"highp_event_pause\",\n    \"highp_event_finish\",\n    \"highp_event_feedback\",\n    \"highp_event_click\",\n    \"highp_event_start\",\n    \"highp_event_answer\",\n    \"highp_event_unsubscribe\",\n    \"highp_event_unsubscribe_sms\",\n    \"highp_event_unsubscribe_email\",\n    \"highp_event_cancel\",\n    \"highp_event_resend_email\",\n    \"highp_event_resend_sms\",\n    \"highp_event_resend_whats_app\",\n    \"highp_event_bounce_email\",\n    \"highp_event_bounce_sms\",\n    \"highp_event_form_completed\",\n    \"highp_event_ai_prompt\",\n    \"highp_event_ai_answer\",\n    \"highp_event_ai_response\",\n    \"highp_event_ai_click\",\n    \"highp_event_ai_rate\",\n    \"highp_event_stream\",\n    \"highp_event_stream_ok\",\n    \"highp_event_stream_rate\",\n    \"presentation_start\",\n    \"presentation_finish\",\n    \"slide_show\",\n    \"slide_play\",\n    \"slide_finish\",\n    \"consent_add\",\n    \"consent_remove\",\n    \"popup_skip\",\n    \"popup_start\",\n    \"popup_finish\",\n    \"highp_event_open_preview\",\n    \"highp_cookie\",\n    \"sms_provider_message_status\",\n    \"email_provider_message_status\"\n]\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or missing authentication token\"\n}\n</code></pre>\n<h3 id=\"403-forbidden\">403 Forbidden</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Forbidden\",\n  \"message\": \"Insufficient permissions to access this resource\"\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ol>\n<li><strong>Event Filtering</strong>: Use the returned event types to filter event logs and analytics</li>\n<li><strong>Integration Setup</strong>: Reference these event types when setting up webhooks or event listeners</li>\n<li><strong>Documentation</strong>: Understand all possible events that can occur in the Highp platform</li>\n<li><strong>Monitoring</strong>: Build dashboards that track specific event types</li>\n<li><strong>Automation</strong>: Create automated workflows based on specific event triggers</li>\n</ol>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The list of event types is relatively stable but may be extended as new features are added to the platform</li>\n<li>Event type identifiers follow a consistent naming convention: <code>{prefix}_event_{action}</code> or <code>{category}_{action}</code></li>\n<li>All event types are returned in a single array with no pagination</li>\n<li>The endpoint does not require any parameters and returns the complete list of available event types</li>\n</ul>\n","urlObject":{"path":["api","core","event","message","types"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"16807b5f-3ee8-4e27-89c3-80bcc3354fcf","name":"Get Message Events Types","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/event/message/types"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:27:05 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:27:04 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-028afeb2614296e0378b8509aa628f28' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-028afeb2614296e0378b8509aa628f28' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n    \"highp_event_order\",\n    \"highp_event_send_sms\",\n    \"highp_event_send_email\",\n    \"highp_event_send_whats_app\",\n    \"highp_event_open_via_sms\",\n    \"highp_event_open_via_email\",\n    \"highp_event_open_via_whats_app\",\n    \"highp_event_open_via_proxy\",\n    \"highp_event_open_via_link\",\n    \"proxy_createdbyviewer\",\n    \"proxy_created\",\n    \"proxy_addvideo\",\n    \"proxy_savevideo\",\n    \"highp_event_move_to_screen\",\n    \"highp_event_play\",\n    \"highp_event_pause\",\n    \"highp_event_finish\",\n    \"highp_event_feedback\",\n    \"highp_event_click\",\n    \"highp_event_start\",\n    \"highp_event_answer\",\n    \"highp_event_unsubscribe\",\n    \"highp_event_unsubscribe_sms\",\n    \"highp_event_unsubscribe_email\",\n    \"highp_event_cancel\",\n    \"highp_event_resend_email\",\n    \"highp_event_resend_sms\",\n    \"highp_event_resend_whats_app\",\n    \"highp_event_bounce_email\",\n    \"highp_event_bounce_sms\",\n    \"highp_event_form_completed\",\n    \"highp_event_ai_prompt\",\n    \"highp_event_ai_answer\",\n    \"highp_event_ai_response\",\n    \"highp_event_ai_click\",\n    \"highp_event_ai_rate\",\n    \"highp_event_stream\",\n    \"highp_event_stream_ok\",\n    \"highp_event_stream_rate\",\n    \"presentation_start\",\n    \"presentation_finish\",\n    \"slide_show\",\n    \"slide_play\",\n    \"slide_finish\",\n    \"consent_add\",\n    \"consent_remove\",\n    \"popup_skip\",\n    \"popup_start\",\n    \"popup_finish\",\n    \"highp_event_open_preview\",\n    \"highp_cookie\",\n    \"sms_provider_message_status\",\n    \"email_provider_message_status\"\n]"}],"_postman_id":"bf072a67-0d73-4e8a-8d29-506059ce61c1"}],"id":"8822a095-a889-49b2-be1f-fdadbb3b7f18","_postman_id":"8822a095-a889-49b2-be1f-fdadbb3b7f18","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Fragment","item":[{"name":"Get All","id":"b30d2630-c867-454c-bf1c-695aab89eae3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/fragment/all?campaignUuid={{campaign-uuid}}&search=string&page=0&size=20&sortBy=name&sortDirection=asc","description":"<h1 id=\"retrieve-all-fragments\">Retrieve All Fragments</h1>\n<p>This endpoint retrieves all fragments associated with a specific campaign. Fragments are reusable content pieces that can be customized with variables and used across campaigns. The endpoint supports pagination, sorting, and optional search filtering.</p>\n<h2 id=\"overview\">Overview</h2>\n<p>Fragments allow you to create dynamic, personalized content by defining default values and allowed variations. Each fragment can contain variables (e.g., <code>{{doc.fullName}}</code>, <code>{{rep.firstName}}</code>) that get replaced with actual values when used in campaigns.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>{{token}}</code> - Your API access token</li>\n<li><code>testsandbox.highp.me</code> - Your tenant's domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>{{campaign-uuid}}</code> - The UUID of the campaign to retrieve fragments for</li>\n</ul>\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/fragment/all</code></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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>-</td>\n<td>The unique identifier for the campaign whose fragments are to be retrieved</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>The page number for pagination (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>The number of items per page (max: 100)</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>name</td>\n<td>Field to sort by (e.g., <code>name</code>, <code>uuid</code>, <code>description</code>)</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>asc</td>\n<td>Sort direction: <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Optional search term to filter fragments by name or description</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\n// Configuration\nconst tenantDomain = 'testsandbox.highp.me';\nconst token = 'your-access-token-here';\nconst campaignUuid = 'your-campaign-uuid-here';\n\n// API endpoint with query parameters\nconst url = `https://${tenantDomain}/api/core/fragment/all?campaignUuid=${campaignUuid}&amp;page=0&amp;size=20&amp;sortBy=name&amp;sortDirection=asc`;\n\n// Make the request\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Total fragments:', data.totalElements);\n    console.log('Fragments:', data.content);\n    \n    // Process each fragment\n    data.content.forEach(fragment =&gt; {\n      console.log(`Fragment: ${fragment.name}`);\n      console.log(`  UUID: ${fragment.uuid}`);\n      console.log(`  Default Value: ${fragment.defaultValue}`);\n    });\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching fragments:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"response-schema\">Response Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"string\",\n      \"name\": \"string\",\n      \"description\": \"string\",\n      \"defaultValue\": \"string\",\n      \"allowedValues\": \"string (JSON array as string)\",\n      \"campaignUuids\": [\"string\"]\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": \"boolean\",\n      \"unsorted\": \"boolean\",\n      \"sorted\": \"boolean\"\n    },\n    \"offset\": \"integer\",\n    \"pageNumber\": \"integer\",\n    \"pageSize\": \"integer\",\n    \"paged\": \"boolean\",\n    \"unpaged\": \"boolean\"\n  },\n  \"totalElements\": \"integer\",\n  \"totalPages\": \"integer\",\n  \"last\": \"boolean\",\n  \"size\": \"integer\",\n  \"number\": \"integer\",\n  \"sort\": {\n    \"empty\": \"boolean\",\n    \"unsorted\": \"boolean\",\n    \"sorted\": \"boolean\"\n  },\n  \"numberOfElements\": \"integer\",\n  \"first\": \"boolean\",\n  \"empty\": \"boolean\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"fragment-object-content-array\">Fragment Object (<code>content</code> array)</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the fragment</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the fragment (e.g., \"Context\", \"Customize introduction\")</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>A brief description of the fragment's purpose</td>\n</tr>\n<tr>\n<td><code>defaultValue</code></td>\n<td>string</td>\n<td>The default content/text for this fragment. May contain variables like <code>{{doc.fullName}}</code></td>\n</tr>\n<tr>\n<td><code>allowedValues</code></td>\n<td>string</td>\n<td>JSON array (as string) containing alternative values that can be used for this fragment</td>\n</tr>\n<tr>\n<td><code>campaignUuids</code></td>\n<td>array</td>\n<td>List of campaign UUIDs that use this fragment</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"pagination-object-pageable\">Pagination Object (<code>pageable</code>)</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sort.empty</code></td>\n<td>boolean</td>\n<td>Whether the sort information is empty</td>\n</tr>\n<tr>\n<td><code>sort.unsorted</code></td>\n<td>boolean</td>\n<td>Whether the results are unsorted</td>\n</tr>\n<tr>\n<td><code>sort.sorted</code></td>\n<td>boolean</td>\n<td>Whether the results are sorted</td>\n</tr>\n<tr>\n<td><code>offset</code></td>\n<td>integer</td>\n<td>The offset of the first item in the current page</td>\n</tr>\n<tr>\n<td><code>pageNumber</code></td>\n<td>integer</td>\n<td>The current page number (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>integer</td>\n<td>The number of items per page</td>\n</tr>\n<tr>\n<td><code>paged</code></td>\n<td>boolean</td>\n<td>Whether pagination is enabled</td>\n</tr>\n<tr>\n<td><code>unpaged</code></td>\n<td>boolean</td>\n<td>Whether pagination is disabled</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"top-level-response-fields\">Top-Level Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>totalElements</code></td>\n<td>integer</td>\n<td>Total number of fragments available across all pages</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td><code>last</code></td>\n<td>boolean</td>\n<td>Whether this is the last page</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>The size of the current page</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>The current page number (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>numberOfElements</code></td>\n<td>integer</td>\n<td>Number of elements in the current page</td>\n</tr>\n<tr>\n<td><code>first</code></td>\n<td>boolean</td>\n<td>Whether this is the first page</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Whether the result set is empty</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"48df1c84-73b2-45bb-992d-f2151db8881c\",\n      \"name\": \"Context\",\n      \"description\": \"What we are following up?\",\n      \"defaultValue\": \"It was a pleasure speaking with you earlier. Thank you for sharing your insights.\",\n      \"allowedValues\": \"[\\\"It was great meeting you during conference. I really enjoyed our discussion. &lt;br&gt;\\\",\\\"Thank you for taking the time to meet with me at your office. I appreciated the opportunity to learn more about your current challenges.\\\"]\",\n      \"campaignUuids\": [\n        \"9a5d1f9c-3c9f-420a-b2f4-724c405e09f4\"\n      ]\n    },\n    {\n      \"uuid\": \"0113fed2-67de-4dc8-8150-e1d802452d24\",\n      \"name\": \"Customize introduction\",\n      \"description\": \"\",\n      \"defaultValue\": \"It was great meeting you. Thank you for your kind time and I am following up with invitation.\",\n      \"allowedValues\": \"[\\\"It was great hearing you again. Thank you for delightful VC. I am following up with invitation to our upcoming event.\\\",\\\"It was great seeing you at the ASH Convention. I am following up with invitation to our upcoming event.\\\"]\",\n      \"campaignUuids\": [\n        \"6a4bd1fb-068f-48e3-a860-647497024f5b\"\n      ]\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"unsorted\": false,\n      \"sorted\": true\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 5,\n  \"totalPages\": 1,\n  \"last\": true,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": false,\n    \"unsorted\": false,\n    \"sorted\": true\n  },\n  \"numberOfElements\": 5,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or missing authentication token\"\n}\n</code></pre>\n<h3 id=\"404-not-found\">404 Not Found</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Not Found\",\n  \"message\": \"Campaign not found\"\n}\n</code></pre>\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Bad Request\",\n  \"message\": \"Invalid campaignUuid format\"\n}\n</code></pre>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li><strong>Valid Campaign UUID Required:</strong> Ensure the <code>campaignUuid</code> parameter contains a valid UUID to retrieve the corresponding fragments</li>\n<li><strong>Empty Results:</strong> The response will return an empty <code>content</code> array if no fragments are found for the specified campaign</li>\n<li><strong>Pagination:</strong> Use <code>page</code> and <code>size</code> parameters to navigate through large result sets</li>\n<li><strong>Sorting:</strong> Combine <code>sortBy</code> and <code>sortDirection</code> to order results by any fragment field</li>\n<li><strong>Search:</strong> Use the optional <code>search</code> parameter to filter fragments by name or description</li>\n<li><strong>Variables in Content:</strong> Fragment values may contain template variables (e.g., <code>{{doc.fullName}}</code>, <code>{{rep.firstName}}</code>) that are replaced with actual values when used in campaigns</li>\n<li><strong>Allowed Values:</strong> The <code>allowedValues</code> field contains a JSON array stored as a string. Parse it to access alternative content options for the fragment</li>\n</ul>\n","urlObject":{"path":["api","core","fragment","all"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"asc"}],"variable":[]}},"response":[{"id":"214227bd-90dc-4474-9edd-dcd31f5d174b","name":"Get All","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/fragment/all?campaignUuid={{campaign-uuid}}&search=string&page=0&size=20&sortBy=name&sortDirection=asc","host":["testsandbox.highp.me"],"path":["api","core","fragment","all"],"query":[{"description":"optional","key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:27:53 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:27:52 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-e21c0b09ffc0de4578ea4ce450a11f26' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-e21c0b09ffc0de4578ea4ce450a11f26' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"uuid\": \"48df1c84-73b2-45bb-992d-f2151db8881c\",\n            \"name\": \"Context\",\n            \"description\": \"What we are following up?\",\n            \"defaultValue\": \"It was a pleasure speaking with you earlier. Thank you for sharing your insights.\",\n            \"allowedValues\": \"[\\\"It was great meeting you during conference. I really enjoyed our discussion. <br>\\\",\\\"Thank you for taking the time to meet with me at your office. I appreciated the opportunity to learn more about your current challenges.\\\"]\",\n            \"campaignUuids\": [\n                \"9a5d1f9c-3c9f-420a-b2f4-724c405e09f4\"\n            ]\n        },\n        {\n            \"uuid\": \"0113fed2-67de-4dc8-8150-e1d802452d24\",\n            \"name\": \"Customize introduction\",\n            \"description\": \"\",\n            \"defaultValue\": \"It was great meeting you. Thank you for your kind time and I am following up with invitation.\",\n            \"allowedValues\": \"[\\\"It was great hearing you again. Thank you for delightful VC. I am following up with invitation to our upcoming event.\\\",\\\"It was great seeing you at the ASH Convention. I am following up with invitation to our upcoming event.\\\"]\",\n            \"campaignUuids\": [\n                \"6a4bd1fb-068f-48e3-a860-647497024f5b\"\n            ]\n        },\n        {\n            \"uuid\": \"affa7b48-d941-4dc0-9f2b-24e0cf8de289\",\n            \"name\": \"Treść maila1\",\n            \"description\": \"Treść maila1\",\n            \"defaultValue\": \"Z godnie z wiadomością\\n blah blah\\nprzesyłam blah blah {{rep.fullName}}\",\n            \"allowedValues\": \"[\\\"Z godnie z wiadomością1<br><br><br>blah blah1<br><br><br>przesyłam blah blah1 {{doc.firstName}}\\\",\\\"Z godnie z wiadomością2<br><br>blah blah2<br><br><br>przesyłam blah blah2 {{rep.lastName}}\\\"]\",\n            \"campaignUuids\": [\n                \"330d12af-15c9-458e-b6d4-e57087f88057\"\n            ]\n        },\n        {\n            \"uuid\": \"b89b3bfe-329b-475b-b10c-cd9a7c816e85\",\n            \"name\": \"treść SMS\",\n            \"description\": \"treść SMS\",\n            \"defaultValue\": \"Z godnie z wiadomością5\\nblah blah5\\nprzesyłam blah blah5 {{rep.fullName}}\",\n            \"allowedValues\": \"[\\\"Z godnie z wiadomością6\\\\nblah blah6\\\\nprzesyłam blah blah6 {{doc.fullName}}\\\"]\",\n            \"campaignUuids\": [\n                \"330d12af-15c9-458e-b6d4-e57087f88057\"\n            ]\n        },\n        {\n            \"uuid\": \"52164cc3-fc85-492c-a9ce-9361bc6883b8\",\n            \"name\": \"Tytuł maila1\",\n            \"description\": \"Tytuł maila1\",\n            \"defaultValue\": \"Dzień dobry {{doc.fullName}}\",\n            \"allowedValues\": \"[\\\"Witam {{doc.firstName}}\\\",\\\"Hola {{doc.lastName}}\\\"]\",\n            \"campaignUuids\": [\n                \"330d12af-15c9-458e-b6d4-e57087f88057\"\n            ]\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 5,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"unsorted\": false,\n        \"sorted\": true\n    },\n    \"numberOfElements\": 5,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"b30d2630-c867-454c-bf1c-695aab89eae3"},{"name":"Create","id":"bc16f101-1746-4f3e-8970-ab1133b0db4d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test postamn t12\",\n  \"description\": \"Opis 123\", //optional\n  \"defaultValue\": \"test12222\", //optional\n  \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\" //this format can be replaced by frontend - backend not use it currently / optional\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/fragment/create","description":"<h1 id=\"create-fragment\">Create Fragment</h1>\n<p>Creates a new fragment in the Highp platform. Fragments are reusable content elements that can be associated with campaigns and used across multiple contexts.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/fragment/create</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"variables\">Variables</h2>\n<ul>\n<li><code>testsandbox.highp.me</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>{{token}}</code> - Your authentication bearer token</li>\n</ul>\n<h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body should be in JSON format with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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><strong>Yes</strong></td>\n<td>The name of the fragment</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>No</td>\n<td>A description of the fragment's purpose or content</td>\n</tr>\n<tr>\n<td><code>defaultValue</code></td>\n<td>string</td>\n<td>No</td>\n<td>The default value for the fragment</td>\n</tr>\n<tr>\n<td><code>allowedValues</code></td>\n<td>string</td>\n<td>No</td>\n<td>JSON string array of allowed values (format: <code>[\"value1\", \"value2\", \"value3\"]</code>)</td>\n</tr>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>UUID of the campaign to associate with this fragment</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Test postamn t12\",\n  \"description\": \"Opis 123\",\n  \"defaultValue\": \"test12222\",\n  \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n  \"campaignUuid\": \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\"\n}\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"78e62f72-693d-4eee-b7de-9f48de4ccd9b\",\n  \"name\": \"Test postamn t1\",\n  \"description\": \"Opis 123\",\n  \"defaultValue\": \"test12222\",\n  \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n  \"campaignUuids\": [\n    \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\"\n  ]\n}\n</code></pre>\n<p><strong>Response Fields:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the created fragment</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the fragment</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>The fragment's description</td>\n</tr>\n<tr>\n<td><code>defaultValue</code></td>\n<td>string</td>\n<td>The default value of the fragment</td>\n</tr>\n<tr>\n<td><code>allowedValues</code></td>\n<td>string</td>\n<td>JSON string array of allowed values</td>\n</tr>\n<tr>\n<td><code>campaignUuids</code></td>\n<td>array</td>\n<td>Array of campaign UUIDs associated with this fragment</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst token = 'your_bearer_token_here'; // Replace with your access token\n\nconst createFragment = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/fragment/create`;\n  \n  const requestBody = {\n    name: \"My Fragment\",\n    description: \"Fragment description\",\n    defaultValue: \"default value\",\n    allowedValues: JSON.stringify([\"value1\", \"value2\", \"value3\"]),\n    campaignUuid: \"campaign-uuid-here\" // Optional\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Fragment created successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating fragment:', error);\n    throw error;\n  }\n};\n\n// Call the function\ncreateFragment();\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>allowedValues</code> field accepts a JSON string array format</li>\n<li>When a <code>campaignUuid</code> is provided in the request, the response will include it in the <code>campaignUuids</code> array</li>\n<li>The API returns the created fragment with a generated <code>uuid</code> that can be used for future operations</li>\n</ul>\n","urlObject":{"path":["api","core","fragment","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"caad09ef-7058-40b4-86d1-11298b8c2274","name":"Create","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test postamn t12\",\n  \"description\": \"Opis 123\", //optional\n  \"defaultValue\": \"test12222\", //optional\n  \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\" //this format can be replaced by frontend - backend not use it currently / optional\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/fragment/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:29:02 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:29:01 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-de756fb62a3a58f3d9bbf4a6239a4911' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-de756fb62a3a58f3d9bbf4a6239a4911' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"78e62f72-693d-4eee-b7de-9f48de4ccd9b\",\n    \"name\": \"Test postamn t1\",\n    \"description\": \"Opis 123\",\n    \"defaultValue\": \"test12222\",\n    \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n    \"campaignUuids\": [\n        \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\"\n    ]\n}"}],"_postman_id":"bc16f101-1746-4f3e-8970-ab1133b0db4d"},{"name":"Update","id":"663aadd9-695a-4ff3-9c81-a345c2d8ab15","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test postamn t1 ed\",\n  \"description\": \"Opis 123\", //optional\n  \"defaultValue\": \"test12222\", //optional\n  \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/fragment/78e62f72-693d-4eee-b7de-9f48de4ccd9b","description":"<h1 id=\"update-fragment\">Update Fragment</h1>\n<p>Updates an existing fragment by its UUID. Fragments are reusable content elements that can be used across multiple campaigns in the Highp platform.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT https://testsandbox.highp.me/api/core/fragment/{fragmentUuid}\n</code></pre><h3 id=\"url-parameters\">URL 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>fragmentUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the fragment to update</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"variables\">Variables</h3>\n<ul>\n<li><strong><code>tenant-domain</code></strong>: Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><strong><code>token</code></strong>: Bearer authentication token for API access</li>\n</ul>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body should be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"defaultValue\": \"string\",\n  \"allowedValues\": \"string\"\n}\n</code></pre>\n<h3 id=\"request-body-parameters\">Request Body Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The name of the fragment</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>No</td>\n<td>A description of the fragment's purpose or content</td>\n</tr>\n<tr>\n<td><code>defaultValue</code></td>\n<td>string</td>\n<td>No</td>\n<td>The default value for the fragment</td>\n</tr>\n<tr>\n<td><code>allowedValues</code></td>\n<td>string</td>\n<td>No</td>\n<td>JSON string array of allowed values (e.g., <code>\"[\\\"value1\\\", \\\"value2\\\", \\\"value3\\\"]\"</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {your_access_token}\n</code></pre><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns the updated fragment object with all its properties:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"78e62f72-693d-4eee-b7de-9f48de4ccd9b\",\n  \"name\": \"Test postamn t1 ed\",\n  \"description\": \"Opis 123\",\n  \"defaultValue\": \"test12222\",\n  \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n  \"campaignUuids\": [\n    \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\"\n  ]\n}\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the fragment</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the fragment</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>The fragment's description</td>\n</tr>\n<tr>\n<td><code>defaultValue</code></td>\n<td>string</td>\n<td>The default value of the fragment</td>\n</tr>\n<tr>\n<td><code>allowedValues</code></td>\n<td>string</td>\n<td>JSON string array of allowed values</td>\n</tr>\n<tr>\n<td><code>campaignUuids</code></td>\n<td>array</td>\n<td>List of campaign UUIDs that use this fragment</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-example\">Node.js Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me';\nconst fragmentUuid = '78e62f72-693d-4eee-b7de-9f48de4ccd9b';\nconst accessToken = 'your_access_token_here';\n\nconst updateFragment = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/fragment/${fragmentUuid}`;\n  \n  const requestBody = {\n    name: \"Updated Fragment Name\",\n    description: \"Updated description\",\n    defaultValue: \"new default value\",\n    allowedValues: JSON.stringify([\"value1\", \"value2\", \"value3\"])\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'PUT',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': `Bearer ${accessToken}`\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Fragment updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating fragment:', error);\n    throw error;\n  }\n};\n\n// Execute the function\nupdateFragment();\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid request body or parameters</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to update the fragment</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Fragment with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","core","fragment","78e62f72-693d-4eee-b7de-9f48de4ccd9b"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"309bb268-68ef-4ea4-9a55-83ea2718844c","name":"Update","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test postamn t1 ed\",\n  \"description\": \"Opis 123\", //optional\n  \"defaultValue\": \"test12222\", //optional\n  \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/fragment/78e62f72-693d-4eee-b7de-9f48de4ccd9b"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:30:19 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:30:18 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-394076a0f0e99d1b60a79dbb665c4d4f' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-394076a0f0e99d1b60a79dbb665c4d4f' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"78e62f72-693d-4eee-b7de-9f48de4ccd9b\",\n    \"name\": \"Test postamn t1 ed\",\n    \"description\": \"Opis 123\",\n    \"defaultValue\": \"test12222\",\n    \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n    \"campaignUuids\": [\n        \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\"\n    ]\n}"}],"_postman_id":"663aadd9-695a-4ff3-9c81-a345c2d8ab15"},{"name":"Delete","id":"74f7a229-225d-4b5a-9dc6-c057feccde92","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/fragment/953ff52e-10ec-47d1-97d6-9648c96804dc?campaignUuid=string","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint deletes a specific fragment from the Highp platform. Fragments are reusable content components that can be used across campaigns and messages. When a fragment is deleted, it is permanently removed from the system.</p>\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>DELETE</code></p>\n<p><strong>Endpoint:</strong> <code>https://testsandbox.highp.me/api/core/fragment/{fragmentUuid}</code></p>\n<p><strong>Authentication:</strong> Bearer Token (required)</p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>fragmentUuid</code></td>\n<td>UUID</td>\n<td>Yes</td>\n<td>The unique identifier of the fragment to delete. Example: <code>953ff52e-10ec-47d1-97d6-9648c96804dc</code></td>\n</tr>\n</tbody>\n</table>\n</div><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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>UUID</td>\n<td>No</td>\n<td>Optional campaign UUID to associate with the deletion operation</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"variables\">Variables</h2>\n<p>This request uses the following collection/environment variables:</p>\n<ul>\n<li><strong><code>tenant-domain</code></strong>: Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><strong><code>token</code></strong>: Your Bearer authentication token for API access</li>\n</ul>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me';\nconst fragmentUuid = '953ff52e-10ec-47d1-97d6-9648c96804dc';\nconst token = 'your_access_token_here';\n\nconst deleteFragment = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/fragment/${fragmentUuid}`,\n      {\n        method: 'DELETE',\n        headers: {\n          'Authorization': `Bearer ${token}`\n        }\n      }\n    );\n\n    if (response.ok) {\n      console.log('Fragment deleted successfully');\n      return { success: true, status: response.status };\n    } else {\n      const errorText = await response.text();\n      console.error('Failed to delete fragment:', errorText);\n      return { success: false, status: response.status, error: errorText };\n    }\n  } catch (error) {\n    console.error('Error deleting fragment:', error);\n    throw error;\n  }\n};\n\n// Execute the deletion\ndeleteFragment();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the fragment is successfully deleted, the API returns an empty response with status code 200.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Length: 0\nCache-Control: no-cache\nX-XSS-Protection: 1; mode=block\nX-Frame-Options: DENY\nX-Content-Type-Options: nosniff\n</code></pre><h3 id=\"response-schema\">Response Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": 200,\n  \"body\": null,\n  \"message\": \"Fragment deleted successfully\"\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Invalid fragment UUID format</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Insufficient permissions to delete the fragment</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Fragment with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server error during deletion</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>This operation is <strong>irreversible</strong>. Once a fragment is deleted, it cannot be recovered.</li>\n<li>Ensure the fragment is not currently in use by active campaigns before deletion.</li>\n<li>The optional <code>campaignUuid</code> query parameter can be used to track which campaign initiated the deletion for audit purposes.</li>\n</ul>\n","urlObject":{"path":["api","core","fragment","953ff52e-10ec-47d1-97d6-9648c96804dc"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"campaignUuid","value":"string"}],"variable":[]}},"response":[{"id":"98cf777e-90ee-49b5-8f71-ef2711011ca7","name":"Delete","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/fragment/953ff52e-10ec-47d1-97d6-9648c96804dc?campaignUuid=string","host":["testsandbox.highp.me"],"path":["api","core","fragment","953ff52e-10ec-47d1-97d6-9648c96804dc"],"query":[{"description":"optional","key":"campaignUuid","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:31:01 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:31:00 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-ef2e5bfd930fc6c723eefe36b2be0e70' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-ef2e5bfd930fc6c723eefe36b2be0e70' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"74f7a229-225d-4b5a-9dc6-c057feccde92"},{"name":"Add To Campaign","id":"e169e33c-fb8c-417d-b9e7-b64c6bd88a0b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/fragment/ffadaff1-c2af-4e1b-a276-bf23f50ee5b4/add-to-campaign?campaignUuid=8b9b52fb-b9ee-47ac-944e-2f770c53ab4d","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint adds a fragment to a campaign in the Highp platform. A fragment represents a customizable data element that can be associated with one or more campaigns. This operation links an existing fragment (identified by its UUID in the URL path) to a specific campaign.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code></p>\n<p><strong>URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://testsandbox.highp.me/api/core/fragment/{fragmentUuid}/add-to-campaign\n</code></pre><p><strong>Path Parameters:</strong></p>\n<ul>\n<li><code>fragmentUuid</code> (string, required) - The unique identifier of the fragment to add to the campaign<ul>\n<li>Example: <code>ffadaff1-c2af-4e1b-a276-bf23f50ee5b4</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><code>campaignUuid</code> (string, required) - The unique identifier of the campaign to which the fragment will be added<ul>\n<li>Example: <code>8b9b52fb-b9ee-47ac-944e-2f770c53ab4d</code></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"variables\">Variables</h2>\n<p>This endpoint uses the following Postman variables:</p>\n<ul>\n<li><code>testsandbox.highp.me</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>{{token}}</code> - Bearer authentication token for API access</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"response-model\">Response Model</h2>\n<p><strong>Success Response (200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"uuid\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"defaultValue\": \"string\",\n    \"allowedValues\": \"string\",\n    \"campaignUuids\": [\"string\"]\n}\n</code></pre>\n<p><strong>Response Fields:</strong></p>\n<ul>\n<li><code>uuid</code> - The unique identifier of the fragment</li>\n<li><code>name</code> - The name of the fragment</li>\n<li><code>description</code> - Description of the fragment</li>\n<li><code>defaultValue</code> - The default value assigned to the fragment</li>\n<li><code>allowedValues</code> - JSON string array of allowed values for the fragment</li>\n<li><code>campaignUuids</code> - Array of campaign UUIDs that this fragment is associated with (includes the newly added campaign)</li>\n</ul>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me';\nconst fragmentUuid = 'ffadaff1-c2af-4e1b-a276-bf23f50ee5b4';\nconst campaignUuid = '8b9b52fb-b9ee-47ac-944e-2f770c53ab4d';\nconst token = 'your_access_token_here';\n\nconst url = `https://${tenantDomain}/api/core/fragment/${fragmentUuid}/add-to-campaign?campaignUuid=${campaignUuid}`;\n\nconst options = {\n  method: 'POST',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n};\n\nfetch(url, options)\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Fragment added to campaign successfully:', data);\n    console.log('Campaign UUIDs:', data.campaignUuids);\n  })\n  .catch(error =&gt; {\n    console.error('Error adding fragment to campaign:', error);\n  });\n</code></pre>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"uuid\": \"ffadaff1-c2af-4e1b-a276-bf23f50ee5b4\",\n    \"name\": \"Test postamn t12\",\n    \"description\": \"Opis 123\",\n    \"defaultValue\": \"test12222\",\n    \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n    \"campaignUuids\": [\n        \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\"\n    ]\n}\n</code></pre>\n","urlObject":{"path":["api","core","fragment","ffadaff1-c2af-4e1b-a276-bf23f50ee5b4","add-to-campaign"],"host":["testsandbox.highp.me"],"query":[{"key":"campaignUuid","value":"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d"}],"variable":[]}},"response":[{"id":"158b3a4d-813a-43fd-a009-b6516d856e25","name":"Add To Campaign","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/fragment/ffadaff1-c2af-4e1b-a276-bf23f50ee5b4/add-to-campaign?campaignUuid=8b9b52fb-b9ee-47ac-944e-2f770c53ab4d","host":["testsandbox.highp.me"],"path":["api","core","fragment","ffadaff1-c2af-4e1b-a276-bf23f50ee5b4","add-to-campaign"],"query":[{"key":"campaignUuid","value":"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:36:44 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:36:43 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-c4ef73855b2711e18e1dae787873537e' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-c4ef73855b2711e18e1dae787873537e' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"ffadaff1-c2af-4e1b-a276-bf23f50ee5b4\",\n    \"name\": \"Test postamn t12\",\n    \"description\": \"Opis 123\",\n    \"defaultValue\": \"test12222\",\n    \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n    \"campaignUuids\": [\n        \"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d\"\n    ]\n}"}],"_postman_id":"e169e33c-fb8c-417d-b9e7-b64c6bd88a0b"},{"name":"Remove From Campaign","id":"af6e1c9e-4d93-49f8-95b0-a13d140381d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/fragment/ffadaff1-c2af-4e1b-a276-bf23f50ee5b4/remove-from-campaign?campaignUuid=8b9b52fb-b9ee-47ac-944e-2f770c53ab4d","description":"<h1 id=\"remove-fragment-from-campaign\">Remove Fragment From Campaign</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint removes a fragment from a specified campaign. When a fragment is successfully removed, the campaign UUID will no longer be associated with that fragment.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code></p>\n<p><strong>URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{tenant-domain}/api/core/fragment/{fragmentUuid}/remove-from-campaign\n</code></pre><h3 id=\"path-parameters\">Path 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>fragmentUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the fragment to remove from the campaign</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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the campaign from which the fragment should be removed</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {token}\n</code></pre><p>The <code>{{token}}</code> variable should contain your valid access token.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<p>This endpoint does not require a request body.</p>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the fragment is successfully removed from the campaign, the API returns the updated fragment object with an empty <code>campaignUuids</code> array.</p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Response Schema:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"defaultValue\": \"string\",\n  \"allowedValues\": \"string\",\n  \"campaignUuids\": []\n}\n</code></pre>\n<p><strong>Response Fields:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the fragment</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the fragment</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>Description of the fragment</td>\n</tr>\n<tr>\n<td><code>defaultValue</code></td>\n<td>string</td>\n<td>The default value for the fragment</td>\n</tr>\n<tr>\n<td><code>allowedValues</code></td>\n<td>string</td>\n<td>JSON string containing allowed values for the fragment</td>\n</tr>\n<tr>\n<td><code>campaignUuids</code></td>\n<td>array</td>\n<td>Array of campaign UUIDs associated with this fragment (empty after removal)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"uuid\": \"ffadaff1-c2af-4e1b-a276-bf23f50ee5b4\",\n    \"name\": \"Test postamn t12\",\n    \"description\": \"Opis 123\",\n    \"defaultValue\": \"test12222\",\n    \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n    \"campaignUuids\": []\n}\n</code></pre>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst fragmentUuid = 'ffadaff1-c2af-4e1b-a276-bf23f50ee5b4';\nconst campaignUuid = '8b9b52fb-b9ee-47ac-944e-2f770c53ab4d';\nconst token = 'your_access_token_here';\n\nconst url = `https://${tenantDomain}/api/core/fragment/${fragmentUuid}/remove-from-campaign?campaignUuid=${campaignUuid}`;\n\nconst options = {\n  method: 'POST',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n};\n\nfetch(url, options)\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Fragment removed from campaign successfully:', data);\n    console.log('Remaining campaigns:', data.campaignUuids);\n  })\n  .catch(error =&gt; {\n    console.error('Error removing fragment from campaign:', error);\n  });\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>After successful removal, the <code>campaignUuids</code> array in the response will not contain the removed campaign UUID</li>\n<li>The fragment itself is not deleted, only its association with the specified campaign is removed</li>\n<li>Ensure you have the necessary permissions to modify fragments and campaigns</li>\n</ul>\n","urlObject":{"path":["api","core","fragment","ffadaff1-c2af-4e1b-a276-bf23f50ee5b4","remove-from-campaign"],"host":["testsandbox.highp.me"],"query":[{"key":"campaignUuid","value":"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d"}],"variable":[]}},"response":[{"id":"18a735ec-8b57-46a0-8b6c-d010b63f6edd","name":"Remove From Campaign","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/fragment/ffadaff1-c2af-4e1b-a276-bf23f50ee5b4/remove-from-campaign?campaignUuid=8b9b52fb-b9ee-47ac-944e-2f770c53ab4d","host":["testsandbox.highp.me"],"path":["api","core","fragment","ffadaff1-c2af-4e1b-a276-bf23f50ee5b4","remove-from-campaign"],"query":[{"key":"campaignUuid","value":"8b9b52fb-b9ee-47ac-944e-2f770c53ab4d"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:37:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:37:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-eacfbd448ad522a3ea07563b3538dad2' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-eacfbd448ad522a3ea07563b3538dad2' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"ffadaff1-c2af-4e1b-a276-bf23f50ee5b4\",\n    \"name\": \"Test postamn t12\",\n    \"description\": \"Opis 123\",\n    \"defaultValue\": \"test12222\",\n    \"allowedValues\": \"[\\\"value1\\\", \\\"value\\\", \\\"value3\\\"]\",\n    \"campaignUuids\": []\n}"}],"_postman_id":"af6e1c9e-4d93-49f8-95b0-a13d140381d3"}],"id":"c40b435d-ac5a-4dc3-8af7-3b308240e325","_postman_id":"c40b435d-ac5a-4dc3-8af7-3b308240e325","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Group","item":[{"name":"Get All Groups","id":"fb3d9351-7707-4e1e-a8e6-38e7e9538773","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/group/all?search=string&page=0&size=20&sortBy=lastUsed&sortDirection=asc","description":"<h1 id=\"get-all-groups\">Get All Groups</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves a paginated list of all groups in the system. It supports optional search functionality and pagination parameters to efficiently manage large datasets.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>GET</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/group/all</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"variables\">Variables</h2>\n<p>This request uses the following variables:</p>\n<ul>\n<li><strong><code>tenant_domain</code></strong> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><strong><code>token</code></strong> - Your authentication bearer token</li>\n</ul>\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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Optional search term to filter groups by name</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>Page number for pagination (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>lastUsed</td>\n<td>Field to sort by (e.g., lastUsed, name)</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>asc</td>\n<td>Sort direction: <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Modern fetch API (Node.js 18+ or browser)\nconst tenantDomain = 'testsandbox.highp.me';\nconst token = 'your_bearer_token_here';\n\n// Query parameters\nconst params = new URLSearchParams({\n  search: '',           // Optional: search term to filter groups\n  page: '0',           // Page number (zero-indexed)\n  size: '20',          // Items per page\n  sortBy: 'lastUsed',  // Sort field\n  sortDirection: 'asc' // Sort direction\n});\n\nconst url = `https://${tenantDomain}/api/core/group/all?${params}`;\n\nasync function getAllGroups() {\n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    \n    console.log('Groups retrieved successfully:');\n    console.log(`Total groups: ${data.totalElements}`);\n    console.log(`Total pages: ${data.totalPages}`);\n    console.log(`Current page: ${data.number + 1} of ${data.totalPages}`);\n    console.log(`Groups on this page: ${data.numberOfElements}`);\n    \n    // Access individual groups\n    data.content.forEach((group, index) =&gt; {\n      console.log(`${index + 1}. ${group.name} (${group.access}) - UUID: ${group.uuid}`);\n    });\n    \n    return data;\n    \n  } catch (error) {\n    console.error('Error fetching groups:', error.message);\n    throw error;\n  }\n}\n\n// Execute the function\ngetAllGroups();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The response follows a standard paginated structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"string\",\n      \"name\": \"string\",\n      \"access\": \"string\",\n      \"ownerUuid\": \"string\",\n      \"lastUpdated\": \"string\",\n      \"lastUsed\": \"string\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": boolean,\n      \"sorted\": boolean,\n      \"unsorted\": boolean\n    },\n    \"offset\": integer,\n    \"pageNumber\": integer,\n    \"pageSize\": integer,\n    \"paged\": boolean,\n    \"unpaged\": boolean\n  },\n  \"totalElements\": integer,\n  \"totalPages\": integer,\n  \"last\": boolean,\n  \"size\": integer,\n  \"number\": integer,\n  \"sort\": {\n    \"empty\": boolean,\n    \"sorted\": boolean,\n    \"unsorted\": boolean\n  },\n  \"numberOfElements\": integer,\n  \"first\": boolean,\n  \"empty\": boolean\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array\">Content Array</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the group</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Display name of the group</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Access level of the group (e.g., PUBLIC, PRIVATE)</td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string</td>\n<td>UUID of the group owner (null for system groups)</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string</td>\n<td>Unix timestamp (in seconds) when the group was last updated</td>\n</tr>\n<tr>\n<td><code>lastUsed</code></td>\n<td>string</td>\n<td>Unix timestamp (in seconds) when the group was last used (null if never used)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"pagination-metadata\">Pagination Metadata</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>totalElements</code></td>\n<td>integer</td>\n<td>Total number of groups across all pages</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>Number of items per page (as requested)</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Current page number (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>numberOfElements</code></td>\n<td>integer</td>\n<td>Number of items on the current page</td>\n</tr>\n<tr>\n<td><code>first</code></td>\n<td>boolean</td>\n<td>True if this is the first page</td>\n</tr>\n<tr>\n<td><code>last</code></td>\n<td>boolean</td>\n<td>True if this is the last page</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>True if the content array is empty</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"pageable-object\">Pageable Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>offset</code></td>\n<td>integer</td>\n<td>The offset of the first item on this page</td>\n</tr>\n<tr>\n<td><code>pageNumber</code></td>\n<td>integer</td>\n<td>Current page number (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>paged</code></td>\n<td>boolean</td>\n<td>True if pagination is enabled</td>\n</tr>\n<tr>\n<td><code>unpaged</code></td>\n<td>boolean</td>\n<td>True if pagination is disabled</td>\n</tr>\n<tr>\n<td><code>sort</code></td>\n<td>object</td>\n<td>Sorting information for the pageable object</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"sort-object\">Sort Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>True if no sorting is applied</td>\n</tr>\n<tr>\n<td><code>sorted</code></td>\n<td>boolean</td>\n<td>True if results are sorted</td>\n</tr>\n<tr>\n<td><code>unsorted</code></td>\n<td>boolean</td>\n<td>True if results are not sorted</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"78c50a78-0983-47dc-8c3f-c28443a94be0\",\n      \"name\": \"PUBLIC - some-test-value\",\n      \"access\": \"PUBLIC\",\n      \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n      \"lastUpdated\": \"1764155933\",\n      \"lastUsed\": \"1764155933\"\n    },\n    {\n      \"uuid\": \"561d996e-597e-4eea-8443-06100dd0805a\",\n      \"name\": \"PRIVATE - some-test-value\",\n      \"access\": \"PRIVATE\",\n      \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n      \"lastUpdated\": \"1764155966\",\n      \"lastUsed\": \"1764155966\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 125,\n  \"totalPages\": 7,\n  \"last\": false,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": false,\n    \"sorted\": true,\n    \"unsorted\": false\n  },\n  \"numberOfElements\": 20,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<p>Authentication token is missing or invalid.</p>\n<h3 id=\"403-forbidden\">403 Forbidden</h3>\n<p>User does not have permission to access groups.</p>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<p>An unexpected error occurred on the server.</p>\n<h2 id=\"usage-tips\">Usage Tips</h2>\n<ol>\n<li><strong>Pagination</strong>: Use <code>page</code> and <code>size</code> parameters to navigate through large result sets</li>\n<li><strong>Search</strong>: Use the <code>search</code> parameter to filter groups by name</li>\n<li><strong>Sorting</strong>: Combine <code>sortBy</code> and <code>sortDirection</code> to order results by different fields</li>\n<li><strong>Performance</strong>: Adjust the <code>size</code> parameter based on your needs (smaller sizes = faster responses)</li>\n<li><strong>Timestamps</strong>: The <code>lastUpdated</code> and <code>lastUsed</code> fields are Unix timestamps in seconds - convert them to dates as needed</li>\n</ol>\n","urlObject":{"path":["api","core","group","all"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>by name</p>\n","type":"text/plain"},"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUsed"},{"key":"sortDirection","value":"asc"}],"variable":[]}},"response":[{"id":"1a40597e-b2e2-40ea-a4df-e6ea2a5d78cf","name":"Get All Groups","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/group/all?search=string&page=0&size=20&sortBy=lastUsed&sortDirection=asc","host":["testsandbox.highp.me"],"path":["api","core","group","all"],"query":[{"description":"by name","key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUsed"},{"key":"sortDirection","value":"asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Wed, 26 Nov 2025 11:23:06 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Wed, 26 Nov 2025 11:23:05 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-46cb3f56fdb24e11f0f4de9be6b2f6b3' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-46cb3f56fdb24e11f0f4de9be6b2f6b3' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"uuid\": \"78c50a78-0983-47dc-8c3f-c28443a94be0\",\n            \"name\": \"PUBLIC - some-test-value\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n            \"lastUpdated\": \"1764155933\",\n            \"lastUsed\": \"1764155933\"\n        },\n        {\n            \"uuid\": \"561d996e-597e-4eea-8443-06100dd0805a\",\n            \"name\": \"PRIVATE - some-test-value\",\n            \"access\": \"PRIVATE\",\n            \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n            \"lastUpdated\": \"1764155966\",\n            \"lastUsed\": \"1764155966\"\n        },\n        {\n            \"uuid\": \"17dfdac9-83c9-48a5-8330-2f6f818dbf49\",\n            \"name\": \"active\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1630675932\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"4df4b00c-e258-4b37-b906-f0d80f5c9f56\",\n            \"name\": \"Ewelinki\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1632488115\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"ae9247fb-a961-49d7-8390-03a8b1d501ea\",\n            \"name\": \"KAU_test\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1649774671\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"80e500cb-0c7c-455a-8bf5-4af66bb4c5b0\",\n            \"name\": \"testowaGrupa\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1651053081\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"6b240da8-1b70-48ff-a8ea-8e50680a114a\",\n            \"name\": \"Grupa nr 2\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1657178826\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"2f3ddd09-31b9-4619-b140-0efd26bfb4cc\",\n            \"name\": \"test111\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1674578069\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"4a98e47b-6dcf-4096-aad7-a97ba66d188b\",\n            \"name\": \"Grupa nr 1\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1657178818\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"1c2a43c3-71bf-4864-a40b-732b7c305cd7\",\n            \"name\": \"Nowa\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1627395579\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"3d588c4e-ce85-4912-842a-8e0390f42cff\",\n            \"name\": \"segmenty grupa No1\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1664878763\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"1643f6cd-7557-4ef1-b61a-b00793825d7f\",\n            \"name\": \"segmenty grupa No2\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1664878773\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"95ea3819-74bf-433f-8db6-c1374fa82305\",\n            \"name\": \"44911\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1671547045\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"b15999d1-2270-43c8-8df9-5162b9271b1e\",\n            \"name\": \"Test 04.01.2023\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1672830431\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"bb0959cf-193a-4c3e-bb9c-feca38319cf7\",\n            \"name\": \"Grupa reprezentatów\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1672828677\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"9d5cc335-02ab-4c49-ac89-a3915701a911\",\n            \"name\": \"test sandbox meeting\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1655803337\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"44ebfe68-a67a-482d-bbbe-8290b0880e12\",\n            \"name\": \"Gastrico 2\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1676292610\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"39976a21-8fd0-4142-b2e6-b26944519b08\",\n            \"name\": \"Test kafka\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1627387531\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"130f5d45-2bdd-480b-84b3-e59df80e5998\",\n            \"name\": \"testWB988\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1696513165\",\n            \"lastUsed\": null\n        },\n        {\n            \"uuid\": \"3a25821a-ccf3-4904-b3d0-d2fdb2cdc02a\",\n            \"name\": \"Agatki\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": null,\n            \"lastUpdated\": \"1634884989\",\n            \"lastUsed\": null\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 125,\n    \"totalPages\": 7,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"fb3d9351-7707-4e1e-a8e6-38e7e9538773"},{"name":"Create","id":"fe1c889e-d991-4df1-aa07-3f4863db6636","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"PRIVATE - some-test-value\",\n  \"access\": \"PRIVATE\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/create","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates a new group in the Highp platform. Groups are used to organize and manage collections of users, contacts, or resources within your tenant.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/group/create</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"required-variables\">Required Variables</h2>\n<ul>\n<li><code>tenant_domain</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>token</code> - Your API access token for authentication</li>\n</ul>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be sent as JSON with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\",\n  \"access\": \"string\"\n}\n</code></pre>\n<h3 id=\"parameters\">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>name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the group to create</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Access level for the group (e.g., \"PRIVATE\", \"PUBLIC\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"PRIVATE - some-test-value\",\n  \"access\": \"PRIVATE\"\n}\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When a group is successfully created, the API returns a JSON object containing the complete group details:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"name\": \"string\",\n  \"access\": \"string\",\n  \"ownerUuid\": \"string\",\n  \"lastUpdated\": \"string\",\n  \"lastUsed\": \"string\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the newly created group</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the created group</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Access level of the group (e.g., \"PRIVATE\", \"PUBLIC\")</td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string</td>\n<td>UUID of the user who owns/created the group</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string</td>\n<td>Unix timestamp (in seconds) indicating when the group was last updated</td>\n</tr>\n<tr>\n<td><code>lastUsed</code></td>\n<td>string</td>\n<td>Unix timestamp (in seconds) indicating when the group was last used</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"561d996e-597e-4eea-8443-06100dd0805a\",\n  \"name\": \"PRIVATE - some-test-value\",\n  \"access\": \"PRIVATE\",\n  \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n  \"lastUpdated\": \"1764155966\",\n  \"lastUsed\": \"1764155966\"\n}\n</code></pre>\n<h2 id=\"code-example---nodejs-fetch\">Code Example - Node.js (fetch)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const createGroup = async () =&gt; {\n  const tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\n  const token = 'your_access_token_here'; // Replace with your access token\n  \n  const url = `https://${tenantDomain}/api/core/group/create`;\n  \n  const requestBody = {\n    name: 'My New Group',\n    access: 'PRIVATE' // Optional: 'PRIVATE' or 'PUBLIC'\n  };\n  \n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    \n    // Check if the response is successful\n    if (!response.ok) {\n      const errorText = await response.text();\n      throw new Error(`HTTP error! status: ${response.status}, message: ${errorText}`);\n    }\n    \n    // Parse the JSON response\n    const data = await response.json();\n    \n    console.log('Group created successfully:');\n    console.log('UUID:', data.uuid);\n    console.log('Name:', data.name);\n    console.log('Access:', data.access);\n    console.log('Owner UUID:', data.ownerUuid);\n    console.log('Last Updated:', new Date(data.lastUpdated * 1000).toISOString());\n    console.log('Last Used:', new Date(data.lastUsed * 1000).toISOString());\n    \n    return data;\n    \n  } catch (error) {\n    console.error('Error creating group:', error.message);\n    \n    // Handle specific error cases\n    if (error.message.includes('401')) {\n      console.error('Authentication failed. Please check your access token.');\n    } else if (error.message.includes('403')) {\n      console.error('Permission denied. You may not have rights to create groups.');\n    } else if (error.message.includes('400')) {\n      console.error('Bad request. Please check your request body format.');\n    }\n    \n    throw error;\n  }\n};\n\n// Usage example\ncreateGroup()\n  .then(group =&gt; {\n    console.log('Successfully created group with UUID:', group.uuid);\n  })\n  .catch(error =&gt; {\n    console.error('Failed to create group:', error);\n  });\n</code></pre>\n<h2 id=\"error-handling\">Error Handling</h2>\n<p>The API may return the following error responses:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid request body or missing required fields</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to create groups</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>lastUpdated</code> and <code>lastUsed</code> fields are Unix timestamps in seconds. Convert them to JavaScript Date objects by multiplying by 1000: <code>new Date(timestamp * 1000)</code></li>\n<li>The <code>access</code> parameter is optional. If not provided, the API may use a default access level</li>\n<li>The <code>ownerUuid</code> in the response identifies the user who created the group</li>\n<li>Group names should be unique within your tenant to avoid confusion</li>\n</ul>\n","urlObject":{"path":["api","core","group","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"63f573c5-203f-4260-afe6-832638ae2138","name":"PUBLIC - Create","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"PUBLIC - some-test-value\",\n    \"access\" : \"PUBLIC\"\n}","options":{"raw":{"language":"json"}}},"url":"https://{{tenant_domain}}/api/core/group/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Date","value":"Wed, 26 Nov 2025 11:18:53 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"Wed, 26 Nov 2025 11:18:52 GMT"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-09778a52b0e29255d6c6b8506db5f2e1' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-09778a52b0e29255d6c6b8506db5f2e1' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"78c50a78-0983-47dc-8c3f-c28443a94be0\",\n    \"name\": \"PUBLIC - some-test-value\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"lastUpdated\": \"1764155933\",\n    \"lastUsed\": \"1764155933\"\n}"},{"id":"eb7deb12-6c18-4a42-9a3a-3008a68d744d","name":"PUBLIC - Create","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"PRIVATE - some-test-value\",\n  \"access\": \"PRIVATE\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Wed, 26 Nov 2025 11:18:53 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Wed, 26 Nov 2025 11:18:52 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-09778a52b0e29255d6c6b8506db5f2e1' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-09778a52b0e29255d6c6b8506db5f2e1' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"561d996e-597e-4eea-8443-06100dd0805a\",\n    \"name\": \"PRIVATE - some-test-value\",\n    \"access\": \"PRIVATE\",\n    \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"lastUpdated\": \"1764155966\",\n    \"lastUsed\": \"1764155966\"\n}"}],"_postman_id":"fe1c889e-d991-4df1-aa07-3f4863db6636"},{"name":"Update","id":"ac03b892-a74f-4196-aa52-80232a7c96a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"some-name-value2\",\n  \"access\": \"PUBLIC/PRIVATE\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/eb36d058-a794-41c5-ba98-8726465e1de7","description":"<h2 id=\"update-group\">Update Group</h2>\n<p>Updates an existing group's information by its unique identifier.</p>\n<h3 id=\"http-method\">HTTP Method</h3>\n<p><code>PUT</code></p>\n<h3 id=\"url-structure\">URL Structure</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{{tenant_domain}}/api/core/group/{groupId}\n</code></pre><h3 id=\"path-parameters\">Path 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>groupId</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the group to update</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>token</code> variable should contain a valid access token for the Highp API.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The request body should be in JSON format with the following schema:</p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h4 id=\"schema\">Schema</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\"\n}\n</code></pre>\n<h4 id=\"properties\">Properties</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Property</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>The new name for the group</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"some-name-value2\"\n}\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<h4 id=\"success-response-200-ok\">Success Response (200 OK)</h4>\n<p>Returns the updated group object with its UUID and updated name.</p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"name\": \"string\"\n}\n</code></pre>\n<h4 id=\"response-properties\">Response Properties</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Property</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string (UUID)</td>\n<td>The unique identifier of the group</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The updated name of the group</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"eb36d058-a794-41c5-ba98-8726465e1de7\",\n  \"name\": \"some-name-value2\"\n}\n</code></pre>\n<h3 id=\"nodejs-fetch-example\">Node.js Fetch Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\nconst groupId = 'eb36d058-a794-41c5-ba98-8726465e1de7'; // Replace with the group ID\nconst token = 'your_access_token'; // Replace with your access token\n\nconst updateGroup = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/group/${groupId}`,\n      {\n        method: 'PUT',\n        headers: {\n          'Content-Type': 'application/json',\n          'Authorization': `Bearer ${token}`\n        },\n        body: JSON.stringify({\n          name: 'Updated Group Name'\n        })\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Group updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating group:', error);\n    throw error;\n  }\n};\n\n// Call the function\nupdateGroup();\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>The group ID in the URL path must be a valid UUID</li>\n<li>The <code>name</code> field in the request body is required</li>\n<li>The response will return the same UUID with the updated name</li>\n<li>Ensure your access token has the necessary permissions to update groups</li>\n</ul>\n","urlObject":{"path":["api","core","group","eb36d058-a794-41c5-ba98-8726465e1de7"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"5ea38f76-0146-4797-8480-cdcb693ddbaa","name":"Update","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"some-name-value2\",\n  \"access\": \"PUBLIC/PRIVATE\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/eb36d058-a794-41c5-ba98-8726465e1de7"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:59:04 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:59:03 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-11a478b951076720bf2891f67f7620fd' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-11a478b951076720bf2891f67f7620fd' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"eb36d058-a794-41c5-ba98-8726465e1de7\",\n    \"name\": \"some-name-value2\"\n}"}],"_postman_id":"ac03b892-a74f-4196-aa52-80232a7c96a9"},{"name":"Delete","id":"ca7cb3f6-a181-4fd4-b4c1-26f01dbdfae2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/group/eb36d058-a794-41c5-ba98-8726465e1de7","description":"<h1 id=\"delete-group\">Delete Group</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint deletes a specific group from the system using its unique identifier (UUID). This is a destructive operation that permanently removes the group resource.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE https://{{tenant_domain}}/api/core/group/{group_uuid}\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a bearer token. The token should be passed in the <code>Authorization</code> header.</p>\n<p><strong>Required Variable:</strong></p>\n<ul>\n<li><code>token</code> - Your authentication token</li>\n</ul>\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>group_uuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the group to delete</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = process.env.TENANT_DOMAIN;\nconst token = process.env.TOKEN;\nconst groupUuid = 'eb36d058-a794-41c5-ba98-8726465e1de7';\n\nconst deleteGroup = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/group/${groupUuid}`,\n      {\n        method: 'DELETE',\n        headers: {\n          'Authorization': `Bearer ${token}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n\n    if (!response.ok) {\n      const errorData = await response.json();\n      throw new Error(`Error ${response.status}: ${errorData.message}`);\n    }\n\n    // For 204 No Content, response.json() may not be available\n    if (response.status === 204) {\n      console.log('Group deleted successfully');\n      return null;\n    }\n\n    const data = await response.json();\n    console.log('Delete response:', data);\n    return data;\n  } catch (error) {\n    console.error('Failed to delete group:', error);\n    throw error;\n  }\n};\n\ndeleteGroup();\n</code></pre>\n<h2 id=\"response-models\">Response Models</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Group deleted successfully\",\n  \"data\": {\n    \"group_uuid\": \"eb36d058-a794-41c5-ba98-8726465e1de7\",\n    \"deleted_at\": \"2024-01-15T10:30:00Z\"\n  }\n}\n</code></pre>\n<h3 id=\"success-response-204-no-content\">Success Response (204 No Content)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>No response body - The group was successfully deleted\n</code></pre><h3 id=\"error-response-401-unauthorized\">Error Response (401 Unauthorized)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"UNAUTHORIZED\",\n    \"message\": \"Authentication token is missing or invalid\"\n  }\n}\n</code></pre>\n<h3 id=\"error-response-403-forbidden\">Error Response (403 Forbidden)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"FORBIDDEN\",\n    \"message\": \"You do not have permission to delete this group\"\n  }\n}\n</code></pre>\n<h3 id=\"error-response-404-not-found\">Error Response (404 Not Found)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Group with the specified UUID does not exist\"\n  }\n}\n</code></pre>\n<h3 id=\"error-response-500-internal-server-error\">Error Response (500 Internal Server Error)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"INTERNAL_SERVER_ERROR\",\n    \"message\": \"An unexpected error occurred while deleting the group\"\n  }\n}\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>This operation is irreversible. Ensure you have the correct group UUID before executing.</li>\n<li>Deleting a group may have cascading effects on related resources depending on your system configuration.</li>\n<li>Consider implementing soft deletes if you need to maintain audit trails or allow recovery.</li>\n</ul>\n","urlObject":{"path":["api","core","group","eb36d058-a794-41c5-ba98-8726465e1de7"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"f8cef2c4-e665-4742-8725-8b35d529ddfb","name":"Delete","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/group/eb36d058-a794-41c5-ba98-8726465e1de7"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 10:59:20 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 10:59:19 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9ae7b86215afde49f1ab3df2b8fdf015' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9ae7b86215afde49f1ab3df2b8fdf015' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"ca7cb3f6-a181-4fd4-b4c1-26f01dbdfae2"},{"name":"Add Contact To Group","id":"faec7e61-a070-40d8-afdb-8fe28296375c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"groupUuid\": \"e847f7e9-a0ac-4aab-a2e0-a4ab6aee2d91\",\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/add-relation","description":"<h1 id=\"add-contact-to-group\">Add Contact To Group</h1>\n<h2 id=\"description\">Description</h2>\n<p>This endpoint adds a contact to a specified group within the Highp platform. It creates a relationship between an existing contact and an existing group, allowing you to organize contacts into groups for targeted campaigns and better contact management.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><p><strong>URL</strong>: <code>https://{{tenant_domain}}/api/core/group/add-relation</code></p>\n</li>\n<li><p><strong>Method</strong>: <code>POST</code></p>\n</li>\n<li><p><strong>Authentication</strong>: Bearer Token (required)</p>\n</li>\n</ul>\n<h2 id=\"required-headers\">Required Headers</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\nContent-Type: application/json\n\n</code></pre><h1 id=\"important\">Important</h1>\n<p>User with DOC role, can only delete group from himself (contactUuid)</p>\n<h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be a JSON object with the following fields:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"groupUuid\": \"string\",\n  \"contactUuid\": \"string\"\n}\n\n</code></pre>\n<h3 id=\"field-descriptions\">Field Descriptions</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>groupUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the group to which the contact will be added</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact to be added to the group</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"groupUuid\": \"e847f7e9-a0ac-4aab-a2e0-a4ab6aee2d91\",\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\"\n}\n\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const addContactToGroup = async (tenantDomain, token, groupUuid, contactUuid) =&gt; {\n  const url = `https://${tenantDomain}/api/core/group/add-relation`;\n  const requestBody = {\n    groupUuid: groupUuid,\n    contactUuid: contactUuid\n  };\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    if (response.ok) {\n      console.log('Contact successfully added to group');\n      return { success: true, status: response.status };\n    } else {\n      const errorText = await response.text();\n      console.error('Failed to add contact to group:', errorText);\n      return { success: false, status: response.status, error: errorText };\n    }\n  } catch (error) {\n    console.error('Error making request:', error);\n    throw error;\n  }\n};\n// Usage example\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your-bearer-token';\nconst groupUuid = 'e847f7e9-a0ac-4aab-a2e0-a4ab6aee2d91';\nconst contactUuid = 'b97d17a1-eb68-4a49-89bb-69a3b7aca8e5';\naddContactToGroup(tenantDomain, token, groupUuid, contactUuid)\n  .then(result =&gt; console.log('Result:', result))\n  .catch(error =&gt; console.error('Error:', error));\n\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response\">Success Response</h3>\n<p><strong>Status Code</strong>: <code>200 OK</code></p>\n<p><strong>Response Body</strong>: Empty (Content-Length: 0)</p>\n<p>When the contact is successfully added to the group, the API returns a 200 OK status with an empty response body. The absence of an error indicates successful completion of the operation.</p>\n<h3 id=\"response-headers\">Response Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Length: 0\nCache-Control: no-cache\nX-Content-Type-Options: nosniff\nX-Frame-Options: DENY\nX-XSS-Protection: 1; mode=block\n\n</code></pre><h3 id=\"response-model\">Response Model</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": 200,\n  \"body\": null,\n  \"message\": \"Contact successfully added to group\"\n}\n\n</code></pre>\n<p><strong>Note</strong>: The actual API returns an empty body. The success of the operation is indicated by the 200 status code.</p>\n<h2 id=\"error-responses\">Error Responses</h2>\n<p>Possible error responses include:</p>\n<ul>\n<li><p><strong>400 Bad Request</strong>: Invalid UUID format or missing required fields</p>\n</li>\n<li><p><strong>401 Unauthorized</strong>: Invalid or missing authentication token</p>\n</li>\n<li><p><strong>404 Not Found</strong>: Group or contact with specified UUID does not exist</p>\n</li>\n<li><p><strong>409 Conflict</strong>: Contact is already a member of the specified group</p>\n</li>\n<li><p><strong>500 Internal Server Error</strong>: Server-side error occurred</p>\n</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>Both <code>groupUuid</code> and <code>contactUuid</code> must be valid UUIDs of existing entities in your Highp tenant</p>\n</li>\n<li><p>The contact and group must belong to the same tenant</p>\n</li>\n<li><p>If the contact is already in the group, the API may return an error or handle it idempotently (check your specific API version behavior)</p>\n</li>\n<li><p>This operation requires appropriate permissions to modify group memberships</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","group","add-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"cef3f49d-bb4a-4f91-9047-6b717de23260","name":"Add Contact To Group","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"groupUuid\": \"e847f7e9-a0ac-4aab-a2e0-a4ab6aee2d91\",\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/add-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:00:19 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:00:18 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-d1cb7b25cb6b70bf9b09fc20af24bce9' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-d1cb7b25cb6b70bf9b09fc20af24bce9' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"faec7e61-a070-40d8-afdb-8fe28296375c"},{"name":"Remove Contact From Group","id":"04ad4d06-8509-48ab-a010-eedc3b393288","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"groupUuid\": \"e847f7e9-a0ac-4aab-a2e0-a4ab6aee2d91\",\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/remove-relation","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint removes a contact from a specific group. When successful, the contact will no longer be associated with the specified group, but the contact itself remains in the system.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST https://{{tenant_domain}}/api/core/group/remove-relation\n\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {token}\n\n</code></pre><h1 id=\"important\">Important</h1>\n<p>User with DOC role, can only delete group from himself (contactUuid)</p>\n<h2 id=\"request-body-parameters\">Request Body Parameters</h2>\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>groupUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the group from which the contact should be removed</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact to be removed from the group</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"groupUuid\": \"e847f7e9-a0ac-4aab-a2e0-a4ab6aee2d91\",\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\"\n}\n\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me';\nconst token = 'your_access_token_here';\nconst removeContactFromGroup = async (groupUuid, contactUuid) =&gt; {\n  try {\n    const response = await fetch(`https://${tenantDomain}/api/core/group/remove-relation`, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify({\n        groupUuid: groupUuid,\n        contactUuid: contactUuid\n      })\n    });\n    if (response.ok) {\n      console.log('Contact successfully removed from group');\n      return { success: true };\n    } else {\n      const errorText = await response.text();\n      console.error('Failed to remove contact:', response.status, errorText);\n      return { success: false, error: errorText };\n    }\n  } catch (error) {\n    console.error('Request failed:', error);\n    throw error;\n  }\n};\n// Usage example\nremoveContactFromGroup(\n  'e847f7e9-a0ac-4aab-a2e0-a4ab6aee2d91',\n  'b97d17a1-eb68-4a49-89bb-69a3b7aca8e5'\n);\n\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the contact is successfully removed from the group, the API returns an empty response body with HTTP status code 200.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><p><code>Content-Length: 0</code></p>\n</li>\n<li><p><code>Cache-Control: no-cache</code></p>\n</li>\n<li><p><code>X-Content-Type-Options: nosniff</code></p>\n</li>\n</ul>\n<h3 id=\"response-model\">Response Model</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">// Success: Empty response body\n// HTTP 200 OK with no content\n\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Invalid request body or missing required parameters (groupUuid or contactUuid)</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Insufficient permissions to remove contacts from this group</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Group or contact with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server-side error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>Both <code>groupUuid</code> and <code>contactUuid</code> must be valid UUIDs</p>\n</li>\n<li><p>The contact is only removed from the specified group; the contact record itself is not deleted</p>\n</li>\n<li><p>If the contact is not a member of the group, the operation may still return 200 OK</p>\n</li>\n<li><p>Ensure you have the necessary permissions to modify group memberships in your tenant</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","group","remove-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"0ab807a5-6583-4043-adf3-3e34ee08940c","name":"Delete Contact From Group","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"groupUuid\": \"e847f7e9-a0ac-4aab-a2e0-a4ab6aee2d91\",\n  \"contactUuid\": \"b97d17a1-eb68-4a49-89bb-69a3b7aca8e5\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/remove-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:00:48 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:00:47 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-5eb8f22ec2b2c649d42416508fdee493' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-5eb8f22ec2b2c649d42416508fdee493' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"04ad4d06-8509-48ab-a010-eedc3b393288"},{"name":"Assign User To Group (Create group if no exists)","id":"82c922ac-c78f-40c9-adf7-5a7ff5354bff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"groupName\" : \"total-new-group\",\n    \"contactEmail\" : \"nowyemail900ed@niepodam.pl\"\n    // \"contactUuid\": \"{{SomeUserUuid}}\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/assign-user","description":"<h1 id=\"assign-user-to-group\">Assign User To Group</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint assigns a user to a group within the Highp platform. If the specified group does not exist, it will be automatically created before assigning the user.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><p><strong>Method:</strong> <code>POST</code></p>\n</li>\n<li><p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/group/assign-user</code></p>\n</li>\n<li><p><strong>Content-Type:</strong> <code>application/json</code></p>\n</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication. Include a Bearer token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n\n</code></pre><h1 id=\"important\">Important</h1>\n<p>User with DOC role, can only delete group from himself (contactUuid)</p>\n<h2 id=\"variables\">Variables</h2>\n<ul>\n<li><strong><code>tenant_domain</code></strong>: Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be a JSON object with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>groupName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the group to assign the user to. If the group doesn't exist, it will be created.</td>\n</tr>\n<tr>\n<td><code>contactEmail</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The email address of the user/contact to be assigned to the group.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"groupName\": \"total-new-group\",\n    \"contactEmail\": \"nowyemail900ed@niepodam.pl\"\n}\n\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the request is successful, the API returns a JSON object containing the group details:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"uuid\": \"0c9fba7c-a21e-413a-b6d2-679d2153e487\",\n    \"name\": \"total-new-group\"\n}\n\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier (UUID) of the group</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the group</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\nasync function assignUserToGroup(tenantDomain, accessToken, groupName, contactEmail) {\n    const url = `https://${tenantDomain}/api/core/group/assign-user`;\n    const requestBody = {\n        groupName: groupName,\n        contactEmail: contactEmail\n    };\n    try {\n        const response = await fetch(url, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application/json',\n                'Authorization': `Bearer ${accessToken}`\n            },\n            body: JSON.stringify(requestBody)\n        });\n        if (!response.ok) {\n            throw new Error(`HTTP error! status: ${response.status}`);\n        }\n        const data = await response.json();\n        console.log('User assigned to group successfully:', data);\n        return data;\n    } catch (error) {\n        console.error('Error assigning user to group:', error);\n        throw error;\n    }\n}\n// Usage example\nassignUserToGroup(\n    'testsandbox.highp.me',\n    'your_access_token_here',\n    'total-new-group',\n    'user@example.com'\n);\n\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>If the group specified in <code>groupName</code> does not exist, it will be automatically created</p>\n</li>\n<li><p>The user identified by <code>contactEmail</code> must exist in the system</p>\n</li>\n<li><p>The response includes the UUID of the group, which can be used for subsequent operations</p>\n</li>\n<li><p>Ensure the <code>tenant_domain</code> variable is properly configured in your environment</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"path":["api","core","group","assign-user"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"f10825ed-7ed0-4e10-afa2-f716beb3163f","name":"Assign User To Group (Create group if no exists)","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"groupName\" : \"total-new-group\",\n    \"contactEmail\" : \"nowyemail900ed@niepodam.pl\"\n    // \"contactUuid\": \"{{SomeUserUuid}}\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/group/assign-user"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:01:36 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:01:35 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-f2f60923dc78b43252d18f7f372c8a87' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-f2f60923dc78b43252d18f7f372c8a87' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"0c9fba7c-a21e-413a-b6d2-679d2153e487\",\n    \"name\": \"total-new-group\"\n}"}],"_postman_id":"82c922ac-c78f-40c9-adf7-5a7ff5354bff"}],"id":"287235f2-a3cf-4d0b-9feb-8c6d4ba342b4","_postman_id":"287235f2-a3cf-4d0b-9feb-8c6d4ba342b4","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Parameter","item":[{"name":"Consent","item":[{"name":"Get Parameter Consent","id":"de932292-cdbe-4fa8-b8db-c61a205fdfab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/parameter/consent","description":"<h1 id=\"get-parameter-consent\">Get Parameter Consent</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves consent configuration parameters for a tenant. It returns detailed consent settings including channel policies, consent policies, and individual consent definitions that can be used for user registration, communication preferences, and GDPR compliance.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/parameter/consent\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using the tenant domain. The <code>tenant_domain</code> variable must be configured in your environment to point to your Highp tenant instance.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<p>While the base endpoint returns the consent parameter, you can use the generic parameter endpoint with the <code>name</code> query parameter:</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>No</td>\n<td>Filter parameter by name (e.g., <code>consent</code>, <code>highp.premium</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\nconst url = `https://${tenantDomain}/api/core/parameter/consent`;\n\nasync function getConsentParameter() {\n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Content-Type': 'application/json',\n        // Add authentication headers if required\n        // 'Authorization': 'Bearer YOUR_ACCESS_TOKEN'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Consent Parameter:', data);\n    return data;\n  } catch (error) {\n    console.error('Error fetching consent parameter:', error);\n    throw error;\n  }\n}\n\n// Call the function\ngetConsentParameter();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 98,\n  \"name\": \"consent\",\n  \"value\": \"{...}\",\n  \"valueType\": \"json\",\n  \"accessType\": null,\n  \"description\": \"Consents data\"\n}\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Unique identifier for the parameter</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Parameter name (e.g., \"consent\")</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>string (JSON)</td>\n<td>JSON string containing consent configuration</td>\n</tr>\n<tr>\n<td><code>valueType</code></td>\n<td>string</td>\n<td>Type of the value field (e.g., \"json\")</td>\n</tr>\n<tr>\n<td><code>accessType</code></td>\n<td>string/null</td>\n<td>Access control type for the parameter</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>Human-readable description of the parameter</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"consent-value-structure\">Consent Value Structure</h3>\n<p>The <code>value</code> field contains a JSON string with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"channelPolicy\": \"none\",\n  \"consentPolicy\": \"none\",\n  \"consents\": [\n    {\n      \"name\": \"channel-sms\",\n      \"required\": true,\n      \"short\": \"Zgoda na komunikację SMS\",\n      \"type\": \"sms\",\n      \"long\": \"&lt;&gt;htmlowa pelna tresc zgody\",\n      \"isLocked\": true\n    },\n    {\n      \"name\": \"channel-email\",\n      \"required\": true,\n      \"short\": \"Zgoda na komunikację E-mail\",\n      \"type\": \"email\",\n      \"long\": \"&lt;&gt;htmlowa pelna tresc zgody\",\n      \"isLocked\": true\n    },\n    {\n      \"name\": \"consentmarketing\",\n      \"required\": false,\n      \"short\": \"Marketing agreement\",\n      \"type\": \"consent\",\n      \"long\": \"\",\n      \"isLocked\": true\n    }\n  ]\n}\n</code></pre>\n<h3 id=\"consent-object-fields\">Consent Object Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</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>Unique identifier for the consent</td>\n</tr>\n<tr>\n<td><code>required</code></td>\n<td>boolean</td>\n<td>Whether this consent is mandatory</td>\n</tr>\n<tr>\n<td><code>short</code></td>\n<td>string</td>\n<td>Short description/label for the consent</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Type of consent: <code>sms</code>, <code>email</code>, <code>whatsapp</code>, or <code>consent</code></td>\n</tr>\n<tr>\n<td><code>long</code></td>\n<td>string</td>\n<td>Full HTML text of the consent (can include privacy policy)</td>\n</tr>\n<tr>\n<td><code>isLocked</code></td>\n<td>boolean</td>\n<td>Whether the consent configuration is locked</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>User Registration</strong>: Display required and optional consents during signup</li>\n<li><strong>Communication Preferences</strong>: Manage channel-specific consent (SMS, email, WhatsApp)</li>\n<li><strong>GDPR Compliance</strong>: Store and manage user consent for data processing</li>\n<li><strong>Marketing Campaigns</strong>: Check consent status before sending marketing communications</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The consent configuration is tenant-specific</li>\n<li>Consent types include communication channels (<code>sms</code>, <code>email</code>, <code>whatsapp</code>) and general consents</li>\n<li>The <code>channelPolicy</code> and <code>consentPolicy</code> fields define enforcement rules</li>\n<li>HTML content in the <code>long</code> field can be rendered for detailed consent information</li>\n</ul>\n","urlObject":{"path":["api","core","parameter","consent"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"ac4535a9-619a-4dff-9deb-dbe34868770e","name":"Get Parameter Consent","originalRequest":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/parameter/consent"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:01:58 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:01:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9f60c85909b9745a5084fb38ebf06476' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9f60c85909b9745a5084fb38ebf06476' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 98,\n    \"name\": \"consent\",\n    \"value\": \"{\\\"channelPolicy\\\":\\\"none\\\",\\\"consentPolicy\\\":\\\"none\\\",\\\"consents\\\":[{\\\"name\\\":\\\"channel-sms\\\",\\\"required\\\":true,\\\"short\\\":\\\"Zgoda na komunikację SMS\\\",\\\"type\\\":\\\"sms\\\",\\\"long\\\":\\\"<>htmlowa pelna tresc zgody\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"channel-email\\\",\\\"required\\\":true,\\\"short\\\":\\\"Zgoda na komunikację E-mail\\\",\\\"type\\\":\\\"email\\\",\\\"long\\\":\\\"<>htmlowa pelna tresc zgody\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"channel-whatsapp\\\",\\\"required\\\":true,\\\"short\\\":\\\"Tekstowa skrocona tresc zgody\\\",\\\"type\\\":\\\"whatsapp\\\",\\\"long\\\":\\\"<>Whatsapp pelna tresc zgody\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions - consentterms\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing11\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms111\\\",\\\"required\\\":true,\\\"short\\\":\\\"consentterms111\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing1\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms1\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing2\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms2\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing3\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms3\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing4\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms4\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing5\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms5\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing6\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms6\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing7\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms7\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"zgodawymagana1\\\",\\\"required\\\":true,\\\"short\\\":\\\"Umowa prywatnosci i zasady uslugi\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"zgoda2\\\",\\\"required\\\":false,\\\"short\\\":\\\"Zgoda na przetwarzanie danych\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"termsofuse\\\",\\\"required\\\":false,\\\"short\\\":\\\"Terms of use\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\\\",\\\"isLocked\\\":true}]}\",\n    \"valueType\": \"json\",\n    \"accessType\": null,\n    \"description\": \"Consents data\"\n}"}],"_postman_id":"de932292-cdbe-4fa8-b8db-c61a205fdfab"}],"id":"eeecf8e4-692a-47e6-96d7-f2cffa1b4004","_postman_id":"eeecf8e4-692a-47e6-96d7-f2cffa1b4004","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Get Parameter By Name","id":"9331fb16-635f-4c71-9279-c7577f302e9a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/parameter?name=test","description":"<h1 id=\"get-parameter-by-name\">Get Parameter By Name</h1>\n<h2 id=\"description\">Description</h2>\n<p>This endpoint retrieves a specific parameter configuration from the Highp Core API by its name. Parameters are used to store system-wide configuration values such as consent policies, channel settings, and other tenant-specific configurations. The response includes the parameter's ID, name, value (often in JSON format), value type, and description.</p>\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>Endpoint:</strong> <code>https://{{tenant_domain}}/api/core/parameter</code></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>Type</th>\n<th>Required</th>\n<th>Description</th>\n<th>Example Values</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>The name of the parameter to retrieve</td>\n<td><code>test</code>, <code>consent</code>, <code>zgoda</code>, <code>channel-sms</code>, <code>sms</code>, <code>name</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><p><code>{{token}}</code> - Your API authentication token</p>\n</li>\n<li><p><code>{{tenant_domain}}</code> - Your tenant's domain (e.g., <code>testsandbox.highp.me</code>)</p>\n</li>\n</ul>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst token = 'your_bearer_token_here'; // Replace with your actual token\nconst parameterName = 'consent'; // Parameter name to retrieve\nconst url = `https://${tenantDomain}/api/core/parameter?name=${parameterName}`;\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Parameter retrieved successfully:', data);\n    console.log('Parameter ID:', data.id);\n    console.log('Parameter Name:', data.name);\n    console.log('Parameter Value:', data.value);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching parameter:', error);\n  });\n\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 98,\n  \"name\": \"consent\",\n  \"value\": \"{\\\"channelPolicy\\\":\\\"none\\\",\\\"consentPolicy\\\":\\\"none\\\",\\\"consents\\\":[...]}\",\n  \"valueType\": \"json\",\n  \"accessType\": null,\n  \"description\": \"Consents data\"\n}\n\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Unique identifier for the parameter</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the parameter</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>string</td>\n<td>The parameter value (may be JSON-encoded string)</td>\n</tr>\n<tr>\n<td><code>valueType</code></td>\n<td>string</td>\n<td>The type of the value (e.g., <code>json</code>, <code>string</code>, <code>number</code>)</td>\n</tr>\n<tr>\n<td><code>accessType</code></td>\n<td>string/null</td>\n<td>Access control type for the parameter</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>Human-readable description of the parameter's purpose</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-use-cases\">Example Use Cases</h3>\n<ol>\n<li><p><strong>Retrieve Consent Configuration:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/parameter?name=consent\n\n</code></pre><p> Returns consent policies and channel communication settings.</p>\n</li>\n<li><p><strong>Retrieve SMS Channel Settings:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/parameter?name=channel-sms\n\n</code></pre><p> Returns SMS channel-specific configuration.</p>\n</li>\n<li><p><strong>Retrieve Custom Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/parameter?name=test\n\n</code></pre><p> Returns any custom parameter defined in your tenant.</p>\n</li>\n</ol>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The <code>value</code> field often contains JSON-encoded data. Parse it accordingly when <code>valueType</code> is <code>json</code>.</p>\n</li>\n<li><p>Ensure your Bearer token has the necessary permissions to access parameter configurations.</p>\n</li>\n<li><p>The <code>{{tenant_domain}}</code> variable should point to your specific Highp tenant instance.</p>\n</li>\n<li><p>Parameters are tenant-specific and may vary between different Highp installations.</p>\n</li>\n</ul>\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<p>This endpoint is part of the Parameter management API group. Other related endpoints may include:</p>\n<ul>\n<li><p>Create Parameter</p>\n</li>\n<li><p>Update Parameter</p>\n</li>\n<li><p>Delete Parameter</p>\n</li>\n<li><p>List All Parameters</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","parameter"],"host":["testsandbox.highp.me"],"query":[{"key":"name","value":"test"}],"variable":[]}},"response":[{"id":"fcb668da-4031-4d79-8263-50d3d3854e15","name":"Get Parameter By Name","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/parameter?name=test","host":["testsandbox.highp.me"],"path":["api","core","parameter"],"query":[{"key":"name","value":"test"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:03:23 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:03:22 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-5b6b6efd0b07d894e5062a56dd4b5456' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-5b6b6efd0b07d894e5062a56dd4b5456' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 98,\n    \"name\": \"consent\",\n    \"value\": \"{\\\"channelPolicy\\\":\\\"none\\\",\\\"consentPolicy\\\":\\\"none\\\",\\\"consents\\\":[{\\\"name\\\":\\\"channel-sms\\\",\\\"required\\\":true,\\\"short\\\":\\\"Zgoda na komunikację SMS\\\",\\\"type\\\":\\\"sms\\\",\\\"long\\\":\\\"<>htmlowa pelna tresc zgody\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"channel-email\\\",\\\"required\\\":true,\\\"short\\\":\\\"Zgoda na komunikację E-mail\\\",\\\"type\\\":\\\"email\\\",\\\"long\\\":\\\"<>htmlowa pelna tresc zgody\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"channel-whatsapp\\\",\\\"required\\\":true,\\\"short\\\":\\\"Tekstowa skrocona tresc zgody\\\",\\\"type\\\":\\\"whatsapp\\\",\\\"long\\\":\\\"<>Whatsapp pelna tresc zgody\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions - consentterms\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing11\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms111\\\",\\\"required\\\":true,\\\"short\\\":\\\"consentterms111\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing1\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms1\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing2\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms2\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing3\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms3\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing4\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms4\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing5\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms5\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing6\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms6\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentmarketing7\\\",\\\"required\\\":false,\\\"short\\\":\\\"Marketing agreement\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"consentterms7\\\",\\\"required\\\":true,\\\"short\\\":\\\"Terms and conditions\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"zgodawymagana1\\\",\\\"required\\\":true,\\\"short\\\":\\\"Umowa prywatnosci i zasady uslugi\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"zgoda2\\\",\\\"required\\\":false,\\\"short\\\":\\\"Zgoda na przetwarzanie danych\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\\\",\\\"isLocked\\\":true},{\\\"name\\\":\\\"termsofuse\\\",\\\"required\\\":false,\\\"short\\\":\\\"Terms of use\\\",\\\"type\\\":\\\"consent\\\",\\\"long\\\":\\\"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\\\",\\\"isLocked\\\":true}]}\",\n    \"valueType\": \"json\",\n    \"accessType\": null,\n    \"description\": \"Consents data\"\n}"}],"_postman_id":"9331fb16-635f-4c71-9279-c7577f302e9a"},{"name":"Create Parameter","id":"3c57e92d-b9d3-40a1-b64d-4f42060277ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"test2\",\n  \"value\": \"test value2\",\n  \"valueType\": \"text\",\n  \"description\": \"This is an example description.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/parameter","description":"<h1 id=\"create-parameter\">Create Parameter</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates a new parameter in the Highp system. Parameters are configurable key-value pairs that can be used to store system settings, configuration values, or custom metadata.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><p><strong>Method:</strong> <code>POST</code></p>\n</li>\n<li><p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/parameter</code></p>\n</li>\n<li><p><strong>Authentication:</strong> Bearer Token (required)</p>\n</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a Bearer token. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n\n</code></pre><h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be in JSON format with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The unique name/key for the parameter</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The value to be stored for this parameter</td>\n</tr>\n<tr>\n<td><code>valueType</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The data type of the value (e.g., \"text\", \"number\", \"boolean\")</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>No</td>\n<td>A human-readable description of what this parameter is used for</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"test2\",\n  \"value\": \"test value2\",\n  \"valueType\": \"text\",\n  \"description\": \"This is an example description.\"\n}\n\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When a parameter is successfully created, the API returns the created parameter object with an assigned ID.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": number,\n  \"name\": string,\n  \"value\": string,\n  \"valueType\": string,\n  \"accessType\": string | null,\n  \"description\": string\n}\n\n</code></pre>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 118,\n  \"name\": \"test2\",\n  \"value\": \"test value2\",\n  \"valueType\": \"text\",\n  \"accessType\": null,\n  \"description\": \"This is an example description.\"\n}\n\n</code></pre>\n<h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const createParameter = async () =&gt; {\n  const url = 'https://{{tenant_domain}}/api/core/parameter';\n  const token = '{{token}}';\n  const requestBody = {\n    name: 'test2',\n    value: 'test value2',\n    valueType: 'text',\n    description: 'This is an example description.'\n  };\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('Parameter created:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating parameter:', error);\n    throw error;\n  }\n};\n// Usage\ncreateParameter();\n\n</code></pre>\n<h2 id=\"variables\">Variables</h2>\n<p>This request uses the following variables:</p>\n<ul>\n<li><p><code>{{tenant_domain}}</code> - Your Highp tenant domain (e.g., \"testsandbox.highp.me\")</p>\n</li>\n<li><p><code>{{token}}</code> - Your authentication bearer token</p>\n</li>\n</ul>\n<p>Make sure these variables are configured in your environment before making the request.</p>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The <code>id</code> field is automatically generated by the system and returned in the response</p>\n</li>\n<li><p>The <code>accessType</code> field may be null or contain access control information depending on your system configuration</p>\n</li>\n<li><p>Parameter names should be unique within your tenant</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","parameter"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"06bf85fa-7e0a-4e52-8717-3b88269cfa76","name":"Create Parameter","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"test2\",\n  \"value\": \"test value2\",\n  \"valueType\": \"text\",\n  \"description\": \"This is an example description.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/parameter"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:24:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:24:39 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-1142e26e10b7183fed6697de966ec252' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-1142e26e10b7183fed6697de966ec252' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 118,\n    \"name\": \"test2\",\n    \"value\": \"test value2\",\n    \"valueType\": \"text\",\n    \"accessType\": null,\n    \"description\": \"This is an example description.\"\n}"}],"_postman_id":"3c57e92d-b9d3-40a1-b64d-4f42060277ce"},{"name":"Update Parameter","id":"40e311e4-408e-4e1e-9ddc-e32b30690da7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"test ed\",\n  \"value\": \"test value ed\",\n  \"valueType\": \"text\",\n  \"description\": \"This is an example description ed.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/parameter","description":"<h1 id=\"update-parameter\">Update Parameter</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint updates an existing parameter in the Highp platform. Parameters are key-value pairs that can be used to store configuration settings, custom properties, or other data within your tenant environment.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>HTTP Method:</strong> <code>PUT</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/parameter</code></p>\n<p><strong>Authentication:</strong> Bearer Token (required)</p>\n<h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n<td>Authentication token for API access</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n<td>Indicates JSON request body</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be a JSON object with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The unique name/key of the parameter to update</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The value to assign to the parameter</td>\n</tr>\n<tr>\n<td><code>valueType</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The type of the value (e.g., \"text\")</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>No</td>\n<td>A human-readable description of the parameter's purpose</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"name\": \"test ed\",\n    \"value\": \"test value ed\",\n    \"valueType\": \"text\",\n    \"description\": \"This is an example description ed.\"\n}\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The API returns the updated parameter object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": 117,\n    \"name\": \"test ed\",\n    \"value\": \"test value ed\",\n    \"valueType\": \"text\",\n    \"accessType\": null,\n    \"description\": \"This is an example description ed.\"\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>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>The unique identifier of the parameter</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name/key of the parameter</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>string</td>\n<td>The current value of the parameter</td>\n</tr>\n<tr>\n<td><code>valueType</code></td>\n<td>string</td>\n<td>The type of the value</td>\n</tr>\n<tr>\n<td><code>accessType</code></td>\n<td>string/null</td>\n<td>Access control type (if applicable)</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>Description of the parameter</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const updateParameter = async () =&gt; {\n    const tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\n    const token = 'your_bearer_token_here'; // Replace with your access token\n    \n    const url = `https://${tenantDomain}/api/core/parameter`;\n    \n    const requestBody = {\n        name: \"test ed\",\n        value: \"test value ed\",\n        valueType: \"text\",\n        description: \"This is an example description ed.\"\n    };\n    \n    try {\n        const response = await fetch(url, {\n            method: 'PUT',\n            headers: {\n                'Authorization': `Bearer ${token}`,\n                'Content-Type': 'application/json'\n            },\n            body: JSON.stringify(requestBody)\n        });\n        \n        if (!response.ok) {\n            throw new Error(`HTTP error! status: ${response.status}`);\n        }\n        \n        const data = await response.json();\n        console.log('Parameter updated successfully:', data);\n        return data;\n        \n    } catch (error) {\n        console.error('Error updating parameter:', error);\n        throw error;\n    }\n};\n\n// Call the function\nupdateParameter();\n</code></pre>\n<h2 id=\"authentication-requirements\">Authentication Requirements</h2>\n<p>This endpoint requires authentication using a Bearer token. You must:</p>\n<ol>\n<li>Obtain a valid access token through the authentication endpoint</li>\n<li>Include the token in the <code>Authorization</code> header as <code>Bearer {{token}}</code></li>\n<li>Ensure the token has appropriate permissions to update parameters</li>\n</ol>\n<p>The <code>{{token}}</code> and <code>{{tenant_domain}}</code> variables should be configured in your Postman environment or replaced with actual values in your code.</p>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The parameter must already exist in the system to be updated</li>\n<li>The <code>name</code> field is used to identify which parameter to update</li>\n<li>All required fields must be provided in the request body</li>\n<li>The response includes the complete updated parameter object with its system-generated ID</li>\n</ul>\n","urlObject":{"path":["api","core","parameter"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"0dfa3d6a-56f1-4c22-b4c3-b1f9f2821ab3","name":"Update Parameter","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"test ed\",\n  \"value\": \"test value ed\",\n  \"valueType\": \"text\",\n  \"description\": \"This is an example description ed.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/parameter"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:05:52 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:05:51 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-06dd51302ceaa61cee2007d4741ec2ad' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-06dd51302ceaa61cee2007d4741ec2ad' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 117,\n    \"name\": \"test ed\",\n    \"value\": \"test value ed\",\n    \"valueType\": \"text\",\n    \"accessType\": null,\n    \"description\": \"This is an example description ed.\"\n}"}],"_postman_id":"40e311e4-408e-4e1e-9ddc-e32b30690da7"}],"id":"b7230507-73b0-4ef4-82ad-3f43808a82e5","_postman_id":"b7230507-73b0-4ef4-82ad-3f43808a82e5","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Presentation (Legacy)","item":[{"name":"Agenda","item":[{"name":"Get All Presentation Agenda","id":"1af0234c-eb4b-460b-84f9-c6a88712508c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/:presentationUuid/agenda/all?page=0&size=20&sortBy=name&sortDirection=asc","urlObject":{"path":["api","core","presentation",":presentationUuid","agenda","all"],"host":["testsandbox.highp.me"],"query":[{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"asc"}],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"presentationUuid"}]}},"response":[],"_postman_id":"1af0234c-eb4b-460b-84f9-c6a88712508c"},{"name":"Get Presentation Agenda By Uuid","id":"758c994d-91c1-4492-967c-6911baee9405","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/agenda/:uuid","urlObject":{"path":["api","core","presentation","agenda",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"758c994d-91c1-4492-967c-6911baee9405"},{"name":"Update Presentation Agenda","id":"f2ed7f18-dff8-4d2c-a272-3040b6628427","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"*/*"}],"body":{"mode":"raw","raw":"{\n  \"presentationUuid\": \"<string>\",\n  \"name\": \"<string>\",\n  \"ordinal\": \"<integer>\",\n  \"data\": \"<string>\",\n  \"elements\": [\n    {\n      \"agendaUuid\": \"<string>\",\n      \"name\": \"<string>\",\n      \"layer\": \"<integer>\",\n      \"x\": \"<string>\",\n      \"y\": \"<string>\",\n      \"width\": \"<string>\",\n      \"height\": \"<string>\",\n      \"angle\": \"<string>\",\n      \"note\": \"<string>\",\n      \"data\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"fromSlideId\": \"<integer>\",\n      \"toSlideId\": \"<integer>\",\n      \"mainAssetId\": \"<integer>\",\n      \"extraAssetId\": \"<integer>\",\n      \"discriminator\": \"<string>\"\n    },\n    {\n      \"agendaUuid\": \"<string>\",\n      \"name\": \"<string>\",\n      \"layer\": \"<integer>\",\n      \"x\": \"<string>\",\n      \"y\": \"<string>\",\n      \"width\": \"<string>\",\n      \"height\": \"<string>\",\n      \"angle\": \"<string>\",\n      \"note\": \"<string>\",\n      \"data\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"fromSlideId\": \"<integer>\",\n      \"toSlideId\": \"<integer>\",\n      \"mainAssetId\": \"<integer>\",\n      \"extraAssetId\": \"<integer>\",\n      \"discriminator\": \"<string>\"\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/presentation/agenda/:uuid","urlObject":{"path":["api","core","presentation","agenda",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"f2ed7f18-dff8-4d2c-a272-3040b6628427"},{"name":"Delete Presentation Agenda","id":"cfe05ba1-36bc-4b49-b99a-1a4149577b68","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/agenda/:uuid","urlObject":{"path":["api","core","presentation","agenda",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"cfe05ba1-36bc-4b49-b99a-1a4149577b68"},{"name":"Create Presentation Agenda","id":"ccddfd1f-d892-425f-8d36-2e4ab30364b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"*/*"}],"body":{"mode":"raw","raw":"{\n  \"presentationUuid\": \"<string>\",\n  \"name\": \"<string>\",\n  \"ordinal\": \"<integer>\",\n  \"data\": \"<string>\",\n  \"elements\": [\n    {\n      \"agendaUuid\": \"<string>\",\n      \"name\": \"<string>\",\n      \"layer\": \"<integer>\",\n      \"x\": \"<string>\",\n      \"y\": \"<string>\",\n      \"width\": \"<string>\",\n      \"height\": \"<string>\",\n      \"angle\": \"<string>\",\n      \"note\": \"<string>\",\n      \"data\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"fromSlideId\": \"<integer>\",\n      \"toSlideId\": \"<integer>\",\n      \"mainAssetId\": \"<integer>\",\n      \"extraAssetId\": \"<integer>\",\n      \"discriminator\": \"<string>\"\n    },\n    {\n      \"agendaUuid\": \"<string>\",\n      \"name\": \"<string>\",\n      \"layer\": \"<integer>\",\n      \"x\": \"<string>\",\n      \"y\": \"<string>\",\n      \"width\": \"<string>\",\n      \"height\": \"<string>\",\n      \"angle\": \"<string>\",\n      \"note\": \"<string>\",\n      \"data\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"fromSlideId\": \"<integer>\",\n      \"toSlideId\": \"<integer>\",\n      \"mainAssetId\": \"<integer>\",\n      \"extraAssetId\": \"<integer>\",\n      \"discriminator\": \"<string>\"\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/presentation/agenda/create","urlObject":{"path":["api","core","presentation","agenda","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"ccddfd1f-d892-425f-8d36-2e4ab30364b3"}],"id":"081c3ee4-94dc-4c8b-83e8-09d6b3252294","_postman_id":"081c3ee4-94dc-4c8b-83e8-09d6b3252294","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Element","item":[{"name":"Get All Presentation Elements","id":"84e80e73-9476-4bf6-8a17-87b588058b4d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/:agendaUuid/element/all?page=0&size=20&sortBy=name&sortDirection=asc","urlObject":{"path":["api","core","presentation",":agendaUuid","element","all"],"host":["testsandbox.highp.me"],"query":[{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"asc"}],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"agendaUuid"}]}},"response":[],"_postman_id":"84e80e73-9476-4bf6-8a17-87b588058b4d"},{"name":"Get Presentation Element By Uuid","id":"cc943f6e-e1f7-4b64-a661-d8e5ab02bd73","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/element/:uuid","urlObject":{"path":["api","core","presentation","element",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"cc943f6e-e1f7-4b64-a661-d8e5ab02bd73"},{"name":"Update Presentation Element","id":"e8bc6bdc-4bfd-4655-a8de-aa25784b5e64","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"*/*"}],"body":{"mode":"raw","raw":"{\n  \"agendaUuid\": \"<string>\",\n  \"name\": \"<string>\",\n  \"layer\": \"<integer>\",\n  \"x\": \"<string>\",\n  \"y\": \"<string>\",\n  \"width\": \"<string>\",\n  \"height\": \"<string>\",\n  \"angle\": \"<string>\",\n  \"note\": \"<string>\",\n  \"data\": \"<string>\",\n  \"position\": \"<integer>\",\n  \"fromSlideId\": \"<integer>\",\n  \"toSlideId\": \"<integer>\",\n  \"mainAssetId\": \"<integer>\",\n  \"extraAssetId\": \"<integer>\",\n  \"discriminator\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/presentation/element/:uuid","urlObject":{"path":["api","core","presentation","element",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"e8bc6bdc-4bfd-4655-a8de-aa25784b5e64"},{"name":"Create Presentation Element","id":"9f558dfc-690c-4476-963a-bce9e9bf3106","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"*/*"}],"body":{"mode":"raw","raw":"{\n  \"agendaUuid\": \"<string>\",\n  \"name\": \"<string>\",\n  \"layer\": \"<integer>\",\n  \"x\": \"<string>\",\n  \"y\": \"<string>\",\n  \"width\": \"<string>\",\n  \"height\": \"<string>\",\n  \"angle\": \"<string>\",\n  \"note\": \"<string>\",\n  \"data\": \"<string>\",\n  \"position\": \"<integer>\",\n  \"fromSlideId\": \"<integer>\",\n  \"toSlideId\": \"<integer>\",\n  \"mainAssetId\": \"<integer>\",\n  \"extraAssetId\": \"<integer>\",\n  \"discriminator\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/presentation/element/create","urlObject":{"path":["api","core","presentation","element","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"9f558dfc-690c-4476-963a-bce9e9bf3106"},{"name":"Delete Presentation Element","id":"7f83bedf-8ae2-40cd-bc4b-9b3d0ee69898","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/element/:uuid","urlObject":{"path":["api","core","presentation","element",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"7f83bedf-8ae2-40cd-bc4b-9b3d0ee69898"}],"id":"91b6ccb5-430f-4fbd-b08b-4911a7ca2428","_postman_id":"91b6ccb5-430f-4fbd-b08b-4911a7ca2428","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"DBE","item":[{"name":"Get Presentation By Uuid - DBE format","id":"f1b5d774-bf31-41e5-b0cf-54ed4da45766","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/dbe-format/:uuid","urlObject":{"path":["api","core","presentation","dbe-format",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"string","key":"uuid"}]}},"response":[],"_postman_id":"f1b5d774-bf31-41e5-b0cf-54ed4da45766"},{"name":"Update Presentation Elements - DBE format","id":"19e2fa04-8beb-4f67-abc1-aea7139e90a4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"*/*"}],"body":{"mode":"raw","raw":"[\n  {\n    \"identificator\": \"id\",\n    \"discriminator\": \"PresentationSlide\",\n    \"x\": 279.7463496358734,\n    \"y\": 267.72541496637,\n    \"agenda\": 35\n  },\n  {\n    \"identificator\": \"219\",\n    \"discriminator\": \"PresentationSlide\",\n    \"x\": 200.45738484605695,\n    \"y\": 31.835892004899677,\n    \"agenda\": 35\n  },\n  {\n    \"identificator\": \"222\",\n    \"discriminator\": \"PresentationSlide\",\n    \"x\": 279.7452966104231,\n    \"y\": 469.37899723495,\n    \"agenda\": 35\n  }\n]","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/presentation/dbe-format/update-elements","urlObject":{"path":["api","core","presentation","dbe-format","update-elements"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"19e2fa04-8beb-4f67-abc1-aea7139e90a4"}],"id":"4b90975c-90f4-4ae7-aa00-db5442654e16","_postman_id":"4b90975c-90f4-4ae7-aa00-db5442654e16","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Get All Presentations","id":"f68bab40-92bb-4e9f-97b8-9e438b6d15f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/all?page=0&size=20&sortBy=name&sortDirection=asc","urlObject":{"path":["api","core","presentation","all"],"host":["testsandbox.highp.me"],"query":[{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"name"},{"key":"sortDirection","value":"asc"}],"variable":[]}},"response":[],"_postman_id":"f68bab40-92bb-4e9f-97b8-9e438b6d15f7"},{"name":"Update Presentation","id":"b4ede777-1d66-4d52-81c8-f9b91357c18b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"*/*"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"<string>\",\n  \"status\": \"<string>\",\n  \"data\": \"<string>\",\n  \"presentation\": \"<boolean>\",\n  \"program\": \"<boolean>\",\n  \"hosting\": \"<boolean>\",\n  \"agendas\": [\n    {\n      \"presentationUuid\": \"<string>\",\n      \"name\": \"<string>\",\n      \"ordinal\": \"<integer>\",\n      \"data\": \"<string>\",\n      \"elements\": [\n        {\n          \"agendaUuid\": \"<string>\",\n          \"name\": \"<string>\",\n          \"layer\": \"<integer>\",\n          \"x\": \"<string>\",\n          \"y\": \"<string>\",\n          \"width\": \"<string>\",\n          \"height\": \"<string>\",\n          \"angle\": \"<string>\",\n          \"note\": \"<string>\",\n          \"data\": \"<string>\",\n          \"position\": \"<integer>\",\n          \"fromSlideId\": \"<integer>\",\n          \"toSlideId\": \"<integer>\",\n          \"mainAssetId\": \"<integer>\",\n          \"extraAssetId\": \"<integer>\",\n          \"discriminator\": \"<string>\"\n        },\n        {\n          \"agendaUuid\": \"<string>\",\n          \"name\": \"<string>\",\n          \"layer\": \"<integer>\",\n          \"x\": \"<string>\",\n          \"y\": \"<string>\",\n          \"width\": \"<string>\",\n          \"height\": \"<string>\",\n          \"angle\": \"<string>\",\n          \"note\": \"<string>\",\n          \"data\": \"<string>\",\n          \"position\": \"<integer>\",\n          \"fromSlideId\": \"<integer>\",\n          \"toSlideId\": \"<integer>\",\n          \"mainAssetId\": \"<integer>\",\n          \"extraAssetId\": \"<integer>\",\n          \"discriminator\": \"<string>\"\n        }\n      ]\n    },\n    {\n      \"presentationUuid\": \"<string>\",\n      \"name\": \"<string>\",\n      \"ordinal\": \"<integer>\",\n      \"data\": \"<string>\",\n      \"elements\": [\n        {\n          \"agendaUuid\": \"<string>\",\n          \"name\": \"<string>\",\n          \"layer\": \"<integer>\",\n          \"x\": \"<string>\",\n          \"y\": \"<string>\",\n          \"width\": \"<string>\",\n          \"height\": \"<string>\",\n          \"angle\": \"<string>\",\n          \"note\": \"<string>\",\n          \"data\": \"<string>\",\n          \"position\": \"<integer>\",\n          \"fromSlideId\": \"<integer>\",\n          \"toSlideId\": \"<integer>\",\n          \"mainAssetId\": \"<integer>\",\n          \"extraAssetId\": \"<integer>\",\n          \"discriminator\": \"<string>\"\n        },\n        {\n          \"agendaUuid\": \"<string>\",\n          \"name\": \"<string>\",\n          \"layer\": \"<integer>\",\n          \"x\": \"<string>\",\n          \"y\": \"<string>\",\n          \"width\": \"<string>\",\n          \"height\": \"<string>\",\n          \"angle\": \"<string>\",\n          \"note\": \"<string>\",\n          \"data\": \"<string>\",\n          \"position\": \"<integer>\",\n          \"fromSlideId\": \"<integer>\",\n          \"toSlideId\": \"<integer>\",\n          \"mainAssetId\": \"<integer>\",\n          \"extraAssetId\": \"<integer>\",\n          \"discriminator\": \"<string>\"\n        }\n      ]\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/presentation/:uuid","urlObject":{"path":["api","core","presentation",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"b4ede777-1d66-4d52-81c8-f9b91357c18b"},{"name":"Delete Presentation","id":"bd459d58-1fd4-4bd6-9cd9-cc80845fb5b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/:uuid","urlObject":{"path":["api","core","presentation",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"bd459d58-1fd4-4bd6-9cd9-cc80845fb5b5"},{"name":"Create Presentation","id":"689c7242-f4fc-4482-a57e-66d787f9d8cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"*/*"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"<string>\",\n  \"status\": \"<string>\",\n  \"data\": \"<string>\",\n  \"presentation\": \"<boolean>\",\n  \"program\": \"<boolean>\",\n  \"hosting\": \"<boolean>\",\n  \"agendas\": [\n    {\n      \"presentationUuid\": \"<string>\",\n      \"name\": \"<string>\",\n      \"ordinal\": \"<integer>\",\n      \"data\": \"<string>\",\n      \"elements\": [\n        {\n          \"agendaUuid\": \"<string>\",\n          \"name\": \"<string>\",\n          \"layer\": \"<integer>\",\n          \"x\": \"<string>\",\n          \"y\": \"<string>\",\n          \"width\": \"<string>\",\n          \"height\": \"<string>\",\n          \"angle\": \"<string>\",\n          \"note\": \"<string>\",\n          \"data\": \"<string>\",\n          \"position\": \"<integer>\",\n          \"fromSlideId\": \"<integer>\",\n          \"toSlideId\": \"<integer>\",\n          \"mainAssetId\": \"<integer>\",\n          \"extraAssetId\": \"<integer>\",\n          \"discriminator\": \"<string>\"\n        },\n        {\n          \"agendaUuid\": \"<string>\",\n          \"name\": \"<string>\",\n          \"layer\": \"<integer>\",\n          \"x\": \"<string>\",\n          \"y\": \"<string>\",\n          \"width\": \"<string>\",\n          \"height\": \"<string>\",\n          \"angle\": \"<string>\",\n          \"note\": \"<string>\",\n          \"data\": \"<string>\",\n          \"position\": \"<integer>\",\n          \"fromSlideId\": \"<integer>\",\n          \"toSlideId\": \"<integer>\",\n          \"mainAssetId\": \"<integer>\",\n          \"extraAssetId\": \"<integer>\",\n          \"discriminator\": \"<string>\"\n        }\n      ]\n    },\n    {\n      \"presentationUuid\": \"<string>\",\n      \"name\": \"<string>\",\n      \"ordinal\": \"<integer>\",\n      \"data\": \"<string>\",\n      \"elements\": [\n        {\n          \"agendaUuid\": \"<string>\",\n          \"name\": \"<string>\",\n          \"layer\": \"<integer>\",\n          \"x\": \"<string>\",\n          \"y\": \"<string>\",\n          \"width\": \"<string>\",\n          \"height\": \"<string>\",\n          \"angle\": \"<string>\",\n          \"note\": \"<string>\",\n          \"data\": \"<string>\",\n          \"position\": \"<integer>\",\n          \"fromSlideId\": \"<integer>\",\n          \"toSlideId\": \"<integer>\",\n          \"mainAssetId\": \"<integer>\",\n          \"extraAssetId\": \"<integer>\",\n          \"discriminator\": \"<string>\"\n        },\n        {\n          \"agendaUuid\": \"<string>\",\n          \"name\": \"<string>\",\n          \"layer\": \"<integer>\",\n          \"x\": \"<string>\",\n          \"y\": \"<string>\",\n          \"width\": \"<string>\",\n          \"height\": \"<string>\",\n          \"angle\": \"<string>\",\n          \"note\": \"<string>\",\n          \"data\": \"<string>\",\n          \"position\": \"<integer>\",\n          \"fromSlideId\": \"<integer>\",\n          \"toSlideId\": \"<integer>\",\n          \"mainAssetId\": \"<integer>\",\n          \"extraAssetId\": \"<integer>\",\n          \"discriminator\": \"<string>\"\n        }\n      ]\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/presentation/create","urlObject":{"path":["api","core","presentation","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"689c7242-f4fc-4482-a57e-66d787f9d8cd"},{"name":"Get Presentation By Uuid","id":"1885ac56-2364-411b-bb02-51c546ea25d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"*/*"}],"url":"testsandbox.highp.me/api/core/presentation/:uuid","urlObject":{"path":["api","core","presentation",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"any","value":"<string>","key":"uuid"}]}},"response":[],"_postman_id":"1885ac56-2364-411b-bb02-51c546ea25d3"}],"id":"993e96ec-5301-41a3-9989-240a63ea6e68","_postman_id":"993e96ec-5301-41a3-9989-240a63ea6e68","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Media","item":[{"name":"AI transformations","item":[{"name":"AI video extractor","id":"3f3660b7-4789-4405-a645-9644488ba611","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"videoFile\": \"aaf2c193-11ce-46de-8832-dbc522844c0d.mp4\",\n//   \"videoPath\": \"aaf2c193-11ce-46de-8832-dbc522844c0d.mp4\",\n//   \"videoUrl\": \"https://...\",\n  \"enableVision\": true,\n  \"language\": \"Polish\",\n  \"tenantName\": \"ignot-local\",\n  \"medicalContext\": \"cardiology\"\n}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/ai/api/1/medvideo/extract","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"path":["ai","api","1","medvideo","extract"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"3f3660b7-4789-4405-a645-9644488ba611"},{"name":"AI video extractor Status","id":"bdebca45-d90e-492c-b8dd-449e5cf4e125","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"videoFile\": \"aaf2c193-11ce-46de-8832-dbc522844c0d.mp4\",\n//   \"videoPath\": \"aaf2c193-11ce-46de-8832-dbc522844c0d.mp4\",\n//   \"videoUrl\": \"https://...\",\n  \"enableVision\": true,\n  \"tenantName\": \"ignot-local\",\n  \"medicalContext\": \"cardiology\"\n}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/ai/api/1/medvideo/extract","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"path":["ai","api","1","medvideo","extract"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"bdebca45-d90e-492c-b8dd-449e5cf4e125"}],"id":"2c2a5c69-9902-441f-86aa-70f2360ad747","_postman_id":"2c2a5c69-9902-441f-86aa-70f2360ad747","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Async","item":[{"name":"File Upload Async","id":"0226c4c5-fc1b-4735-836b-646224c2cc2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","uuid":"fcc90733-2877-4e2d-9bd2-183f58eaa190","src":"/Users/bartoszlorenc/Downloads/video-hd-2.mp4"}]},"url":"testsandbox.highp.me/api/media/file/upload/async","description":"<h1 id=\"file-upload\">File Upload</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint allows you to upload media files (primarily videos) to the Highp platform. The uploaded file is stored and processed, returning metadata including a unique identifier and accessible URL for the media asset.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n\n</code></pre><p>Additionally, you must provide the tenant domain in the request header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-Tenant-Domain: {tenant_domain}\n\n</code></pre><h2 id=\"request-parameters\">Request Parameters</h2>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>X-Tenant-Domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The tenant domain for your Highp instance</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token for authentication</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>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>No</td>\n<td>Custom filename for the uploaded file (e.g., \"nazwa23.mp4\", \"nazwa pliku.mp4\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters-multipartform-data\">Body Parameters (multipart/form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>file</code></td>\n<td>file</td>\n<td>Yes</td>\n<td>The media file to upload (e.g., MP4 video file)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>No</td>\n<td>Project identifier (default: \"highp\")</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<p>The API returns a JSON object containing the uploaded file's metadata:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}\n\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the uploaded file</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Generated name for the file</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>File name (typically same as <code>name</code>)</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string (URL)</td>\n<td>Direct URL to access the uploaded media file</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Numeric ID of the media asset in the database</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string (UUID)</td>\n<td>UUID of the media asset (typically same as <code>fileUuid</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fs = require('fs');\nconst FormData = require('form-data');\nasync function uploadFile(filePath, tenantDomain, accessToken, customFileName = null) {\n  const formData = new FormData();\n  // Add the file to the form data\n  formData.append('file', fs.createReadStream(filePath));\n  // Optionally add project identifier\n  // formData.append('project', 'highp');\n  // Build URL with optional query parameter\n  let url = `https://${tenantDomain}/api/media/file/upload`;\n  if (customFileName) {\n    url += `?name=${encodeURIComponent(customFileName)}`;\n  }\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'X-Tenant-Domain': tenantDomain,\n        'Authorization': `Bearer ${accessToken}`,\n        ...formData.getHeaders()\n      },\n      body: formData\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('File uploaded successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error uploading file:', error);\n    throw error;\n  }\n}\n// Usage example\nuploadFile(\n  '/path/to/video.mp4',\n  'testsandbox.gethighp.com',\n  'your_access_token_here',\n  'my-video.mp4'\n);\n\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The endpoint is primarily designed for uploading personal videos</p>\n</li>\n<li><p>Files are automatically assigned a UUID-based filename if no custom name is provided</p>\n</li>\n<li><p>The returned <code>fileUrl</code> can be used immediately to access the uploaded media</p>\n</li>\n<li><p>Ensure your Bearer token has the necessary permissions to upload media files</p>\n</li>\n</ul>\n","urlObject":{"path":["api","media","file","upload","async"],"host":["testsandbox.highp.me"],"query":[{"disabled":true,"description":{"content":"<p>optional - video name in mediaasset</p>\n","type":"text/plain"},"key":"name","value":"nazwa23.mp4"},{"disabled":true,"description":{"content":"<p>optional - video filename - required for ios upload</p>\n","type":"text/plain"},"key":"filename","value":"uuid.mp4"},{"disabled":true,"description":{"content":"<p>optional - true is required for ios upload (to handle message sending process)</p>\n","type":"text/plain"},"key":"mobile","value":"true/false"},{"disabled":true,"key":"metadata","value":"{\\\"author\\\":\\\"Jan Kowalski\\\",\\\"createdAt\\\":\\\"2025-10-02T12:34:56Z\\\",\\\"tags\\\":[\\\"banner\\\",\\\"homepage\\\",\\\"marketing\\\"],\\\"description\\\":\\\"Grafika nagłówka dla projektu Highp\\\",\\\"colorPalette\\\":[\\\"%231a1a1a\\\",\\\"%23ffffff\\\",\\\"%23ff6600\\\"],\\\"version\\\":2}"},{"disabled":true,"key":"labelUuids","value":null}],"variable":[]}},"response":[{"id":"b6019e5e-3f62-48a1-992c-1d0d3fe77130","name":"File Upload Async","originalRequest":{"method":"POST","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","uuid":"fcc90733-2877-4e2d-9bd2-183f58eaa190","src":"/Users/bartoszlorenc/Downloads/video-hd-2.mp4"}]},"url":{"raw":"testsandbox.highp.me/api/media/file/upload/async?name=nazwa23.mp4","host":["testsandbox.highp.me"],"path":["api","media","file","upload","async"],"query":[{"key":"name","value":"nazwa23.mp4","description":"optional"}]}},"status":"Accepted","code":202,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 30 Mar 2026 06:08:16 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"application-1"}],"cookie":[],"responseTime":null,"body":"{\n    \"processUuid\": \"265710d0-e080-4c13-9767-264b3a0eb732\",\n    \"status\": \"PROCESSING\"\n}"}],"_postman_id":"0226c4c5-fc1b-4735-836b-646224c2cc2d"},{"name":"Process File (For Existing File) Async","id":"cbabb6d1-7f61-4ae4-9506-745cb3ef9d81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"url":"testsandbox.highp.me/api/media/file/process/async?filename=uuid.mp4","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint processes an existing media file that has already been uploaded to the Highp platform. It's primarily used for processing personal videos and converting them into media assets that can be used within the Highp system.</p>\n<p><strong>Note:</strong> This endpoint is typically called after a file has been uploaded via the <code>/api/media/file/upload</code> endpoint. It processes the uploaded file and generates the necessary metadata and URLs for the media asset.</p>\n<hr />\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the file to process. This should match the filename of the previously uploaded file. Example: <code>nazwa pliku.mp4</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {token}\n</code></pre><p>The <code>{{token}}</code> variable should contain a valid access token for your Highp tenant.</p>\n<hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const processFile = async (tenantDomain, token, filename) =&gt; {\n  const url = `https://${tenantDomain}/api/media/file/process?filename=${encodeURIComponent(filename)}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('File processed successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error processing file:', error);\n    throw error;\n  }\n};\n\n// Usage example\nconst tenantDomain = 'testsandbox.gethighp.com';\nconst token = 'your-access-token-here';\nconst filename = 'nazwa pliku.mp4';\n\nprocessFile(tenantDomain, token, filename)\n  .then(result =&gt; {\n    console.log('Media Asset UUID:', result.mediaAssetUuid);\n    console.log('File URL:', result.fileUrl);\n  });\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fileUuid\": \"string\",\n  \"name\": \"string\",\n  \"fileName\": \"string\",\n  \"fileUrl\": \"string\",\n  \"mediaAssetId\": number,\n  \"mediaAssetUuid\": \"string\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the processed file</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the processed file (typically includes the UUID)</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>The filename of the processed media asset</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string</td>\n<td>Full URL where the processed media file can be accessed</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>number</td>\n<td>Internal database ID for the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the media asset (same as fileUuid)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n  \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n  \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n  \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n  \"mediaAssetId\": 1945,\n  \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}\n</code></pre>\n<hr />\n<h2 id=\"file-upload-process\">File Upload Process</h2>\n<p>The typical workflow for uploading and processing a file is:</p>\n<ol>\n<li><strong>Upload the file</strong> using the <code>/api/media/file/upload</code> endpoint with multipart/form-data</li>\n<li><strong>Process the file</strong> using this endpoint (<code>/api/media/file/process</code>) with the filename as a query parameter</li>\n<li><strong>Use the returned <code>fileUrl</code></strong> or <code>mediaAssetUuid</code> to reference the media asset in other API calls</li>\n</ol>\n<hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The endpoint returns a 201 Created status code on success</li>\n<li>The processed file is assigned a UUID which becomes part of the filename</li>\n<li>The <code>fileUrl</code> can be used to directly access or embed the media file</li>\n<li>Ensure the filename parameter matches exactly with the uploaded file name</li>\n<li>Special characters in filenames should be URL-encoded in the query parameter</li>\n</ul>\n","urlObject":{"path":["api","media","file","process","async"],"host":["testsandbox.highp.me"],"query":[{"key":"filename","value":"uuid.mp4"}],"variable":[]}},"response":[{"id":"f2172eeb-2d9c-47c7-8425-ed87b338e49d","name":"Process File (For Existing File) Async","originalRequest":{"method":"POST","header":[],"url":{"raw":"testsandbox.highp.me/api/media/file/process/async?filename=7c37b585-24a0-4da4-8fa8-5e80a98d05e6.mp4","host":["testsandbox.highp.me"],"path":["api","media","file","process","async"],"query":[{"key":"filename","value":"7c37b585-24a0-4da4-8fa8-5e80a98d05e6.mp4"}]}},"status":"Accepted","code":202,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 30 Mar 2026 06:15:22 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"application-1"}],"cookie":[],"responseTime":null,"body":"{\n    \"processUuid\": \"cbddd5a0-f2b6-4765-82cf-0e674d281bd8\",\n    \"status\": \"PROCESSING\"\n}"}],"_postman_id":"cbabb6d1-7f61-4ae4-9506-745cb3ef9d81"},{"name":"Async Status","id":"62d924c1-69b1-423b-acaf-f8600143956b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"}],"url":"testsandbox.highp.me/api/media/file/async/status/{processUuid}","description":"<h1 id=\"file-upload\">File Upload</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint allows you to upload media files (primarily videos) to the Highp platform. The uploaded file is stored and processed, returning metadata including a unique identifier and accessible URL for the media asset.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n\n</code></pre><p>Additionally, you must provide the tenant domain in the request header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-Tenant-Domain: {tenant_domain}\n\n</code></pre><h2 id=\"request-parameters\">Request Parameters</h2>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>X-Tenant-Domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The tenant domain for your Highp instance</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token for authentication</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>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>No</td>\n<td>Custom filename for the uploaded file (e.g., \"nazwa23.mp4\", \"nazwa pliku.mp4\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters-multipartform-data\">Body Parameters (multipart/form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>file</code></td>\n<td>file</td>\n<td>Yes</td>\n<td>The media file to upload (e.g., MP4 video file)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>No</td>\n<td>Project identifier (default: \"highp\")</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<p>The API returns a JSON object containing the uploaded file's metadata:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}\n\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the uploaded file</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Generated name for the file</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>File name (typically same as <code>name</code>)</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string (URL)</td>\n<td>Direct URL to access the uploaded media file</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Numeric ID of the media asset in the database</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string (UUID)</td>\n<td>UUID of the media asset (typically same as <code>fileUuid</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fs = require('fs');\nconst FormData = require('form-data');\nasync function uploadFile(filePath, tenantDomain, accessToken, customFileName = null) {\n  const formData = new FormData();\n  // Add the file to the form data\n  formData.append('file', fs.createReadStream(filePath));\n  // Optionally add project identifier\n  // formData.append('project', 'highp');\n  // Build URL with optional query parameter\n  let url = `https://${tenantDomain}/api/media/file/upload`;\n  if (customFileName) {\n    url += `?name=${encodeURIComponent(customFileName)}`;\n  }\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'X-Tenant-Domain': tenantDomain,\n        'Authorization': `Bearer ${accessToken}`,\n        ...formData.getHeaders()\n      },\n      body: formData\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('File uploaded successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error uploading file:', error);\n    throw error;\n  }\n}\n// Usage example\nuploadFile(\n  '/path/to/video.mp4',\n  'testsandbox.gethighp.com',\n  'your_access_token_here',\n  'my-video.mp4'\n);\n\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The endpoint is primarily designed for uploading personal videos</p>\n</li>\n<li><p>Files are automatically assigned a UUID-based filename if no custom name is provided</p>\n</li>\n<li><p>The returned <code>fileUrl</code> can be used immediately to access the uploaded media</p>\n</li>\n<li><p>Ensure your Bearer token has the necessary permissions to upload media files</p>\n</li>\n</ul>\n","urlObject":{"path":["api","media","file","async","status","{processUuid}"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"6dbcd50f-76b6-4d12-89e5-ba6a82062343","name":"Async Status","originalRequest":{"method":"GET","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"}],"url":"testsandbox.highp.me/api/media/file/async/status/da91ebc8-a478-45dd-b5f6-5188eb0515f4"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 30 Mar 2026 06:13:20 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"Mon, 30 Mar 2026 06:13:19 GMT"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"application-1"},{"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-8bf7858661f824128d54bd466e840e8c' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-8bf7858661f824128d54bd466e840e8c' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\n    \"processUuid\": \"da91ebc8-a478-45dd-b5f6-5188eb0515f4\",\n    \"status\": \"DONE\",\n    \"result\": {\n        \"fileUuid\": \"7c37b585-24a0-4da4-8fa8-5e80a98d05e6\",\n        \"name\": \"nazwa23.mp4\",\n        \"fileName\": \"7c37b585-24a0-4da4-8fa8-5e80a98d05e6.mp4\",\n        \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/7c37b585-24a0-4da4-8fa8-5e80a98d05e6.mp4\",\n        \"mediaAssetId\": 128,\n        \"mediaAssetUuid\": \"7c37b585-24a0-4da4-8fa8-5e80a98d05e6\"\n    },\n    \"errorMessage\": null\n}"}],"_postman_id":"62d924c1-69b1-423b-acaf-f8600143956b"}],"id":"65b2d4b8-bec8-4dd6-b32f-17c434f76a42","_postman_id":"65b2d4b8-bec8-4dd6-b32f-17c434f76a42","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"File Upload","id":"15750e05-54fe-41d8-8f0c-4f7d8dcdcc09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","uuid":"fcc90733-2877-4e2d-9bd2-183f58eaa190","src":"/Users/bartoszlorenc/Downloads/video-hd-2.mp4"}]},"url":"testsandbox.highp.me/api/media/file/upload","description":"<h1 id=\"file-upload\">File Upload</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint allows you to upload media files (primarily videos) to the Highp platform. The uploaded file is stored and processed, returning metadata including a unique identifier and accessible URL for the media asset.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n\n</code></pre><p>Additionally, you must provide the tenant domain in the request header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-Tenant-Domain: {tenant_domain}\n\n</code></pre><h2 id=\"request-parameters\">Request Parameters</h2>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>X-Tenant-Domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The tenant domain for your Highp instance</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token for authentication</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>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>No</td>\n<td>Custom filename for the uploaded file (e.g., \"nazwa23.mp4\", \"nazwa pliku.mp4\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters-multipartform-data\">Body Parameters (multipart/form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>file</code></td>\n<td>file</td>\n<td>Yes</td>\n<td>The media file to upload (e.g., MP4 video file)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>No</td>\n<td>Project identifier (default: \"highp\")</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<p>The API returns a JSON object containing the uploaded file's metadata:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}\n\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the uploaded file</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Generated name for the file</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>File name (typically same as <code>name</code>)</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string (URL)</td>\n<td>Direct URL to access the uploaded media file</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Numeric ID of the media asset in the database</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string (UUID)</td>\n<td>UUID of the media asset (typically same as <code>fileUuid</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fs = require('fs');\nconst FormData = require('form-data');\nasync function uploadFile(filePath, tenantDomain, accessToken, customFileName = null) {\n  const formData = new FormData();\n  // Add the file to the form data\n  formData.append('file', fs.createReadStream(filePath));\n  // Optionally add project identifier\n  // formData.append('project', 'highp');\n  // Build URL with optional query parameter\n  let url = `https://${tenantDomain}/api/media/file/upload`;\n  if (customFileName) {\n    url += `?name=${encodeURIComponent(customFileName)}`;\n  }\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'X-Tenant-Domain': tenantDomain,\n        'Authorization': `Bearer ${accessToken}`,\n        ...formData.getHeaders()\n      },\n      body: formData\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('File uploaded successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error uploading file:', error);\n    throw error;\n  }\n}\n// Usage example\nuploadFile(\n  '/path/to/video.mp4',\n  'testsandbox.gethighp.com',\n  'your_access_token_here',\n  'my-video.mp4'\n);\n\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The endpoint is primarily designed for uploading personal videos</p>\n</li>\n<li><p>Files are automatically assigned a UUID-based filename if no custom name is provided</p>\n</li>\n<li><p>The returned <code>fileUrl</code> can be used immediately to access the uploaded media</p>\n</li>\n<li><p>Ensure your Bearer token has the necessary permissions to upload media files</p>\n</li>\n</ul>\n","urlObject":{"path":["api","media","file","upload"],"host":["testsandbox.highp.me"],"query":[{"disabled":true,"description":{"content":"<p>optional - name of the video in mediaasset</p>\n","type":"text/plain"},"key":"name","value":"nazwa23.mp4"},{"disabled":true,"description":{"content":"<p>optional - video filename in url</p>\n","type":"text/plain"},"key":"filename","value":"uuid.mp4"},{"disabled":true,"key":"metadata","value":"{\\\"author\\\":\\\"Jan Kowalski\\\",\\\"createdAt\\\":\\\"2025-10-02T12:34:56Z\\\",\\\"tags\\\":[\\\"banner\\\",\\\"homepage\\\",\\\"marketing\\\"],\\\"description\\\":\\\"Grafika nagłówka dla projektu Highp\\\",\\\"colorPalette\\\":[\\\"#1a1a1a\\\",\\\"#ffffff\\\",\\\"#ff6600\\\"],\\\"version\\\":2}"},{"disabled":true,"key":"labelUuids","value":"uuid1,uuid2"}],"variable":[]}},"response":[{"id":"f556a791-a14c-409d-b30e-c8cf07b36eb4","name":"File Upload","originalRequest":{"method":"POST","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/media/file/upload?name=nazwa23.mp4","host":["testsandbox.highp.me"],"path":["api","media","file","upload"],"query":[{"description":"optional","key":"name","value":"nazwa23.mp4"}]}},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:59:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:59:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Set-Cookie","value":"JSESSIONID=ePJdeaLaKzMpuJqfjgY3Y3_x1Z7o1ZTl9xKLDnOJ; path=/"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"application-1"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-33023788233723084f6fb3f3a4ecdb21' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-33023788233723084f6fb3f3a4ecdb21' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}"}],"_postman_id":"15750e05-54fe-41d8-8f0c-4f7d8dcdcc09"},{"name":"File Download","id":"91951fde-9741-4393-ae39-1985fcc54bf8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"}],"url":"testsandbox.highp.me/api/media/file/{uuid}.{ext}","description":"<h1 id=\"file-upload\">File Upload</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint allows you to upload media files (primarily videos) to the Highp platform. The uploaded file is stored and processed, returning metadata including a unique identifier and accessible URL for the media asset.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n\n</code></pre><p>Additionally, you must provide the tenant domain in the request header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-Tenant-Domain: {tenant_domain}\n\n</code></pre><h2 id=\"request-parameters\">Request Parameters</h2>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>X-Tenant-Domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The tenant domain for your Highp instance</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token for authentication</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>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>No</td>\n<td>Custom filename for the uploaded file (e.g., \"nazwa23.mp4\", \"nazwa pliku.mp4\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters-multipartform-data\">Body Parameters (multipart/form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>file</code></td>\n<td>file</td>\n<td>Yes</td>\n<td>The media file to upload (e.g., MP4 video file)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>No</td>\n<td>Project identifier (default: \"highp\")</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<p>The API returns a JSON object containing the uploaded file's metadata:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}\n\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the uploaded file</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Generated name for the file</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>File name (typically same as <code>name</code>)</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string (URL)</td>\n<td>Direct URL to access the uploaded media file</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Numeric ID of the media asset in the database</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string (UUID)</td>\n<td>UUID of the media asset (typically same as <code>fileUuid</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fs = require('fs');\nconst FormData = require('form-data');\nasync function uploadFile(filePath, tenantDomain, accessToken, customFileName = null) {\n  const formData = new FormData();\n  // Add the file to the form data\n  formData.append('file', fs.createReadStream(filePath));\n  // Optionally add project identifier\n  // formData.append('project', 'highp');\n  // Build URL with optional query parameter\n  let url = `https://${tenantDomain}/api/media/file/upload`;\n  if (customFileName) {\n    url += `?name=${encodeURIComponent(customFileName)}`;\n  }\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'X-Tenant-Domain': tenantDomain,\n        'Authorization': `Bearer ${accessToken}`,\n        ...formData.getHeaders()\n      },\n      body: formData\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('File uploaded successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error uploading file:', error);\n    throw error;\n  }\n}\n// Usage example\nuploadFile(\n  '/path/to/video.mp4',\n  'testsandbox.gethighp.com',\n  'your_access_token_here',\n  'my-video.mp4'\n);\n\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The endpoint is primarily designed for uploading personal videos</p>\n</li>\n<li><p>Files are automatically assigned a UUID-based filename if no custom name is provided</p>\n</li>\n<li><p>The returned <code>fileUrl</code> can be used immediately to access the uploaded media</p>\n</li>\n<li><p>Ensure your Bearer token has the necessary permissions to upload media files</p>\n</li>\n</ul>\n","urlObject":{"path":["api","media","file","{uuid}.{ext}"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"e6d4030d-e574-460c-b66b-d8509cdd62fb","name":"File Upload","originalRequest":{"method":"POST","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/media/file/upload?name=nazwa23.mp4","host":["testsandbox.highp.me"],"path":["api","media","file","upload"],"query":[{"description":"optional","key":"name","value":"nazwa23.mp4"}]}},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:59:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:59:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Set-Cookie","value":"JSESSIONID=ePJdeaLaKzMpuJqfjgY3Y3_x1Z7o1ZTl9xKLDnOJ; path=/"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"application-1"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-33023788233723084f6fb3f3a4ecdb21' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-33023788233723084f6fb3f3a4ecdb21' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}"}],"_postman_id":"91951fde-9741-4393-ae39-1985fcc54bf8"},{"name":"Get Media Types","id":"414a6e86-e5c5-4327-95ab-5f08bcaad695","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"}],"url":"testsandbox.highp.me/api/media/file/allowed-types","description":"<h1 id=\"file-upload\">File Upload</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint allows you to upload media files (primarily videos) to the Highp platform. The uploaded file is stored and processed, returning metadata including a unique identifier and accessible URL for the media asset.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n\n</code></pre><p>Additionally, you must provide the tenant domain in the request header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-Tenant-Domain: {tenant_domain}\n\n</code></pre><h2 id=\"request-parameters\">Request Parameters</h2>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>X-Tenant-Domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The tenant domain for your Highp instance</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token for authentication</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>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>No</td>\n<td>Custom filename for the uploaded file (e.g., \"nazwa23.mp4\", \"nazwa pliku.mp4\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-parameters-multipartform-data\">Body Parameters (multipart/form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>file</code></td>\n<td>file</td>\n<td>Yes</td>\n<td>The media file to upload (e.g., MP4 video file)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>No</td>\n<td>Project identifier (default: \"highp\")</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<p>The API returns a JSON object containing the uploaded file's metadata:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}\n\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the uploaded file</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Generated name for the file</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>File name (typically same as <code>name</code>)</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string (URL)</td>\n<td>Direct URL to access the uploaded media file</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Numeric ID of the media asset in the database</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string (UUID)</td>\n<td>UUID of the media asset (typically same as <code>fileUuid</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fs = require('fs');\nconst FormData = require('form-data');\nasync function uploadFile(filePath, tenantDomain, accessToken, customFileName = null) {\n  const formData = new FormData();\n  // Add the file to the form data\n  formData.append('file', fs.createReadStream(filePath));\n  // Optionally add project identifier\n  // formData.append('project', 'highp');\n  // Build URL with optional query parameter\n  let url = `https://${tenantDomain}/api/media/file/upload`;\n  if (customFileName) {\n    url += `?name=${encodeURIComponent(customFileName)}`;\n  }\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'X-Tenant-Domain': tenantDomain,\n        'Authorization': `Bearer ${accessToken}`,\n        ...formData.getHeaders()\n      },\n      body: formData\n    });\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const data = await response.json();\n    console.log('File uploaded successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error uploading file:', error);\n    throw error;\n  }\n}\n// Usage example\nuploadFile(\n  '/path/to/video.mp4',\n  'testsandbox.gethighp.com',\n  'your_access_token_here',\n  'my-video.mp4'\n);\n\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The endpoint is primarily designed for uploading personal videos</p>\n</li>\n<li><p>Files are automatically assigned a UUID-based filename if no custom name is provided</p>\n</li>\n<li><p>The returned <code>fileUrl</code> can be used immediately to access the uploaded media</p>\n</li>\n<li><p>Ensure your Bearer token has the necessary permissions to upload media files</p>\n</li>\n</ul>\n","urlObject":{"path":["api","media","file","allowed-types"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"e75c6bda-7a34-4e1a-8644-1cd7ea2d8f8a","name":"File Upload","originalRequest":{"method":"POST","header":[{"key":"X-Tenant-Domain","value":"{{tenant_domain}}"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/media/file/upload?name=nazwa23.mp4","host":["testsandbox.highp.me"],"path":["api","media","file","upload"],"query":[{"description":"optional","key":"name","value":"nazwa23.mp4"}]}},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:59:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:59:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Set-Cookie","value":"JSESSIONID=ePJdeaLaKzMpuJqfjgY3Y3_x1Z7o1ZTl9xKLDnOJ; path=/"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"application-1"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-33023788233723084f6fb3f3a4ecdb21' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-33023788233723084f6fb3f3a4ecdb21' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}"}],"_postman_id":"414a6e86-e5c5-4327-95ab-5f08bcaad695"},{"name":"Process File (For Existing File)","id":"d629d151-40cd-432b-a4be-f538144945d7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"url":"testsandbox.highp.me/api/media/file/process?filename=uuid.mp4","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint processes an existing media file that has already been uploaded to the Highp platform. It's primarily used for processing personal videos and converting them into media assets that can be used within the Highp system.</p>\n<p><strong>Note:</strong> This endpoint is typically called after a file has been uploaded via the <code>/api/media/file/upload</code> endpoint. It processes the uploaded file and generates the necessary metadata and URLs for the media asset.</p>\n<hr />\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the file to process. This should match the filename of the previously uploaded file. Example: <code>nazwa pliku.mp4</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {token}\n</code></pre><p>The <code>{{token}}</code> variable should contain a valid access token for your Highp tenant.</p>\n<hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const processFile = async (tenantDomain, token, filename) =&gt; {\n  const url = `https://${tenantDomain}/api/media/file/process?filename=${encodeURIComponent(filename)}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('File processed successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error processing file:', error);\n    throw error;\n  }\n};\n\n// Usage example\nconst tenantDomain = 'testsandbox.gethighp.com';\nconst token = 'your-access-token-here';\nconst filename = 'nazwa pliku.mp4';\n\nprocessFile(tenantDomain, token, filename)\n  .then(result =&gt; {\n    console.log('Media Asset UUID:', result.mediaAssetUuid);\n    console.log('File URL:', result.fileUrl);\n  });\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fileUuid\": \"string\",\n  \"name\": \"string\",\n  \"fileName\": \"string\",\n  \"fileUrl\": \"string\",\n  \"mediaAssetId\": number,\n  \"mediaAssetUuid\": \"string\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the processed file</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the processed file (typically includes the UUID)</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>The filename of the processed media asset</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string</td>\n<td>Full URL where the processed media file can be accessed</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>number</td>\n<td>Internal database ID for the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the media asset (same as fileUuid)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n  \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n  \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n  \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n  \"mediaAssetId\": 1945,\n  \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}\n</code></pre>\n<hr />\n<h2 id=\"file-upload-process\">File Upload Process</h2>\n<p>The typical workflow for uploading and processing a file is:</p>\n<ol>\n<li><strong>Upload the file</strong> using the <code>/api/media/file/upload</code> endpoint with multipart/form-data</li>\n<li><strong>Process the file</strong> using this endpoint (<code>/api/media/file/process</code>) with the filename as a query parameter</li>\n<li><strong>Use the returned <code>fileUrl</code></strong> or <code>mediaAssetUuid</code> to reference the media asset in other API calls</li>\n</ol>\n<hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The endpoint returns a 201 Created status code on success</li>\n<li>The processed file is assigned a UUID which becomes part of the filename</li>\n<li>The <code>fileUrl</code> can be used to directly access or embed the media file</li>\n<li>Ensure the filename parameter matches exactly with the uploaded file name</li>\n<li>Special characters in filenames should be URL-encoded in the query parameter</li>\n</ul>\n","urlObject":{"path":["api","media","file","process"],"host":["testsandbox.highp.me"],"query":[{"key":"filename","value":"uuid.mp4"},{"disabled":true,"description":{"content":"<p>optional - name of the video in mediaasset</p>\n","type":"text/plain"},"key":"name","value":"nazwa23.mp4"},{"disabled":true,"key":"metadata","value":"{\\\"author\\\":\\\"Jan Kowalski\\\",\\\"createdAt\\\":\\\"2025-10-02T12:34:56Z\\\",\\\"tags\\\":[\\\"banner\\\",\\\"homepage\\\",\\\"marketing\\\"],\\\"description\\\":\\\"Grafika nagłówka dla projektu Highp\\\",\\\"colorPalette\\\":[\\\"#1a1a1a\\\",\\\"#ffffff\\\",\\\"#ff6600\\\"],\\\"version\\\":2}"},{"disabled":true,"key":"labelUuids","value":"uuid1,uuid2"}],"variable":[]}},"response":[{"id":"61e1e1cc-50c5-45a2-b866-dc02f5a17401","name":"Process File (For Existing File)","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/media/file/process?filename=nazwa pliku.mp4","host":["testsandbox.highp.me"],"path":["api","media","file","process"],"query":[{"key":"filename","value":"nazwa pliku.mp4"}]}},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:59:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:59:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Set-Cookie","value":"JSESSIONID=ePJdeaLaKzMpuJqfjgY3Y3_x1Z7o1ZTl9xKLDnOJ; path=/"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"application-1"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-33023788233723084f6fb3f3a4ecdb21' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-33023788233723084f6fb3f3a4ecdb21' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"fileUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n    \"name\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileName\": \"53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/53242916-c330-4ad2-96e7-355c7ccaff4d.mp4\",\n    \"mediaAssetId\": 1945,\n    \"mediaAssetUuid\": \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n}"}],"_postman_id":"d629d151-40cd-432b-a4be-f538144945d7"},{"name":"Files Delete","id":"1973d5b9-9646-40b0-ab95-6c5a92e32462","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"[\n  \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n]","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/media/file/delete","description":"<h2 id=\"delete-files\">Delete Files</h2>\n<p>This endpoint deletes one or more files from the media storage system by their UUIDs. Delete files and mediaassets from core database.</p>\n<h3 id=\"request-details\">Request Details</h3>\n<ul>\n<li><p><strong>Method:</strong> <code>DELETE</code></p>\n</li>\n<li><p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/media/file/delete</code></p>\n</li>\n<li><p><strong>Authentication:</strong> Requires a valid bearer token via the <code>{{token}}</code> variable</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The request body should be a JSON array containing file UUIDs to delete:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  \"53242916-c330-4ad2-96e7-355c7ccaff4d\",\n  \"d36381e3-c89e-4836-9b8c-f4fcc2dd0d6b\"\n]\n\n</code></pre>\n<p><strong>Schema:</strong></p>\n<ul>\n<li><p>Type: <code>array</code></p>\n</li>\n<li><p>Items: <code>string</code> (UUID format)</p>\n</li>\n</ul>\n<h3 id=\"nodejs-fetch-example\">Node.js Fetch Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const deleteFiles = async (fileUuids) =&gt; {\n  const response = await fetch('https://your-tenant-domain.com/api/media/file/delete', {\n    method: 'DELETE',\n    headers: {\n      'Content-Type': 'application/json',\n      'Authorization': `Bearer ${yourToken}`\n    },\n    body: JSON.stringify(fileUuids)\n  });\n  if (!response.ok) {\n    throw new Error(`HTTP error! status: ${response.status}`);\n  }\n  return response;\n};\n// Usage\nconst fileIds = ['53242916-c330-4ad2-96e7-355c7ccaff4d'];\ndeleteFiles(fileIds)\n  .then(() =&gt; console.log('Files deleted successfully'))\n  .catch(error =&gt; console.error('Error deleting files:', error));\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p><strong>Success (200 OK):</strong></p>\n<ul>\n<li><p><strong>Status Code:</strong> <code>200</code></p>\n</li>\n<li><p><strong>Body:</strong> Empty response body</p>\n</li>\n<li><p>The files are successfully deleted from the system</p>\n</li>\n</ul>\n<p><strong>Error (401 Unauthorized):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"invalid_token\",\n  \"error_description\": \"Invalid token provided!\"\n}\n\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>The endpoint accepts multiple file UUIDs in a single request for batch deletion</p>\n</li>\n<li><p>Ensure the token has appropriate permissions to delete media files</p>\n</li>\n<li><p>The <code>{{tenant_domain}}</code> variable should be set to your tenant's domain</p>\n</li>\n<li><p>Mainly used for deleting personal videos and uploaded media files</p>\n</li>\n</ul>\n","urlObject":{"path":["api","media","file","delete"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"ba9b8d64-e441-49ee-8cce-5d4dfd3c2bfd","name":"Files Delete","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"[\n  \"53242916-c330-4ad2-96e7-355c7ccaff4d\"\n]","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/media/file/delete"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:42:10 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:42:09 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"application-1"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-37cf478dbaa697e40724b46a04880b31' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-37cf478dbaa697e40724b46a04880b31' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"1973d5b9-9646-40b0-ab95-6c5a92e32462"},{"name":"Create Mediaasset For Existing File","id":"ab9091ff-fc7b-4ed8-a7bb-f9ee8c598914","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":"testsandbox.highp.me/api/media/file/create-media-asset?filename=cb821f8f-55e0-4b80-82f4-a8017e9ed075.mp4","description":"<h1 id=\"create-media-asset-for-existing-file\">Create Media Asset for Existing File</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates a media asset record for an existing file that has already been uploaded to the server. It's primarily used for registering personal videos and other media files in the Highp platform's media management system.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/media/file/create-media-asset</code></li>\n<li><strong>Content-Type:</strong> <code>application/json</code></li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Description</th>\n<th>Example Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the file to create a media asset for. Should include the file extension (e.g., .mp4, .jpg)</td>\n<td><code>cb821f8f-55e0-4b80-82f4-a8017e9ed075.mp4</code><br /><code>0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4</code><br /><code>27ba4be6-0935-4a69-a324-fef0589596f7.jpg</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.gethighp.com';\nconst accessToken = 'your_access_token_here';\nconst filename = 'cb821f8f-55e0-4b80-82f4-a8017e9ed075.mp4';\n\nasync function createMediaAsset() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/media/file/create-media-asset?filename=${filename}`,\n      {\n        method: 'POST',\n        headers: {\n          'Authorization': `Bearer ${accessToken}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n\n    if (!response.ok) {\n      const errorData = await response.json();\n      throw new Error(`Error ${response.status}: ${errorData.message}`);\n    }\n\n    const data = await response.json();\n    console.log('Media asset created successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Failed to create media asset:', error);\n    throw error;\n  }\n}\n\ncreateMediaAsset();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<p>When the media asset is successfully created, the API returns a 201 status code with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fileUuid\": \"string\",\n  \"fileName\": \"string\",\n  \"fileUrl\": \"string\",\n  \"mediaAssetId\": \"number\",\n  \"mediaAssetUuid\": \"string\"\n}\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the file</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>The name of the file including extension</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string</td>\n<td>Full URL where the media asset can be accessed</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>number</td>\n<td>Internal database ID for the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string</td>\n<td>UUID for the media asset (typically matches fileUuid)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-success-response\">Example Success Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"fileUuid\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e\",\n  \"fileName\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4\",\n  \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4\",\n  \"mediaAssetId\": 1552,\n  \"mediaAssetUuid\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e\"\n}\n</code></pre>\n<h3 id=\"error-response-400-bad-request\">Error Response (400 Bad Request)</h3>\n<p>When the specified file is not found or another error occurs, the API returns a 400 status code:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"code\": \"string\",\n  \"key\": \"string\",\n  \"message\": \"string\",\n  \"arguments\": [\"string\"]\n}\n</code></pre>\n<h4 id=\"error-response-fields\">Error Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>string</td>\n<td>Error code identifier (e.g., \"ERROR_11\")</td>\n</tr>\n<tr>\n<td><code>key</code></td>\n<td>string</td>\n<td>Localization key for the error message</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Human-readable error message</td>\n</tr>\n<tr>\n<td><code>arguments</code></td>\n<td>array</td>\n<td>Additional context about the error (e.g., the filename that wasn't found)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-error-response\">Example Error Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"code\": \"ERROR_11\",\n  \"key\": \"error.file-not-found\",\n  \"message\": \"File not found.\",\n  \"arguments\": [\n    \"961c51e1-14e0-4f4e-aad5-494fefa0dafe.mp4\"\n  ]\n}\n</code></pre>\n<h2 id=\"common-error-codes\">Common Error Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request - File not found or invalid filename</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The file must already exist on the server before calling this endpoint</li>\n<li>The filename parameter should match exactly with the uploaded file name</li>\n<li>Supported file formats include video files (.mp4, etc.) and images (.jpg, .png, etc.)</li>\n<li>The returned <code>fileUrl</code> can be used to access or embed the media asset in your application</li>\n</ul>\n","urlObject":{"path":["api","media","file","create-media-asset"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>example: uuid.mp4</p>\n","type":"text/plain"},"key":"filename","value":"cb821f8f-55e0-4b80-82f4-a8017e9ed075.mp4"}],"variable":[]}},"response":[{"id":"965f6992-1b08-4b5c-8b11-a4b8da56aba1","name":"Error Response","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/media/file/create-media-asset?filename=cb821f8f-55e0-4b80-82f4-a8017e9ed075.mp4","host":["testsandbox.highp.me"],"path":["api","media","file","create-media-asset"],"query":[{"description":"example: uuid.mp4","key":"filename","value":"cb821f8f-55e0-4b80-82f4-a8017e9ed075.mp4"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Wed, 02 Apr 2025 10:07:26 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"application-1"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"ERROR_11\",\n  \"key\": \"error.file-not-found\",\n  \"message\": \"File not found.\",\n  \"arguments\": [\n    \"961c51e1-14e0-4f4e-aad5-494fefa0dafe.mp4\"\n  ]\n}"},{"id":"f7e7e58a-36bb-4020-8edc-d0dec48f4748","name":"Response","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/media/file/create-media-asset?filename=cb821f8f-55e0-4b80-82f4-a8017e9ed075.mp4","host":["testsandbox.highp.me"],"path":["api","media","file","create-media-asset"],"query":[{"description":"example: uuid.mp4","key":"filename","value":"cb821f8f-55e0-4b80-82f4-a8017e9ed075.mp4"}]}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Wed, 02 Apr 2025 11:02:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Wed, 02 Apr 2025 11:02:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"application-1"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-65a7ea80211a9f1e13ac7ef797fd2012' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-65a7ea80211a9f1e13ac7ef797fd2012' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\n  \"fileUuid\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e\",\n  \"fileName\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4\",\n  \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4\",\n  \"mediaAssetId\": 1552,\n  \"mediaAssetUuid\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e\"\n}"}],"_postman_id":"ab9091ff-fc7b-4ed8-a7bb-f9ee8c598914"},{"name":"Update File For Mediaasset","id":"4c472a46-1b91-4ccb-a481-0d1cb724b367","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":"testsandbox.highp.me/api/media/file/update-file?mediaAssetUuid=cb821f8f-55e0-4b80-82f4-a8017e9ed075","description":"<h1 id=\"update-file-for-media-asset\">Update File For Media Asset</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint allows you to upload or update a file for an existing media asset. It is primarily used for uploading personal videos to the Highp platform.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/media/file/update-file</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the media asset to update</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong> <code>?mediaAssetUuid=cb821f8f-55e0-4b80-82f4-a8017e9ed075</code></p>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be sent as <code>multipart/form-data</code>:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>file</code></td>\n<td>file</td>\n<td>Yes</td>\n<td>The video file to upload (e.g., .mp4 format)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires a Bearer token to be included in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-201-created\">Success Response (201 Created)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"fileUuid\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e\",\n    \"fileName\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4\",\n    \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4\",\n    \"mediaAssetId\": 1552,\n    \"mediaAssetUuid\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fileUuid</code></td>\n<td>string</td>\n<td>Unique identifier for the uploaded file</td>\n</tr>\n<tr>\n<td><code>fileName</code></td>\n<td>string</td>\n<td>Name of the uploaded file</td>\n</tr>\n<tr>\n<td><code>fileUrl</code></td>\n<td>string</td>\n<td>Public URL where the file can be accessed</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Internal ID of the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetUuid</code></td>\n<td>string</td>\n<td>UUID of the media asset</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fs = require('fs');\nconst FormData = require('form-data');\n\nasync function updateMediaAssetFile(tenantDomain, token, mediaAssetUuid, filePath) {\n  try {\n    // Create form data\n    const formData = new FormData();\n    formData.append('file', fs.createReadStream(filePath));\n    \n    // Construct URL with query parameter\n    const url = `https://${tenantDomain}/api/media/file/update-file?mediaAssetUuid=${mediaAssetUuid}`;\n    \n    // Make the request\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        ...formData.getHeaders()\n      },\n      body: formData\n    });\n    \n    // Check if request was successful\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    // Parse and return the response\n    const data = await response.json();\n    console.log('File uploaded successfully:', data);\n    return data;\n    \n  } catch (error) {\n    console.error('Error uploading file:', error);\n    throw error;\n  }\n}\n\n// Usage example\nconst tenantDomain = 'testsandbox.gethighp.com';\nconst token = 'your-bearer-token-here';\nconst mediaAssetUuid = 'cb821f8f-55e0-4b80-82f4-a8017e9ed075';\nconst filePath = './path/to/your/video.mp4';\n\nupdateMediaAssetFile(tenantDomain, token, mediaAssetUuid, filePath)\n  .then(result =&gt; {\n    console.log('Upload result:', result);\n  })\n  .catch(error =&gt; {\n    console.error('Upload failed:', error);\n  });\n</code></pre>\n<h2 id=\"browser-fetch-example\">Browser Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">async function updateMediaAssetFile(tenantDomain, token, mediaAssetUuid, fileInput) {\n  try {\n    // Create form data from file input\n    const formData = new FormData();\n    formData.append('file', fileInput.files[0]);\n    \n    // Construct URL with query parameter\n    const url = `https://${tenantDomain}/api/media/file/update-file?mediaAssetUuid=${mediaAssetUuid}`;\n    \n    // Make the request\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`\n      },\n      body: formData\n    });\n    \n    // Check if request was successful\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    // Parse and return the response\n    const data = await response.json();\n    console.log('File uploaded successfully:', data);\n    return data;\n    \n  } catch (error) {\n    console.error('Error uploading file:', error);\n    throw error;\n  }\n}\n\n// Usage example with HTML file input\n// &lt;input type=\"file\" id=\"videoFile\" accept=\"video/*\"&gt;\nconst fileInput = document.getElementById('videoFile');\nconst tenantDomain = 'testsandbox.gethighp.com';\nconst token = 'your-bearer-token-here';\nconst mediaAssetUuid = 'cb821f8f-55e0-4b80-82f4-a8017e9ed075';\n\nupdateMediaAssetFile(tenantDomain, token, mediaAssetUuid, fileInput);\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The endpoint accepts video files, primarily in MP4 format</li>\n<li>The file is uploaded using multipart/form-data encoding</li>\n<li>A valid Bearer token is required for authentication</li>\n<li>The <code>mediaAssetUuid</code> must correspond to an existing media asset in your tenant</li>\n<li>Upon successful upload, the response includes the file URL where the uploaded video can be accessed</li>\n</ul>\n","urlObject":{"path":["api","media","file","update-file"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>exmaple: uuid</p>\n","type":"text/plain"},"key":"mediaAssetUuid","value":"cb821f8f-55e0-4b80-82f4-a8017e9ed075"}],"variable":[]}},"response":[{"id":"89b70212-ca01-49fd-8c81-061dc90791d4","name":"Response","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/media/file/update-file?mediaAssetUuid=cb821f8f-55e0-4b80-82f4-a8017e9ed075","host":["testsandbox.highp.me"],"path":["api","media","file","update-file"],"query":[{"description":"exmaple: uuid","key":"mediaAssetUuid","value":"cb821f8f-55e0-4b80-82f4-a8017e9ed075"}]}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Wed, 02 Apr 2025 11:02:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Wed, 02 Apr 2025 11:02:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"application-1"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-65a7ea80211a9f1e13ac7ef797fd2012' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-65a7ea80211a9f1e13ac7ef797fd2012' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\n  \"fileUuid\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e\",\n  \"fileName\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4\",\n  \"fileUrl\": \"https://testsandbox.gethighp.com/mediaassets/0023e512-9d7c-4474-af1c-3d4bf52d5f3e.mp4\",\n  \"mediaAssetId\": 1552,\n  \"mediaAssetUuid\": \"0023e512-9d7c-4474-af1c-3d4bf52d5f3e\"\n}"}],"_postman_id":"4c472a46-1b91-4ccb-a481-0d1cb724b367"}],"id":"2f50aa05-a85e-409d-a537-f9c91d058cc9","_postman_id":"2f50aa05-a85e-409d-a537-f9c91d058cc9","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Mediaasset","item":[{"name":"Share","item":[{"name":"Get All","id":"e24fcfea-d504-4c76-a171-f592250c2328","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/mediaassets/share/all?page=0&size=20&sortBy=uuid&sortDirection=desc","description":"<h2 id=\"get-all-media-asset-shares\">Get All Media Asset Shares</h2>\n<p>Retrieves a paginated list of all media asset share records. Each share record represents a shareable link generated for a media asset, along with metadata such as view count, creation date, and enabled status.</p>\n<p>Authentication is performed via a Bearer token using the <code>{{token}}</code> variable. The base URL is provided by the <code>{{tenant_domain}}</code> environment variable.</p>\n<hr />\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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mediaassetUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>—</td>\n<td>Filter results by a specific media asset UUID</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td><code>0</code></td>\n<td>Page number (zero-based) for pagination</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td><code>20</code></td>\n<td>Number of results to return per page</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>uuid</code></td>\n<td>Field name to sort results by</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td><code>desc</code></td>\n<td>Sort direction — <code>asc</code> for ascending or <code>desc</code> for descending</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"code-example-node-fetch\">Code Example (node-fetch)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-js\">const fetch = require('node-fetch');\n\nconst tenantDomain = process.env.TENANT_DOMAIN; // e.g. 'https://your-tenant.highp.me'\nconst token = process.env.TOKEN;\n\nconst params = new URLSearchParams({\n  page: '0',\n  size: '20',\n  sortBy: 'uuid',\n  sortDirection: 'desc',\n  // mediaassetUuid: 'cb397c5d-cb61-4a73-9dc1-f46add6d689f', // optional filter\n});\n\nconst response = await fetch(`${tenantDomain}/api/core/mediaassets/share/all?${params}`, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json',\n  },\n});\n\nconst data = await response.json();\nconsole.log(data);\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<p>A successful request returns an HTTP <code>200 OK</code> with a JSON array of share objects.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier of the share record</td>\n</tr>\n<tr>\n<td><code>link</code></td>\n<td>string</td>\n<td>Relative URL path to access the shared media asset (e.g. <code>/mediaasset/share/{uuid}</code>)</td>\n</tr>\n<tr>\n<td><code>mediaassetUuid</code></td>\n<td>string (UUID)</td>\n<td>UUID of the media asset this share record belongs to</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string (ISO 8601)</td>\n<td>Timestamp of when the share was created</td>\n</tr>\n<tr>\n<td><code>views</code></td>\n<td>integer</td>\n<td>Number of times the share link has been viewed</td>\n</tr>\n<tr>\n<td><code>enabled</code></td>\n<td>boolean</td>\n<td>Whether the share link is currently active and accessible</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"uuid\": \"66c2f8a6-9e68-4b11-be7a-2d4e223ace49\",\n    \"link\": \"/mediaasset/share/66c2f8a6-9e68-4b11-be7a-2d4e223ace49\",\n    \"mediaassetUuid\": \"cb397c5d-cb61-4a73-9dc1-f46add6d689f\",\n    \"createdDate\": \"2026-04-09T10:21:31.121575\",\n    \"views\": 2,\n    \"enabled\": true\n  },\n  {\n    \"uuid\": \"1b093921-9d9b-4428-9651-d6cfae275ccc\",\n    \"link\": \"/mediaasset/share/1b093921-9d9b-4428-9651-d6cfae275ccc\",\n    \"mediaassetUuid\": \"cb397c5d-cb61-4a73-9dc1-f46add6d689f\",\n    \"createdDate\": \"2026-04-09T09:44:14.59692\",\n    \"views\": 3,\n    \"enabled\": true\n  }\n]\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","core","mediaassets","share","all"],"host":["{{tenant_domain}}"],"query":[{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"mediaassetUuid","value":""},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"uuid"},{"key":"sortDirection","value":"desc"}],"variable":[]}},"response":[{"id":"20618ec5-be9e-4c59-94f3-e4ed2d2000df","name":"Get All","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{tenant_domain}}/api/core/mediaassets/share/all?page=0&size=20&sortBy=uuid&sortDirection=desc","protocol":"https","host":["{{tenant_domain}}"],"path":["api","core","mediaassets","share","all"],"query":[{"key":"mediaassetUuid","value":"","description":"optional","disabled":true},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"uuid"},{"key":"sortDirection","value":"desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Thu, 09 Apr 2026 11:43:36 GMT"},{"key":"content-type","value":"application/json"},{"key":"expires","value":"Thu, 09 Apr 2026 11:43:35 GMT"},{"key":"cache-control","value":"no-cache"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"pragma","value":"no-cache"},{"key":"x-frame-options","value":"DENY, DENY"},{"key":"vary","value":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-application-context","value":"coreserver"},{"key":"content-security-policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-e9c33946a7ffa484f30ca92df048db4d' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-e9c33946a7ffa484f30ca92df048db4d' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"uuid\": \"66c2f8a6-9e68-4b11-be7a-2d4e223ace49\",\n        \"link\": \"/mediaasset/share/66c2f8a6-9e68-4b11-be7a-2d4e223ace49\",\n        \"mediaassetUuid\": \"cb397c5d-cb61-4a73-9dc1-f46add6d689f\",\n        \"createdDate\": \"2026-04-09T10:21:31.121575\",\n        \"views\": 2,\n        \"enabled\": true\n    },\n    {\n        \"uuid\": \"1b093921-9d9b-4428-9651-d6cfae275ccc\",\n        \"link\": \"/mediaasset/share/1b093921-9d9b-4428-9651-d6cfae275ccc\",\n        \"mediaassetUuid\": \"cb397c5d-cb61-4a73-9dc1-f46add6d689f\",\n        \"createdDate\": \"2026-04-09T09:44:14.59692\",\n        \"views\": 3,\n        \"enabled\": true\n    }\n]"}],"_postman_id":"e24fcfea-d504-4c76-a171-f592250c2328"},{"name":"Get File by Share Link","id":"3f1dbbb9-06e9-4576-8f07-ddb12c1f8c38","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/mediaassets/share/:uuid","description":"<h2 id=\"get-file-by-share-link\">Get File by Share Link</h2>\n<p>Retrieves a file via its share link. If the share link exists and is enabled, the server returns a redirect to the media asset resource.</p>\n<p><strong>Endpoint:</strong> <code>GET testsandbox.highp.me/api/core/mediaassets/share/:uuid</code></p>\n<hr />\n<h3 id=\"path-variables\">Path Variables</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>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The share link UUID</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"nodejs-fetch-example\">Node.js Fetch Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-js\">const uuid = '1b093921-9d9b-4428-9651-d6cfae275ccc';\nconst baseUrl = 'https://your-api-base-url.com';\n\nconst response = await fetch(`${baseUrl}/api/core/mediaassets/share/${uuid}`, {\n  method: 'GET',\n  redirect: 'follow'\n});\n\nif (response.redirected) {\n  console.log('Redirected to:', response.url);\n}\n\nconst data = await response.text();\nconsole.log(data);\n</code></pre>\n<hr />\n<h3 id=\"response-model\">Response Model</h3>\n<h4 id=\"302-found--redirect-to-media-asset\"><code>302 Found</code> — Redirect to Media Asset</h4>\n<p>The server redirects the client to the actual media asset URL.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Location</code></td>\n<td>string</td>\n<td>Redirect URL pointing to the media asset</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example redirect header:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Location: /mediaassets/filename.ext\n</code></pre><hr />\n<h4 id=\"200-ok--media-asset-after-redirect-is-followed\"><code>200 OK</code> — Media Asset (after redirect is followed)</h4>\n<p>Returns the raw media asset file (binary/stream). The <code>Content-Type</code> header reflects the file type (e.g. <code>image/png</code>, <code>video/mp4</code>, <code>application/pdf</code>).</p>\n<hr />\n<h4 id=\"error-responses\">Error Responses</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>404</code></td>\n<td>Share link does not exist</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Share link is disabled or forbidden</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","core","mediaassets","share",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>share link uuid</p>\n","type":"text/plain"},"type":"any","value":"66c2f8a6-9e68-4b11-be7a-2d4e223ace49","key":"uuid"}]}},"response":[],"_postman_id":"3f1dbbb9-06e9-4576-8f07-ddb12c1f8c38"},{"name":"Create Share Link","id":"3aae1c49-61db-45ff-b602-bc490ce1b75d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"mediaassetUuid\" : \"cb397c5d-cb61-4a73-9dc1-f46add6d689f\"\n}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/api/core/mediaassets/share/","description":"<p>Creates a shareable link for a media asset. Given a <code>mediaassetUuid</code>, the endpoint generates a unique share link and returns the link path along with its UUID.</p>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> <code>POST</code></p>\n<p><strong>URL:</strong> <code>testsandbox.highp.me/api/core/mediaassets/share/</code></p>\n<p><strong>Headers:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td><code>Bearer {{token}}</code></td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Body (JSON):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"mediaassetUuid\": \"cb397c5d-cb61-4a73-9dc1-f46add6d689f\"\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>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mediaassetUuid</code></td>\n<td>string</td>\n<td>The UUID of the media asset for which to create a share link.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-js\">const url = `${process.env.BASE_URL}/api/core/mediaassets/share/`;\n\nconst response = await fetch(url, {\n  method: 'POST',\n  headers: {\n    'Authorization': `Bearer ${process.env.TOKEN}`,\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\n    mediaassetUuid: 'cb397c5d-cb61-4a73-9dc1-f46add6d689f'\n  })\n});\n\nconst data = await response.json();\nconsole.log(data);\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"link\": \"/mediaasset/share/1b093921-9d9b-4428-9651-d6cfae275ccc\",\n  \"uuid\": \"1b093921-9d9b-4428-9651-d6cfae275ccc\"\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>Type</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>The shareable URL path for the media asset. Can be appended to the base URL to construct the full share link.</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The UUID of the newly created share link, which also appears in the <code>link</code> path.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","core","mediaassets","share",""],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"56be25fb-46b5-4834-b2df-99a49e1ebee8","name":"Create Share Link","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"mediaassetUuid\" : \"cb397c5d-cb61-4a73-9dc1-f46add6d689f\"\n}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/api/core/mediaassets/share/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Thu, 09 Apr 2026 09:44:14 GMT"},{"key":"content-type","value":"application/json"},{"key":"expires","value":"Thu, 09 Apr 2026 09:44:13 GMT"},{"key":"cache-control","value":"no-cache"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"pragma","value":"no-cache"},{"key":"x-frame-options","value":"DENY, DENY"},{"key":"vary","value":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-application-context","value":"coreserver"},{"key":"content-security-policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-d4cf035392ce9ff26926d633e0c77f58' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-d4cf035392ce9ff26926d633e0c77f58' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\n    \"link\": \"/mediaasset/share/1b093921-9d9b-4428-9651-d6cfae275ccc\",\n    \"uuid\": \"1b093921-9d9b-4428-9651-d6cfae275ccc\"\n}"}],"_postman_id":"3aae1c49-61db-45ff-b602-bc490ce1b75d"},{"name":"Enable / Disable","id":"1eec38b4-a254-4f72-87cb-258b35dce53f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/mediaassets/share/:uuid/enabled?enabled=false","description":"<h2 id=\"enable--disable-share-link\">Enable / Disable Share Link</h2>\n<p>Enables or disables a media asset share link identified by its UUID. This endpoint toggles the <code>enabled</code> state of a share link — when disabled, the share link becomes inaccessible to recipients; when enabled, it becomes active again.</p>\n<hr />\n<h3 id=\"path-parameters\">Path 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>uuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the media asset share link. Example: <code>66c2f8a6-9e68-4b11-be7a-2d4e223ace49</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>enabled</code></td>\n<td>boolean</td>\n<td>Yes</td>\n<td>Set to <code>true</code> to enable the share link, or <code>false</code> to disable it.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\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>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n<td>Specifies the request body format.</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n<td>Bearer token for authenticating the request.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"code-examples\">Code Examples</h3>\n<p><strong>Enable a share link (<code>enabled=true</code>)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-js\">const fetch = require('node-fetch');\n\nconst uuid = '66c2f8a6-9e68-4b11-be7a-2d4e223ace49';\nconst enabled = true;\n\nconst response = await fetch(`testsandbox.highp.me/api/core/mediaassets/share/${uuid}/enabled?enabled=${enabled}`, {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n    'Authorization': 'Bearer YOUR_TOKEN'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);\n</code></pre>\n<p><strong>Disable a share link (<code>enabled=false</code>)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-js\">const fetch = require('node-fetch');\n\nconst uuid = '66c2f8a6-9e68-4b11-be7a-2d4e223ace49';\nconst enabled = false;\n\nconst response = await fetch(`testsandbox.highp.me/api/core/mediaassets/share/${uuid}/enabled?enabled=${enabled}`, {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n    'Authorization': 'Bearer YOUR_TOKEN'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);\n</code></pre>\n<hr />\n<h3 id=\"response-model\">Response Model</h3>\n<p>A successful request returns the updated share link object reflecting the new <code>enabled</code> state.</p>\n<p><strong><code>200 OK</code> — Enable=true</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"66c2f8a6-9e68-4b11-be7a-2d4e223ace49\",\n  \"enabled\": true,\n  \"updatedAt\": \"2024-01-15T10:30:00.000Z\"\n}\n</code></pre>\n<p><strong><code>200 OK</code> — Enable=false</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"66c2f8a6-9e68-4b11-be7a-2d4e223ace49\",\n  \"enabled\": false,\n  \"updatedAt\": \"2024-01-15T10:35:00.000Z\"\n}\n</code></pre>\n<blockquote>\n<p><strong>Note:</strong> The response reflects the current state of the share link after the update. The <code>enabled</code> field confirms the new boolean value that was applied.</p>\n</blockquote>\n","urlObject":{"path":["api","core","mediaassets","share",":uuid","enabled"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>true/false</p>\n","type":"text/plain"},"key":"enabled","value":"false"}],"variable":[{"description":{"content":"<p>share link uuid</p>\n","type":"text/plain"},"type":"any","value":"7b06f9f1-4387-496e-892d-aa146426226e","key":"uuid"}]}},"response":[{"id":"ad3a2429-c7e8-40e9-8ea2-0da88093410d","name":"Enable=false","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/share/:uuid/enabled?enabled=false","host":["testsandbox.highp.me"],"path":["api","core","mediaassets","share",":uuid","enabled"],"query":[{"key":"enabled","value":"false","description":"true/false"}],"variable":[{"key":"uuid","value":"66c2f8a6-9e68-4b11-be7a-2d4e223ace49"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Thu, 09 Apr 2026 10:25:05 GMT"},{"key":"content-length","value":"0"},{"key":"expires","value":"Thu, 09 Apr 2026 10:25:04 GMT"},{"key":"cache-control","value":"no-cache"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"pragma","value":"no-cache"},{"key":"x-frame-options","value":"DENY, DENY"},{"key":"vary","value":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-application-context","value":"coreserver"},{"key":"content-security-policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-0e57184fa75f115e395f1f71454d1efa' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-0e57184fa75f115e395f1f71454d1efa' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null},{"id":"10bfaee8-c17e-41de-b510-8c24adddbe56","name":"Enable=true","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/share/:uuid/enabled?enabled=true","host":["testsandbox.highp.me"],"path":["api","core","mediaassets","share",":uuid","enabled"],"query":[{"key":"enabled","value":"true","description":"true/false"}],"variable":[{"key":"uuid","value":"66c2f8a6-9e68-4b11-be7a-2d4e223ace49"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Thu, 09 Apr 2026 10:25:48 GMT"},{"key":"content-length","value":"0"},{"key":"expires","value":"Thu, 09 Apr 2026 10:25:47 GMT"},{"key":"cache-control","value":"no-cache"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"pragma","value":"no-cache"},{"key":"x-frame-options","value":"DENY, DENY"},{"key":"vary","value":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-application-context","value":"coreserver"},{"key":"content-security-policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-eb3c1c1269986f3a75bed4e1e916b270' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-eb3c1c1269986f3a75bed4e1e916b270' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"1eec38b4-a254-4f72-87cb-258b35dce53f"},{"name":"Delete By Uuid","id":"6d1cd4fb-fdae-4974-b425-5242393c79cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/mediaassets/share/:uuid","description":"<p>Deletes a media asset share entry identified by its UUID.</p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The UUID of the share entry to delete</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>Requires a Bearer token passed via the <code>Authorization</code> header using the <code>{{token}}</code> variable.</p>\n<h2 id=\"nodejs-example-node-fetch\">Node.js Example (node-fetch)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-js\">import fetch from 'node-fetch';\n\nconst uuid = '66c2f8a6-9e68-4b11-be7a-2d4e223ace49';\nconst baseUrl = 'https://your-api-base-url';\n\nconst response = await fetch(`${baseUrl}/api/core/mediaassets/share/${uuid}`, {\n  method: 'DELETE',\n  headers: {\n    'Authorization': `Bearer ${process.env.TOKEN}`\n  }\n});\n\nif (response.ok) {\n  console.log('Share deleted successfully');\n} else {\n  const error = await response.json();\n  console.error('Error:', error);\n}\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success--200-ok\">Success — <code>200 OK</code></h3>\n<p>Returns an empty body on successful deletion.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP/1.1 200 OK\nContent-Length: 0\n</code></pre><h3 id=\"error--404-not-found\">Error — <code>404 Not Found</code></h3>\n<p>Returned when no share entry with the given UUID exists.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": 404,\n  \"message\": \"Share not found\"\n}\n</code></pre>\n<h3 id=\"error--401-unauthorized\">Error — <code>401 Unauthorized</code></h3>\n<p>Returned when the Bearer token is missing or invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": 401,\n  \"message\": \"Unauthorized\"\n}\n</code></pre>\n","urlObject":{"path":["api","core","mediaassets","share",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"description":{"content":"<p>share link uuid</p>\n","type":"text/plain"},"type":"any","value":"66c2f8a6-9e68-4b11-be7a-2d4e223ace49","key":"uuid"}]}},"response":[{"id":"f50b0a8d-38ed-424c-b775-98433c6adfd5","name":"Delete By Uuid","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/share/:uuid","host":["testsandbox.highp.me"],"path":["api","core","mediaassets","share",":uuid"],"variable":[{"key":"uuid","value":"7b06f9f1-4387-496e-892d-aa146426226e"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Thu, 09 Apr 2026 12:09:24 GMT"},{"key":"content-length","value":"0"},{"key":"expires","value":"Thu, 09 Apr 2026 12:09:23 GMT"},{"key":"cache-control","value":"no-cache"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"pragma","value":"no-cache"},{"key":"x-frame-options","value":"DENY, DENY"},{"key":"vary","value":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-application-context","value":"coreserver"},{"key":"content-security-policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-32d4966234c67d324b3a8350b6e09027' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-32d4966234c67d324b3a8350b6e09027' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"6d1cd4fb-fdae-4974-b425-5242393c79cd"}],"id":"57313b68-4d30-4c99-a64d-b05655eb2ac5","_postman_id":"57313b68-4d30-4c99-a64d-b05655eb2ac5","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Create","id":"9049e9bf-8157-4f07-ad6a-ef378be9f148","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Name test123\",\n  \"filename\": \"nametest00909\",\n  \"ext\": \"mp4\",\n  \"type\": \"video\",\n  \"project\": \"Postman\",\n  \"ratio\": \"1\",\n  \"fileWidth\": 1000,\n  \"fileHeight\": 1000,\n  //example optional metadata\n  \"metadata\": \"{\\\"author\\\":\\\"Jan Kowalski\\\",\\\"createdAt\\\":\\\"2025-10-02T12:34:56Z\\\",\\\"tags\\\":[\\\"banner\\\",\\\"homepage\\\",\\\"marketing\\\"],\\\"description\\\":\\\"Grafika nagłówka dla projektu Highp\\\",\\\"colorPalette\\\":[\\\"#1a1a1a\\\",\\\"#ffffff\\\",\\\"#ff6600\\\"],\\\"version\\\":2}\",\n  \"labelUuids\" : [\n    \"uuid1\",\n    \"uuid2\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/mediaassets","description":"<h1 id=\"create-media-asset\">Create Media Asset</h1>\n<p>Creates a new media asset in the Highp platform. This endpoint allows you to register media files (images, videos, etc.) with associated metadata for use in campaigns and other content.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/mediaassets</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>{{token}}</code> - Your API access token</li>\n<li><code>{{tenant_domain}}</code> - Your tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"request-headers\">Request Headers</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/json\nAuthorization: Bearer {{token}}\n</code></pre><h2 id=\"request-body-parameters\">Request Body Parameters</h2>\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>Display name for the media asset</td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Filename for the media asset (without extension)</td>\n</tr>\n<tr>\n<td><code>ext</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>File extension (e.g., <code>mp4</code>, <code>jpg</code>, <code>png</code>)</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Media type (e.g., <code>video</code>, <code>image</code>)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Project name or identifier this asset belongs to</td>\n</tr>\n<tr>\n<td><code>ratio</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Aspect ratio of the media (e.g., <code>1</code> for 1:1, <code>16:9</code>)</td>\n</tr>\n<tr>\n<td><code>fileWidth</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>Width of the media file in pixels</td>\n</tr>\n<tr>\n<td><code>fileHeight</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>Height of the media file in pixels</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>string</td>\n<td>No</td>\n<td>Optional JSON string containing additional metadata (author, tags, description, etc.)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"metadata-structure-optional\">Metadata Structure (Optional)</h3>\n<p>The <code>metadata</code> field accepts a JSON string with the following optional properties:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"author\": \"string\",\n  \"createdAt\": \"ISO 8601 date string\",\n  \"tags\": [\"array\", \"of\", \"strings\"],\n  \"description\": \"string\",\n  \"colorPalette\": [\"#hex\", \"#colors\"],\n  \"version\": number\n}\n</code></pre>\n<h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst createMediaAsset = async () =&gt; {\n  const url = 'https://testsandbox.highp.me/api/core/mediaassets';\n  \n  const payload = {\n    name: \"Name test123\",\n    filename: \"nametest00909\",\n    ext: \"mp4\",\n    type: \"video\",\n    project: \"Postman\",\n    ratio: \"1\",\n    fileWidth: 1000,\n    fileHeight: 1000,\n    metadata: JSON.stringify({\n      author: \"Jan Kowalski\",\n      createdAt: \"2025-10-02T12:34:56Z\",\n      tags: [\"banner\", \"homepage\", \"marketing\"],\n      description: \"Grafika nagłówka dla projektu Highp\",\n      colorPalette: [\"#1a1a1a\", \"#ffffff\", \"#ff6600\"],\n      version: 2\n    })\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': 'Bearer YOUR_ACCESS_TOKEN'\n      },\n      body: JSON.stringify(payload)\n    });\n\n    const data = await response.json();\n    console.log('Media asset created:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating media asset:', error);\n    throw error;\n  }\n};\n\ncreateMediaAsset();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n  \"filename\": \"nametest00909\",\n  \"mediaAssetId\": 1944,\n  \"lastUpdated\": \"1763984956\",\n  \"name\": \"Name test123\",\n  \"type\": \"video\",\n  \"project\": \"Postman\",\n  \"createdBy\": null,\n  \"personal\": false,\n  \"mediaAssetUrl\": \"nametest00909\",\n  \"thumbnailUrl\": null,\n  \"gifUrl\": null,\n  \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n  \"labels\": []\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the media asset</td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Filename of the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Numeric ID of the media asset</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string</td>\n<td>Unix timestamp of last update</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Display name of the media asset</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Media type (video, image, etc.)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>Project the asset belongs to</td>\n</tr>\n<tr>\n<td><code>createdBy</code></td>\n<td>string/null</td>\n<td>User who created the asset</td>\n</tr>\n<tr>\n<td><code>personal</code></td>\n<td>boolean</td>\n<td>Whether the asset is personal or shared</td>\n</tr>\n<tr>\n<td><code>mediaAssetUrl</code></td>\n<td>string</td>\n<td>URL or path to access the media</td>\n</tr>\n<tr>\n<td><code>thumbnailUrl</code></td>\n<td>string/null</td>\n<td>URL to thumbnail image</td>\n</tr>\n<tr>\n<td><code>gifUrl</code></td>\n<td>string/null</td>\n<td>URL to animated GIF preview</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>string</td>\n<td>JSON string containing additional metadata</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Array of labels/tags associated with the asset</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>metadata</code> field in the request should be a JSON string (stringified JSON object)</li>\n<li>The <code>metadata</code> field in the response is also returned as a JSON string</li>\n<li>Ensure your media dimensions (<code>fileWidth</code> and <code>fileHeight</code>) match the actual file dimensions</li>\n<li>The <code>ratio</code> field should represent the aspect ratio of your media</li>\n</ul>\n","urlObject":{"path":["api","core","mediaassets"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"eef07223-3147-4cff-b0d1-92572f6d1ad3","name":"Create","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Name test123\",\n  \"filename\": \"nametest00909\",\n  \"ext\": \"mp4\",\n  \"type\": \"video\",\n  \"project\": \"Postman\",\n  \"ratio\": \"1\",\n  \"fileWidth\": 1000,\n  \"fileHeight\": 1000,\n  //example optional metadata\n  \"metadata\": \"{\\\"author\\\":\\\"Jan Kowalski\\\",\\\"createdAt\\\":\\\"2025-10-02T12:34:56Z\\\",\\\"tags\\\":[\\\"banner\\\",\\\"homepage\\\",\\\"marketing\\\"],\\\"description\\\":\\\"Grafika nagłówka dla projektu Highp\\\",\\\"colorPalette\\\":[\\\"#1a1a1a\\\",\\\"#ffffff\\\",\\\"#ff6600\\\"],\\\"version\\\":2}\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/mediaassets"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:49:16 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:49:15 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-0afc7e39a42e8e799dc17deb5e16626d' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-0afc7e39a42e8e799dc17deb5e16626d' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n    \"filename\": \"nametest00909\",\n    \"mediaAssetId\": 1944,\n    \"lastUpdated\": \"1763984956\",\n    \"name\": \"Name test123\",\n    \"type\": \"video\",\n    \"project\": \"Postman\",\n    \"createdBy\": null,\n    \"personal\": false,\n    \"mediaAssetUrl\": \"nametest00909\",\n    \"thumbnailUrl\": null,\n    \"gifUrl\": null,\n    \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n    \"labels\": []\n}"}],"_postman_id":"9049e9bf-8157-4f07-ad6a-ef378be9f148"},{"name":"Enable / Disable","id":"57d35c55-3bca-4e91-bb45-eea24cf4c239","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/mediaassets/:uuid/enabled?enabled=true","description":"<h1 id=\"create-media-asset\">Create Media Asset</h1>\n<p>Creates a new media asset in the Highp platform. This endpoint allows you to register media files (images, videos, etc.) with associated metadata for use in campaigns and other content.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/mediaassets</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>{{token}}</code> - Your API access token</li>\n<li><code>{{tenant_domain}}</code> - Your tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"request-headers\">Request Headers</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/json\nAuthorization: Bearer {{token}}\n</code></pre><h2 id=\"request-body-parameters\">Request Body Parameters</h2>\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>Display name for the media asset</td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Filename for the media asset (without extension)</td>\n</tr>\n<tr>\n<td><code>ext</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>File extension (e.g., <code>mp4</code>, <code>jpg</code>, <code>png</code>)</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Media type (e.g., <code>video</code>, <code>image</code>)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Project name or identifier this asset belongs to</td>\n</tr>\n<tr>\n<td><code>ratio</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Aspect ratio of the media (e.g., <code>1</code> for 1:1, <code>16:9</code>)</td>\n</tr>\n<tr>\n<td><code>fileWidth</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>Width of the media file in pixels</td>\n</tr>\n<tr>\n<td><code>fileHeight</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>Height of the media file in pixels</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>string</td>\n<td>No</td>\n<td>Optional JSON string containing additional metadata (author, tags, description, etc.)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"metadata-structure-optional\">Metadata Structure (Optional)</h3>\n<p>The <code>metadata</code> field accepts a JSON string with the following optional properties:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"author\": \"string\",\n  \"createdAt\": \"ISO 8601 date string\",\n  \"tags\": [\"array\", \"of\", \"strings\"],\n  \"description\": \"string\",\n  \"colorPalette\": [\"#hex\", \"#colors\"],\n  \"version\": number\n}\n</code></pre>\n<h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst createMediaAsset = async () =&gt; {\n  const url = 'https://testsandbox.highp.me/api/core/mediaassets';\n  \n  const payload = {\n    name: \"Name test123\",\n    filename: \"nametest00909\",\n    ext: \"mp4\",\n    type: \"video\",\n    project: \"Postman\",\n    ratio: \"1\",\n    fileWidth: 1000,\n    fileHeight: 1000,\n    metadata: JSON.stringify({\n      author: \"Jan Kowalski\",\n      createdAt: \"2025-10-02T12:34:56Z\",\n      tags: [\"banner\", \"homepage\", \"marketing\"],\n      description: \"Grafika nagłówka dla projektu Highp\",\n      colorPalette: [\"#1a1a1a\", \"#ffffff\", \"#ff6600\"],\n      version: 2\n    })\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': 'Bearer YOUR_ACCESS_TOKEN'\n      },\n      body: JSON.stringify(payload)\n    });\n\n    const data = await response.json();\n    console.log('Media asset created:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating media asset:', error);\n    throw error;\n  }\n};\n\ncreateMediaAsset();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n  \"filename\": \"nametest00909\",\n  \"mediaAssetId\": 1944,\n  \"lastUpdated\": \"1763984956\",\n  \"name\": \"Name test123\",\n  \"type\": \"video\",\n  \"project\": \"Postman\",\n  \"createdBy\": null,\n  \"personal\": false,\n  \"mediaAssetUrl\": \"nametest00909\",\n  \"thumbnailUrl\": null,\n  \"gifUrl\": null,\n  \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n  \"labels\": []\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the media asset</td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Filename of the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Numeric ID of the media asset</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string</td>\n<td>Unix timestamp of last update</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Display name of the media asset</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Media type (video, image, etc.)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>Project the asset belongs to</td>\n</tr>\n<tr>\n<td><code>createdBy</code></td>\n<td>string/null</td>\n<td>User who created the asset</td>\n</tr>\n<tr>\n<td><code>personal</code></td>\n<td>boolean</td>\n<td>Whether the asset is personal or shared</td>\n</tr>\n<tr>\n<td><code>mediaAssetUrl</code></td>\n<td>string</td>\n<td>URL or path to access the media</td>\n</tr>\n<tr>\n<td><code>thumbnailUrl</code></td>\n<td>string/null</td>\n<td>URL to thumbnail image</td>\n</tr>\n<tr>\n<td><code>gifUrl</code></td>\n<td>string/null</td>\n<td>URL to animated GIF preview</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>string</td>\n<td>JSON string containing additional metadata</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Array of labels/tags associated with the asset</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>metadata</code> field in the request should be a JSON string (stringified JSON object)</li>\n<li>The <code>metadata</code> field in the response is also returned as a JSON string</li>\n<li>Ensure your media dimensions (<code>fileWidth</code> and <code>fileHeight</code>) match the actual file dimensions</li>\n<li>The <code>ratio</code> field should represent the aspect ratio of your media</li>\n</ul>\n","urlObject":{"path":["api","core","mediaassets",":uuid","enabled"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>true/false</p>\n","type":"text/plain"},"key":"enabled","value":"true"}],"variable":[{"type":"any","value":"","key":"uuid"}]}},"response":[{"id":"5be6c60a-caa5-4451-8896-73094a00a3b6","name":"Create","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Name test123\",\n  \"filename\": \"nametest00909\",\n  \"ext\": \"mp4\",\n  \"type\": \"video\",\n  \"project\": \"Postman\",\n  \"ratio\": \"1\",\n  \"fileWidth\": 1000,\n  \"fileHeight\": 1000,\n  //example optional metadata\n  \"metadata\": \"{\\\"author\\\":\\\"Jan Kowalski\\\",\\\"createdAt\\\":\\\"2025-10-02T12:34:56Z\\\",\\\"tags\\\":[\\\"banner\\\",\\\"homepage\\\",\\\"marketing\\\"],\\\"description\\\":\\\"Grafika nagłówka dla projektu Highp\\\",\\\"colorPalette\\\":[\\\"#1a1a1a\\\",\\\"#ffffff\\\",\\\"#ff6600\\\"],\\\"version\\\":2}\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/mediaassets"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:49:16 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:49:15 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-0afc7e39a42e8e799dc17deb5e16626d' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-0afc7e39a42e8e799dc17deb5e16626d' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n    \"filename\": \"nametest00909\",\n    \"mediaAssetId\": 1944,\n    \"lastUpdated\": \"1763984956\",\n    \"name\": \"Name test123\",\n    \"type\": \"video\",\n    \"project\": \"Postman\",\n    \"createdBy\": null,\n    \"personal\": false,\n    \"mediaAssetUrl\": \"nametest00909\",\n    \"thumbnailUrl\": null,\n    \"gifUrl\": null,\n    \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n    \"labels\": []\n}"}],"_postman_id":"57d35c55-3bca-4e91-bb45-eea24cf4c239"},{"name":"Update Name","id":"170490ec-94e0-4f4b-995a-503fffee04e5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[],"url":"testsandbox.highp.me/api/core/mediaassets/:uuid/update-name?name=test","description":"<h1 id=\"update-media-asset-name\">Update Media Asset Name</h1>\n<p>Updates the name of an existing media asset in the Highp platform. This endpoint allows you to rename a media asset by providing its UUID and the new name as a query parameter.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>PUT</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/mediaassets/{{uuid}}/update-name</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"path-variables\">Path Variables</h2>\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>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the media asset to update</td>\n</tr>\n</tbody>\n</table>\n</div><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>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>The new name for the media asset</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-example\">Request Example</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me';\nconst mediaAssetUuid = 'ef7b9891-f007-4d38-b978-0633d2149f94';\nconst newName = 'test';\nconst token = 'your_access_token';\n\nconst url = `https://${tenantDomain}/api/core/mediaassets/${mediaAssetUuid}/update-name?name=${encodeURIComponent(newName)}`;\n\nfetch(url, {\n  method: 'PUT',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Media asset updated:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error updating media asset:', error);\n  });\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns the updated media asset object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n  \"filename\": \"nametest00909\",\n  \"mediaAssetId\": 1944,\n  \"lastUpdated\": \"1763984956\",\n  \"name\": \"test\",\n  \"type\": \"video\",\n  \"project\": \"Postman\",\n  \"createdBy\": null,\n  \"personal\": false,\n  \"mediaAssetUrl\": \"nametest00909\",\n  \"thumbnailUrl\": null,\n  \"gifUrl\": null,\n  \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n  \"labels\": []\n}\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier of the media asset</td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Original filename of the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Internal database ID of the media asset</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string</td>\n<td>Unix timestamp of the last update</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Display name of the media asset (updated value)</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Type of media asset (e.g., \"video\", \"image\", \"audio\")</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>Project name associated with the media asset</td>\n</tr>\n<tr>\n<td><code>createdBy</code></td>\n<td>string/null</td>\n<td>User who created the media asset</td>\n</tr>\n<tr>\n<td><code>personal</code></td>\n<td>boolean</td>\n<td>Whether the asset is personal or shared</td>\n</tr>\n<tr>\n<td><code>mediaAssetUrl</code></td>\n<td>string</td>\n<td>URL or path to access the media asset</td>\n</tr>\n<tr>\n<td><code>thumbnailUrl</code></td>\n<td>string/null</td>\n<td>URL to the thumbnail image</td>\n</tr>\n<tr>\n<td><code>gifUrl</code></td>\n<td>string/null</td>\n<td>URL to an animated GIF preview</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>string</td>\n<td>JSON string containing additional metadata (tags, author, version, etc.)</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Array of labels associated with the media asset</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-headers\">Response Headers</h3>\n<ul>\n<li><code>Content-Type</code>: <code>application/json</code></li>\n<li><code>Cache-Control</code>: <code>no-cache</code></li>\n<li><code>X-Content-Type-Options</code>: <code>nosniff</code></li>\n<li><code>X-Frame-Options</code>: <code>DENY</code></li>\n</ul>\n<h2 id=\"error-responses\">Error Responses</h2>\n<ul>\n<li><strong>401 Unauthorized</strong>: Invalid or missing authentication token</li>\n<li><strong>403 Forbidden</strong>: Insufficient permissions to update the media asset</li>\n<li><strong>404 Not Found</strong>: Media asset with the specified UUID does not exist</li>\n<li><strong>400 Bad Request</strong>: Missing or invalid query parameters</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>name</code> parameter is required in the query string</li>\n<li>The media asset UUID must be valid and exist in your tenant</li>\n<li>The endpoint updates only the display name; the filename remains unchanged</li>\n<li>The <code>lastUpdated</code> timestamp is automatically updated upon successful name change</li>\n</ul>\n","urlObject":{"path":["api","core","mediaassets",":uuid","update-name"],"host":["testsandbox.highp.me"],"query":[{"key":"name","value":"test"}],"variable":[{"type":"any","value":"{{uuid}}","key":"uuid"}]}},"response":[{"id":"083f07e4-51c6-4af4-9c35-0af8eeb30b45","name":"Update Name","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/:uuid/update-name?name=test","host":["testsandbox.highp.me"],"path":["api","core","mediaassets",":uuid","update-name"],"query":[{"key":"name","value":"test"}],"variable":[{"key":"uuid","value":"{{uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:50:11 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:50:10 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-40da5547a09a6c48db90b78dc555b971' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-40da5547a09a6c48db90b78dc555b971' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n    \"filename\": \"nametest00909\",\n    \"mediaAssetId\": 1944,\n    \"lastUpdated\": \"1763984956\",\n    \"name\": \"test\",\n    \"type\": \"video\",\n    \"project\": \"Postman\",\n    \"createdBy\": null,\n    \"personal\": false,\n    \"mediaAssetUrl\": \"nametest00909\",\n    \"thumbnailUrl\": null,\n    \"gifUrl\": null,\n    \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n    \"labels\": []\n}"}],"_postman_id":"170490ec-94e0-4f4b-995a-503fffee04e5"},{"name":"Update Metadata","id":"848acf23-f1ea-4c9d-9c50-0524c078cc43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"author\": \"Jan Kowalski\",\n  \"createdAt\": \"2025-10-02T12:34:56Z\",\n  \"tags\": [\n    \"banner\",\n    \"homepage\",\n    \"marketing\"\n  ],\n  \"description\": \"Grafika nagłówka dla projektu Highp\",\n  \"colorPalette\": [\n    \"#1a1a1a\",\n    \"#ffffff\",\n    \"#ff6600\"\n  ],\n  \"version\": 2\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/mediaassets/:uuid/update-metadata","description":"<h1 id=\"update-media-asset-metadata\">Update Media Asset Metadata</h1>\n<p>Updates the metadata for a specific media asset in the Highp platform. This endpoint allows you to modify custom metadata fields such as author information, tags, descriptions, color palettes, and version tracking for media assets.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>PUT</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/mediaassets/{{uuid}}/update-metadata</code></p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the media asset to update</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-body\">Request Body</h2>\n<p>The request body should be in JSON format with the following schema:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>author</code></td>\n<td>string</td>\n<td>No</td>\n<td>The name of the author or creator of the media asset</td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>string (ISO 8601)</td>\n<td>No</td>\n<td>The creation timestamp in ISO 8601 format (e.g., \"2025-10-02T12:34:56Z\")</td>\n</tr>\n<tr>\n<td><code>tags</code></td>\n<td>array of strings</td>\n<td>No</td>\n<td>An array of tags for categorizing and organizing the media asset</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>No</td>\n<td>A detailed description of the media asset</td>\n</tr>\n<tr>\n<td><code>colorPalette</code></td>\n<td>array of strings</td>\n<td>No</td>\n<td>An array of hex color codes representing the color palette of the media asset</td>\n</tr>\n<tr>\n<td><code>version</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Version number for tracking changes to the media asset</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"author\": \"Jan Kowalski\",\n  \"createdAt\": \"2025-10-02T12:34:56Z\",\n  \"tags\": [\"banner\", \"homepage\", \"marketing\"],\n  \"description\": \"Grafika nagłówka dla projektu Highp\",\n  \"colorPalette\": [\"#1a1a1a\", \"#ffffff\", \"#ff6600\"],\n  \"version\": 2\n}\n</code></pre>\n<h2 id=\"nodejs-example\">Node.js Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst updateMediaAssetMetadata = async (tenantDomain, uuid, token, metadata) =&gt; {\n  const url = `https://${tenantDomain}/api/core/mediaassets/${uuid}/update-metadata`;\n  \n  const response = await fetch(url, {\n    method: 'PUT',\n    headers: {\n      'Authorization': `Bearer ${token}`,\n      'Content-Type': 'application/json'\n    },\n    body: JSON.stringify(metadata)\n  });\n  \n  if (!response.ok) {\n    throw new Error(`HTTP error! status: ${response.status}`);\n  }\n  \n  return await response.json();\n};\n\n// Usage example\nconst metadata = {\n  author: \"Jan Kowalski\",\n  createdAt: \"2025-10-02T12:34:56Z\",\n  tags: [\"banner\", \"homepage\", \"marketing\"],\n  description: \"Grafika nagłówka dla projektu Highp\",\n  colorPalette: [\"#1a1a1a\", \"#ffffff\", \"#ff6600\"],\n  version: 2\n};\n\nupdateMediaAssetMetadata('your-tenant.highp.me', 'your-uuid', 'your-token', metadata)\n  .then(data =&gt; console.log('Success:', data))\n  .catch(error =&gt; console.error('Error:', error));\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns the updated media asset object with the new metadata embedded as a JSON string in the <code>metadata</code> field.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the media asset</td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>The filename of the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>The internal ID of the media asset</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string</td>\n<td>Unix timestamp of the last update</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the media asset</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>The type of media asset (e.g., \"video\", \"image\")</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>The project name associated with the media asset</td>\n</tr>\n<tr>\n<td><code>createdBy</code></td>\n<td>string/null</td>\n<td>The creator of the media asset</td>\n</tr>\n<tr>\n<td><code>personal</code></td>\n<td>boolean</td>\n<td>Whether the media asset is personal or shared</td>\n</tr>\n<tr>\n<td><code>mediaAssetUrl</code></td>\n<td>string</td>\n<td>The URL or path to the media asset</td>\n</tr>\n<tr>\n<td><code>thumbnailUrl</code></td>\n<td>string/null</td>\n<td>The URL to the thumbnail image</td>\n</tr>\n<tr>\n<td><code>gifUrl</code></td>\n<td>string/null</td>\n<td>The URL to the GIF preview</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>string</td>\n<td>A JSON string containing the custom metadata fields</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>An array of labels associated with the media asset</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n  \"filename\": \"nametest00909\",\n  \"mediaAssetId\": 1944,\n  \"lastUpdated\": \"1763984956\",\n  \"name\": \"test\",\n  \"type\": \"video\",\n  \"project\": \"Postman\",\n  \"createdBy\": null,\n  \"personal\": false,\n  \"mediaAssetUrl\": \"nametest00909\",\n  \"thumbnailUrl\": null,\n  \"gifUrl\": null,\n  \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n  \"labels\": []\n}\n</code></pre>\n<h2 id=\"status-codes\">Status Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200 OK</td>\n<td>The metadata was successfully updated</td>\n</tr>\n<tr>\n<td>400 Bad Request</td>\n<td>Invalid request body or parameters</td>\n</tr>\n<tr>\n<td>401 Unauthorized</td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td>403 Forbidden</td>\n<td>Insufficient permissions to update the media asset</td>\n</tr>\n<tr>\n<td>404 Not Found</td>\n<td>Media asset with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td>500 Internal Server Error</td>\n<td>An error occurred on the server</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>metadata</code> field in the response is returned as a JSON string and needs to be parsed to access individual metadata properties</li>\n<li>All metadata fields in the request body are optional - you can update only the fields you need to change</li>\n<li>The <code>lastUpdated</code> timestamp is automatically updated when metadata is modified</li>\n<li>Ensure the <code>uuid</code> path parameter matches an existing media asset in your tenant</li>\n</ul>\n","urlObject":{"path":["api","core","mediaassets",":uuid","update-metadata"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{uuid}}","key":"uuid"}]}},"response":[{"id":"bcc75236-443f-4246-aacf-3d5904f5e1ba","name":"Update Metadata","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"author\": \"Jan Kowalski\",\n  \"createdAt\": \"2025-10-02T12:34:56Z\",\n  \"tags\": [\n    \"banner\",\n    \"homepage\",\n    \"marketing\"\n  ],\n  \"description\": \"Grafika nagłówka dla projektu Highp\",\n  \"colorPalette\": [\n    \"#1a1a1a\",\n    \"#ffffff\",\n    \"#ff6600\"\n  ],\n  \"version\": 2\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/:uuid/update-metadata","host":["testsandbox.highp.me"],"path":["api","core","mediaassets",":uuid","update-metadata"],"variable":[{"key":"uuid","value":"{{uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:50:33 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:50:32 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-db90456edc1bd0acf43d46620a37f4d0' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-db90456edc1bd0acf43d46620a37f4d0' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n    \"filename\": \"nametest00909\",\n    \"mediaAssetId\": 1944,\n    \"lastUpdated\": \"1763984956\",\n    \"name\": \"test\",\n    \"type\": \"video\",\n    \"project\": \"Postman\",\n    \"createdBy\": null,\n    \"personal\": false,\n    \"mediaAssetUrl\": \"nametest00909\",\n    \"thumbnailUrl\": null,\n    \"gifUrl\": null,\n    \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n    \"labels\": []\n}"}],"_postman_id":"848acf23-f1ea-4c9d-9c50-0524c078cc43"},{"name":"Update Metadata Selected","id":"eb9ad36c-2ce0-44a2-8ed0-10641816edcf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"author\": \"Jan Kowalski\",\n  \"createdAt\": \"2025-10-02T12:34:56Z\",\n  \"tags\": [\n    \"banner\",\n    \"homepage\",\n    \"marketing\"\n  ],\n  \"description\": \"Grafika nagłówka dla projektu Highp\",\n  \"colorPalette\": [\n    \"#1a1a1a\",\n    \"#ffffff\",\n    \"#ff6600\"\n  ],\n  \"version\": 2\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/mediaassets/:uuid/update-metadata-selected","description":"<h1 id=\"update-media-asset-metadata-selected-fields\">Update Media Asset Metadata (Selected Fields)</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint allows you to update specific metadata fields for a media asset in the Highp platform. It provides a flexible way to modify metadata properties such as author information, creation timestamps, tags, descriptions, color palettes, and version numbers without affecting other asset properties.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a Bearer token. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n</code></pre><p>The <code>{{token}}</code> variable should contain your valid access token obtained through the authentication flow.</p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the media asset whose metadata you want to update. This should be a valid UUID format (e.g., <code>ef7b9891-f007-4d38-b978-0633d2149f94</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body should be a JSON object containing the metadata fields you want to update:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"author\": \"string\",\n  \"createdAt\": \"string\",\n  \"tags\": [\"string\"],\n  \"description\": \"string\",\n  \"colorPalette\": [\"string\"],\n  \"version\": number\n}\n</code></pre>\n<h3 id=\"field-descriptions\">Field Descriptions</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>author</code></td>\n<td>string</td>\n<td>No</td>\n<td>The name of the author or creator of the media asset. Example: <code>\"Jan Kowalski\"</code></td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>string</td>\n<td>No</td>\n<td>The creation timestamp in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ). Example: <code>\"2025-10-02T12:34:56Z\"</code></td>\n</tr>\n<tr>\n<td><code>tags</code></td>\n<td>array of strings</td>\n<td>No</td>\n<td>An array of tags for categorizing and organizing the media asset. Example: <code>[\"banner\", \"homepage\", \"marketing\"]</code></td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>No</td>\n<td>A textual description of the media asset explaining its purpose or content. Example: <code>\"Grafika nagłówka dla projektu Highp\"</code></td>\n</tr>\n<tr>\n<td><code>colorPalette</code></td>\n<td>array of strings</td>\n<td>No</td>\n<td>An array of hexadecimal color codes representing the color palette used in the asset. Each color should be in hex format (e.g., <code>\"#1a1a1a\"</code>). Example: <code>[\"#1a1a1a\", \"#ffffff\", \"#ff6600\"]</code></td>\n</tr>\n<tr>\n<td><code>version</code></td>\n<td>number</td>\n<td>No</td>\n<td>The version number of the metadata, useful for tracking changes over time. Example: <code>2</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me';\nconst uuid = 'ef7b9891-f007-4d38-b978-0633d2149f94';\nconst accessToken = 'your_access_token_here';\n\nconst updateMetadata = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/mediaassets/${uuid}/update-metadata-selected`,\n      {\n        method: 'PUT',\n        headers: {\n          'Authorization': `Bearer ${accessToken}`,\n          'Content-Type': 'application/json'\n        },\n        body: JSON.stringify({\n          author: 'Jan Kowalski',\n          createdAt: '2025-10-02T12:34:56Z',\n          tags: ['banner', 'homepage', 'marketing'],\n          description: 'Grafika nagłówka dla projektu Highp',\n          colorPalette: ['#1a1a1a', '#ffffff', '#ff6600'],\n          version: 2\n        })\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Metadata updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating metadata:', error);\n    throw error;\n  }\n};\n\nupdateMetadata();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the metadata is successfully updated, the endpoint returns the complete media asset object with the updated metadata.</p>\n<p><strong>Response Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"filename\": \"string\",\n  \"mediaAssetId\": number,\n  \"lastUpdated\": \"string\",\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"project\": \"string\",\n  \"createdBy\": null | string,\n  \"personal\": boolean,\n  \"mediaAssetUrl\": \"string\",\n  \"thumbnailUrl\": null | string,\n  \"gifUrl\": null | string,\n  \"metadata\": \"string\",\n  \"labels\": []\n}\n</code></pre>\n<p><strong>Field Descriptions:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the media asset</td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>The filename of the media asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>number</td>\n<td>The internal numeric ID of the media asset</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string</td>\n<td>Unix timestamp of the last update</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The display name of the media asset</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>The type of media asset (e.g., \"video\", \"image\")</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>The project this asset belongs to</td>\n</tr>\n<tr>\n<td><code>createdBy</code></td>\n<td>null or string</td>\n<td>The creator of the asset</td>\n</tr>\n<tr>\n<td><code>personal</code></td>\n<td>boolean</td>\n<td>Whether this is a personal asset</td>\n</tr>\n<tr>\n<td><code>mediaAssetUrl</code></td>\n<td>string</td>\n<td>The URL or path to access the media asset</td>\n</tr>\n<tr>\n<td><code>thumbnailUrl</code></td>\n<td>null or string</td>\n<td>URL to the thumbnail image</td>\n</tr>\n<tr>\n<td><code>gifUrl</code></td>\n<td>null or string</td>\n<td>URL to an animated GIF preview</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>string</td>\n<td>A JSON string containing the updated metadata fields</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Array of labels associated with the asset</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n  \"filename\": \"nametest00909\",\n  \"mediaAssetId\": 1944,\n  \"lastUpdated\": \"1763984956\",\n  \"name\": \"test\",\n  \"type\": \"video\",\n  \"project\": \"Postman\",\n  \"createdBy\": null,\n  \"personal\": false,\n  \"mediaAssetUrl\": \"nametest00909\",\n  \"thumbnailUrl\": null,\n  \"gifUrl\": null,\n  \"metadata\": \"{\\\"tags\\\":[\\\"banner\\\",\\\"homepage\\\",\\\"marketing\\\"],\\\"author\\\":\\\"Jan Kowalski\\\",\\\"version\\\":2,\\\"createdAt\\\":\\\"2025-10-02T12:34:56Z\\\",\\\"description\\\":\\\"Grafika nagłówka dla projektu Highp\\\",\\\"colorPalette\\\":[\\\"#1a1a1a\\\",\\\"#ffffff\\\",\\\"#ff6600\\\"]}\",\n  \"labels\": []\n}\n</code></pre>\n<h3 id=\"status-codes\">Status Codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200 OK</td>\n<td>Metadata successfully updated</td>\n</tr>\n<tr>\n<td>400 Bad Request</td>\n<td>Invalid request body or parameters</td>\n</tr>\n<tr>\n<td>401 Unauthorized</td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td>404 Not Found</td>\n<td>Media asset with the specified UUID not found</td>\n</tr>\n<tr>\n<td>500 Internal Server Error</td>\n<td>Server error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>metadata</code> field in the response is returned as a JSON string and needs to be parsed to access individual metadata properties</li>\n<li>Only the fields included in the request body will be updated; other metadata fields will remain unchanged</li>\n<li>Ensure the UUID in the path parameter matches an existing media asset in your tenant</li>\n<li>The Bearer token must have appropriate permissions to modify media assets</li>\n</ul>\n","urlObject":{"path":["api","core","mediaassets",":uuid","update-metadata-selected"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{uuid}}","key":"uuid"}]}},"response":[{"id":"ccdb0888-5437-400f-a5f4-92405dd535cb","name":"Update Metadata Selected","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"author\": \"Jan Kowalski\",\n  \"createdAt\": \"2025-10-02T12:34:56Z\",\n  \"tags\": [\n    \"banner\",\n    \"homepage\",\n    \"marketing\"\n  ],\n  \"description\": \"Grafika nagłówka dla projektu Highp\",\n  \"colorPalette\": [\n    \"#1a1a1a\",\n    \"#ffffff\",\n    \"#ff6600\"\n  ],\n  \"version\": 2\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/:uuid/update-metadata-selected","host":["testsandbox.highp.me"],"path":["api","core","mediaassets",":uuid","update-metadata-selected"],"variable":[{"key":"uuid","value":"{{uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:50:47 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:50:46 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-774091cb5d99f811936f327a14c28509' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-774091cb5d99f811936f327a14c28509' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n    \"filename\": \"nametest00909\",\n    \"mediaAssetId\": 1944,\n    \"lastUpdated\": \"1763984956\",\n    \"name\": \"test\",\n    \"type\": \"video\",\n    \"project\": \"Postman\",\n    \"createdBy\": null,\n    \"personal\": false,\n    \"mediaAssetUrl\": \"nametest00909\",\n    \"thumbnailUrl\": null,\n    \"gifUrl\": null,\n    \"metadata\": \"{\\\"tags\\\":[\\\"banner\\\",\\\"homepage\\\",\\\"marketing\\\"],\\\"author\\\":\\\"Jan Kowalski\\\",\\\"version\\\":2,\\\"createdAt\\\":\\\"2025-10-02T12:34:56Z\\\",\\\"description\\\":\\\"Grafika nagłówka dla projektu Highp\\\",\\\"colorPalette\\\":[\\\"#1a1a1a\\\",\\\"#ffffff\\\",\\\"#ff6600\\\"]}\",\n    \"labels\": []\n}"}],"_postman_id":"eb9ad36c-2ce0-44a2-8ed0-10641816edcf"},{"name":"Delete By Uuid","id":"de506c7b-8ebb-49f4-b476-eb34b8a0e9b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/mediaassets/:uuid","description":"<h1 id=\"delete-media-asset-by-uuid\">Delete Media Asset by UUID</h1>\n<p>Permanently deletes a media asset from the Highp platform using its unique identifier (UUID). This operation is irreversible and will remove the media asset and all associated metadata from the system.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE https://{{tenant_domain}}/api/core/mediaassets/{{uuid}}\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>tenant_domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Your Highp tenant domain (e.g., <code>yourtenant.highp.me</code>)</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the media asset to delete</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer {token}</td>\n<td>Your API access token</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>This endpoint does not require a request body.</p>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the media asset is successfully deleted, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n<li><code>X-XSS-Protection: 1; mode=block</code></li>\n</ul>\n<h3 id=\"error-responses\">Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401 Unauthorized</td>\n<td>Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>403 Forbidden</td>\n<td>Insufficient permissions to delete this media asset</td>\n</tr>\n<tr>\n<td>404 Not Found</td>\n<td>Media asset with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td>500 Internal Server Error</td>\n<td>Server error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'yourtenant.highp.me';\nconst mediaAssetUuid = 'your-media-asset-uuid';\nconst accessToken = 'your-access-token';\n\nasync function deleteMediaAsset(tenantDomain, uuid, token) {\n  const url = `https://${tenantDomain}/api/core/mediaassets/${uuid}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'DELETE',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (response.ok) {\n      console.log(`Media asset ${uuid} deleted successfully`);\n      return { success: true, status: response.status };\n    } else {\n      const errorText = await response.text();\n      console.error(`Failed to delete media asset: ${response.status} ${response.statusText}`);\n      return { \n        success: false, \n        status: response.status, \n        error: errorText \n      };\n    }\n  } catch (error) {\n    console.error('Error deleting media asset:', error);\n    throw error;\n  }\n}\n\n// Usage\ndeleteMediaAsset(tenantDomain, mediaAssetUuid, accessToken)\n  .then(result =&gt; {\n    if (result.success) {\n      console.log('Deletion completed');\n    }\n  })\n  .catch(error =&gt; {\n    console.error('Request failed:', error);\n  });\n</code></pre>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li><strong>Irreversible Action:</strong> Once a media asset is deleted, it cannot be recovered. Ensure you have the correct UUID before executing this request.</li>\n<li><strong>Permissions:</strong> The authenticated user must have appropriate permissions to delete media assets in the specified tenant.</li>\n<li><strong>Dependencies:</strong> If the media asset is referenced by other resources (campaigns, messages, etc.), consider the impact of deletion on those resources.</li>\n<li><strong>Rate Limiting:</strong> Be mindful of API rate limits when performing bulk deletion operations.</li>\n</ul>\n<h2 id=\"example-use-cases\">Example Use Cases</h2>\n<ol>\n<li><strong>Cleanup Operations:</strong> Remove outdated or unused media assets from your library</li>\n<li><strong>Content Management:</strong> Delete media assets that are no longer needed for campaigns</li>\n<li><strong>Storage Management:</strong> Free up storage space by removing unnecessary media files</li>\n<li><strong>Compliance:</strong> Remove media assets that need to be deleted for regulatory or privacy reasons</li>\n</ol>\n","urlObject":{"path":["api","core","mediaassets",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{uuid}}","key":"uuid"}]}},"response":[{"id":"ed4df9e7-a63c-4a67-bc5d-92e152e6d86f","name":"Delete By Uuid","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/:uuid","host":["testsandbox.highp.me"],"path":["api","core","mediaassets",":uuid"],"variable":[{"key":"uuid","value":"{{uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:52:31 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:52:30 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-451d1a39601808fcff64bba51172e468' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-451d1a39601808fcff64bba51172e468' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"de506c7b-8ebb-49f4-b476-eb34b8a0e9b3"},{"name":"Get By Uuid","id":"fb653cdc-c6f9-4378-bf36-867d0142fc7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/mediaassets/:uuid","description":"<h2 id=\"get-media-asset-by-uuid\">Get Media Asset by UUID</h2>\n<p>Retrieves detailed information about a specific media asset using its unique identifier (UUID). This endpoint returns comprehensive metadata about the media asset including its type, URLs, project association, and custom metadata.</p>\n<hr />\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/mediaassets/{{uuid}}\n\n</code></pre><hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n\n</code></pre><hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>tenant_domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the media asset to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response-schema\">Response Schema</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"filename\": \"string\",\n  \"mediaAssetId\": \"integer\",\n  \"lastUpdated\": \"string (timestamp)\",\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"project\": \"string\",\n  \"createdBy\": \"string | null\",\n  \"personal\": \"boolean\",\n  \"mediaAssetUrl\": \"string\",\n  \"thumbnailUrl\": \"string | null\",\n  \"gifUrl\": \"string | null\",\n  \"metadata\": \"string (JSON)\",\n  \"labels\": \"array\"\n}\n\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<ul>\n<li><p><strong>uuid</strong>: Unique identifier for the media asset</p>\n</li>\n<li><p><strong>filename</strong>: Original filename of the media asset</p>\n</li>\n<li><p><strong>mediaAssetId</strong>: Internal numeric ID of the media asset</p>\n</li>\n<li><p><strong>lastUpdated</strong>: Unix timestamp of the last update</p>\n</li>\n<li><p><strong>name</strong>: Display name of the media asset</p>\n</li>\n<li><p><strong>type</strong>: Media type (e.g., <code>video</code>, <code>image</code>, <code>audio</code>)</p>\n</li>\n<li><p><strong>project</strong>: Project name the asset belongs to</p>\n</li>\n<li><p><strong>createdBy</strong>: User who created the asset (nullable)</p>\n</li>\n<li><p><strong>personal</strong>: Boolean indicating if the asset is personal or shared</p>\n</li>\n<li><p><strong>mediaAssetUrl</strong>: URL or path to access the media asset</p>\n</li>\n<li><p><strong>thumbnailUrl</strong>: URL to the thumbnail image (nullable)</p>\n</li>\n<li><p><strong>gifUrl</strong>: URL to an animated GIF preview (nullable)</p>\n</li>\n<li><p><strong>metadata</strong>: JSON string containing additional custom metadata (tags, author, version, etc.)</p>\n</li>\n<li><p><strong>labels</strong>: Array of labels/tags associated with the asset</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\nconst tenantDomain = 'testsandbox.highp.me';\nconst uuid = 'ef7b9891-f007-4d38-b978-0633d2149f94';\nconst token = 'your_access_token_here';\nasync function getMediaAssetByUuid() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/mediaassets/${uuid}`,\n      {\n        method: 'GET',\n        headers: {\n          'Authorization': `Bearer ${token}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const mediaAsset = await response.json();\n    console.log('Media Asset:', mediaAsset);\n    // Parse metadata if needed\n    if (mediaAsset.metadata) {\n      const parsedMetadata = JSON.parse(mediaAsset.metadata);\n      console.log('Metadata:', parsedMetadata);\n    }\n    return mediaAsset;\n  } catch (error) {\n    console.error('Error fetching media asset:', error);\n    throw error;\n  }\n}\ngetMediaAssetByUuid();\n\n</code></pre>\n<hr />\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li><p>The <code>uuid</code> parameter must be a valid UUID format (e.g., <code>ef7b9891-f007-4d38-b978-0633d2149f94</code>)</p>\n</li>\n<li><p>The <code>metadata</code> field is returned as a JSON string and needs to be parsed if you want to access its properties</p>\n</li>\n<li><p>Thumbnail and GIF URLs may be <code>null</code> if not generated or applicable for the media type</p>\n</li>\n<li><p>Ensure your Bearer token has the necessary permissions to access media assets</p>\n</li>\n<li><p>The endpoint returns a 404 error if the UUID doesn't exist or you don't have access to it</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"common-use-cases\">Common Use Cases</h2>\n<ol>\n<li><p><strong>Displaying media details</strong> in a content management interface</p>\n</li>\n<li><p><strong>Retrieving media URLs</strong> for embedding in campaigns or messages</p>\n</li>\n<li><p><strong>Accessing metadata</strong> for filtering, searching, or categorization</p>\n</li>\n<li><p><strong>Validating media asset existence</strong> before using in other operations</p>\n</li>\n</ol>\n","urlObject":{"path":["api","core","mediaassets",":uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{uuid}}","key":"uuid"}]}},"response":[{"id":"1fd1f93f-7438-4ca7-85ab-e09ef1e095c0","name":"Get By Uuid","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/:uuid","host":["testsandbox.highp.me"],"path":["api","core","mediaassets",":uuid"],"variable":[{"key":"uuid","value":"{{uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:50:58 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:50:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-2b5744ad9d48b60bb7bde9be2456a646' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-2b5744ad9d48b60bb7bde9be2456a646' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"ef7b9891-f007-4d38-b978-0633d2149f94\",\n    \"filename\": \"nametest00909\",\n    \"mediaAssetId\": 1944,\n    \"lastUpdated\": \"1763984956\",\n    \"name\": \"test\",\n    \"type\": \"video\",\n    \"project\": \"Postman\",\n    \"createdBy\": null,\n    \"personal\": false,\n    \"mediaAssetUrl\": \"nametest00909\",\n    \"thumbnailUrl\": null,\n    \"gifUrl\": null,\n    \"metadata\": \"{\\\"tags\\\": [\\\"banner\\\", \\\"homepage\\\", \\\"marketing\\\"], \\\"author\\\": \\\"Jan Kowalski\\\", \\\"version\\\": 2, \\\"createdAt\\\": \\\"2025-10-02T12:34:56Z\\\", \\\"description\\\": \\\"Grafika nagłówka dla projektu Highp\\\", \\\"colorPalette\\\": [\\\"#1a1a1a\\\", \\\"#ffffff\\\", \\\"#ff6600\\\"]}\",\n    \"labels\": []\n}"}],"_postman_id":"fb653cdc-c6f9-4378-bf36-867d0142fc7c"},{"name":"Get VTT File","id":"934c15ab-a070-4144-a67f-9b392bd87207","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/mediaassets/:uuid/vtt","description":"<h1 id=\"get-vtt-file\">Get VTT File</h1>\n<p>Retrieves the WebVTT (Web Video Text Tracks) subtitle/caption file for a specific media asset. VTT files contain time-synchronized text data such as subtitles, captions, descriptions, chapters, or metadata for video content.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/mediaassets/{{uuid}}/vtt\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>tenant_domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Your Highp tenant domain (e.g., <code>yourtenant.highp.me</code>)</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the media asset</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication. Include a Bearer token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n</code></pre><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p><strong>Content-Type:</strong> <code>text/vtt</code></p>\n<p>The response returns a WebVTT formatted text file containing time-coded captions/subtitles.</p>\n<h3 id=\"response-structure\">Response Structure</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>WEBVTT\n\n00:00:00.000 --&gt; 00:00:03.560\nFirst caption text appears here\n\n00:00:03.560 --&gt; 00:00:09.640\nSecond caption text appears here\n\n00:00:09.640 --&gt; 00:00:11.560\nThird caption text appears here\n</code></pre><h3 id=\"response-headers\">Response Headers</h3>\n<ul>\n<li><code>Content-Type: text/vtt</code> - Indicates WebVTT format</li>\n<li><code>Content-Disposition: form-data; name=\"attachment\"; filename=\"{uuid}.mp4.vtt\"</code> - Provides the filename for download</li>\n<li><code>Cache-Control: no-cache</code> - Prevents caching of the subtitle file</li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'yourtenant.highp.me';\nconst mediaAssetUuid = '90afa663-a14e-40b7-91a3-f37c2ddc2136';\nconst accessToken = 'your_access_token_here';\n\nasync function getVTTFile() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/mediaassets/${mediaAssetUuid}/vtt`,\n      {\n        method: 'GET',\n        headers: {\n          'Authorization': `Bearer ${accessToken}`\n        }\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const vttContent = await response.text();\n    console.log('VTT Content:', vttContent);\n    \n    // Optionally save to file\n    const fs = require('fs');\n    fs.writeFileSync(`${mediaAssetUuid}.vtt`, vttContent);\n    \n    return vttContent;\n  } catch (error) {\n    console.error('Error fetching VTT file:', error);\n    throw error;\n  }\n}\n\ngetVTTFile();\n</code></pre>\n<h2 id=\"webvtt-format-overview\">WebVTT Format Overview</h2>\n<p>WebVTT (Web Video Text Tracks) is a W3C standard format for displaying timed text tracks. Each cue in the file consists of:</p>\n<ol>\n<li><strong>Timestamp</strong> - Start and end times in the format <code>HH:MM:SS.mmm --&gt; HH:MM:SS.mmm</code></li>\n<li><strong>Text Content</strong> - The caption or subtitle text to display during that time range</li>\n</ol>\n<h3 id=\"key-features\">Key Features:</h3>\n<ul>\n<li><strong>Time-synchronized text</strong> for video content</li>\n<li><strong>Multiple lines</strong> of text per cue</li>\n<li><strong>Styling support</strong> through CSS</li>\n<li><strong>Positioning options</strong> for text placement</li>\n<li><strong>Metadata support</strong> for chapters and descriptions</li>\n</ul>\n<h2 id=\"common-use-cases\">Common Use Cases</h2>\n<ul>\n<li><strong>Accessibility</strong>: Providing captions for hearing-impaired users</li>\n<li><strong>Translations</strong>: Offering subtitles in multiple languages</li>\n<li><strong>SEO</strong>: Making video content searchable and indexable</li>\n<li><strong>User Experience</strong>: Allowing viewers to follow along in noisy environments</li>\n<li><strong>Compliance</strong>: Meeting legal requirements for video accessibility</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The VTT file is generated based on the media asset's transcription or uploaded caption data</li>\n<li>The file format follows the WebVTT specification (<a href=\"https://www.w3.org/TR/webvtt1/\">https://www.w3.org/TR/webvtt1/</a>)</li>\n<li>VTT files can be used with HTML5 <code>&lt;video&gt;</code> elements via the <code>&lt;track&gt;</code> tag</li>\n<li>The response includes a <code>Content-Disposition</code> header suggesting a filename for download</li>\n<li>Cache headers are set to <code>no-cache</code> to ensure fresh content delivery</li>\n</ul>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to access this media asset</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Media asset with the specified UUID does not exist or has no VTT file</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","core","mediaassets",":uuid","vtt"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{uuid}}","key":"uuid"}]}},"response":[{"id":"642d5a20-92d4-4d98-beea-7de9486285b8","name":"Get VTT File","originalRequest":{"method":"GET","header":[],"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/:uuid/vtt","host":["testsandbox.highp.me"],"path":["api","core","mediaassets",":uuid","vtt"],"variable":[{"key":"uuid","value":"{{uuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:52:08 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"530"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:52:07 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"form-data; name=\"attachment\"; filename=\"90afa663-a14e-40b7-91a3-f37c2ddc2136.mp4.vtt\""},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-f1b70a66b149e145d675bc8ce60f2ea4' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-f1b70a66b149e145d675bc8ce60f2ea4' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"text/vtt"}],"cookie":[],"responseTime":null,"body":"WEBVTT\n\n00:00:00.000 --> 00:00:03.560\nHi, good morning, good afternoon, wherever you may be in the world.\n\n00:00:03.560 --> 00:00:09.640\nMichael Komornizak here with Hype Video Messaging Team, pleased to introduce a brand new Hype\n\n00:00:09.640 --> 00:00:11.560\nArtificial Intelligence functionality.\n\n00:00:11.560 --> 00:00:12.840\nIt's finally here.\n\n00:00:12.840 --> 00:00:15.600\nFor more information, take a look right below my video.\n\n00:00:15.600 --> 00:00:16.600\nThanks.\n\n00:00:16.600 --> 00:00:17.040\nTake very good care.\n\n"}],"_postman_id":"934c15ab-a070-4144-a67f-9b392bd87207"},{"name":"Get All","id":"d1b6303e-54aa-43e3-b41b-76461ce5f565","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/mediaassets/all?page=0&size=20&sortBy=lastUpdated&sortDirection=asc","description":"<h1 id=\"get-all-media-assets\">Get All Media Assets</h1>\n<p>Retrieves a paginated list of all media assets (images, videos, etc.) from the system with support for sorting, filtering, and search capabilities.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/mediaassets/all\n\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>The page number for pagination (zero-based). Default: <code>0</code></td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Number of items per page. Default: <code>20</code></td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>Field to sort by. Common values: <code>lastUpdated</code>, <code>name</code>, <code>createdDate</code></td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>Sort direction. Values: <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search term to filter media assets by name or filename</td>\n</tr>\n<tr>\n<td><code>labelUuids</code></td>\n<td>string</td>\n<td>No</td>\n<td>Comma-separated list of label UUIDs to filter media assets (e.g., \"uuid1,uuid2,uuid3\")</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter by media type (e.g., \"image\", \"video\")</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter by project name</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = '{{tenant_domain}}';\nconst token = '{{token}}';\nconst params = new URLSearchParams({\n  page: '0',\n  size: '20',\n  sortBy: 'lastUpdated',\n  sortDirection: 'asc'\n  // Optional: search: 'test',\n  // Optional: labelUuids: 'uuid1,uuid2,uuid3'\n});\nfetch(`https://${tenantDomain}/api/core/mediaassets/all?${params}`, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Total media assets:', data.totalElements);\n    console.log('Total pages:', data.totalPages);\n    console.log('Media assets:', data.content);\n  })\n  .catch(error =&gt; console.error('Error:', error));\n\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"string\",\n      \"filename\": \"string\",\n      \"mediaAssetId\": integer,\n      \"lastUpdated\": \"string (Unix timestamp)\",\n      \"name\": \"string\",\n      \"type\": \"string (image|video)\",\n      \"project\": \"string|null\",\n      \"createdBy\": {\n        \"id\": integer,\n        \"uuid\": \"string\",\n        \"firstName\": \"string\",\n        \"lastName\": \"string\",\n        \"email\": \"string\",\n        \"phone\": \"string|null\",\n        \"businessTitle\": \"string|null\"\n      } | null,\n      \"personal\": boolean,\n      \"mediaAssetUrl\": \"string\",\n      \"thumbnailUrl\": \"string|null\",\n      \"gifUrl\": \"string|null\",\n      \"metadata\": \"string (JSON)|null\",\n      \"labels\": array\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": boolean,\n      \"sorted\": boolean,\n      \"unsorted\": boolean\n    },\n    \"offset\": integer,\n    \"pageNumber\": integer,\n    \"pageSize\": integer,\n    \"paged\": boolean,\n    \"unpaged\": boolean\n  },\n  \"totalElements\": integer,\n  \"totalPages\": integer,\n  \"last\": boolean,\n  \"size\": integer,\n  \"number\": integer,\n  \"sort\": {\n    \"empty\": boolean,\n    \"sorted\": boolean,\n    \"unsorted\": boolean\n  },\n  \"numberOfElements\": integer,\n  \"first\": boolean,\n  \"empty\": boolean\n}\n\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array\">Content Array</h4>\n<p>Each media asset object contains:</p>\n<ul>\n<li><p><strong>uuid</strong>: Unique identifier for the media asset</p>\n</li>\n<li><p><strong>filename</strong>: Original filename stored in the system</p>\n</li>\n<li><p><strong>mediaAssetId</strong>: Numeric ID of the media asset</p>\n</li>\n<li><p><strong>lastUpdated</strong>: Unix timestamp of last modification</p>\n</li>\n<li><p><strong>name</strong>: Display name of the media asset</p>\n</li>\n<li><p><strong>type</strong>: Media type (<code>image</code>, <code>video</code>, etc.)</p>\n</li>\n<li><p><strong>project</strong>: Associated project name (can be null)</p>\n</li>\n<li><p><strong>createdBy</strong>: User object who created the asset (can be null for system-generated assets)</p>\n</li>\n<li><p><strong>personal</strong>: Boolean indicating if this is a personal asset</p>\n</li>\n<li><p><strong>mediaAssetUrl</strong>: URL path to access the media file</p>\n</li>\n<li><p><strong>thumbnailUrl</strong>: URL path to thumbnail (primarily for videos)</p>\n</li>\n<li><p><strong>gifUrl</strong>: URL path to animated GIF preview (primarily for videos)</p>\n</li>\n<li><p><strong>metadata</strong>: JSON string containing custom metadata</p>\n</li>\n<li><p><strong>labels</strong>: Array of label objects associated with the asset</p>\n</li>\n</ul>\n<h4 id=\"pagination-fields\">Pagination Fields</h4>\n<ul>\n<li><p><strong>totalElements</strong>: Total number of media assets matching the query</p>\n</li>\n<li><p><strong>totalPages</strong>: Total number of pages available</p>\n</li>\n<li><p><strong>size</strong>: Number of items per page (as requested)</p>\n</li>\n<li><p><strong>number</strong>: Current page number (zero-based)</p>\n</li>\n<li><p><strong>numberOfElements</strong>: Number of items in the current page</p>\n</li>\n<li><p><strong>first</strong>: Boolean indicating if this is the first page</p>\n</li>\n<li><p><strong>last</strong>: Boolean indicating if this is the last page</p>\n</li>\n<li><p><strong>empty</strong>: Boolean indicating if the result set is empty</p>\n</li>\n</ul>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"5840c8cb-db09-458e-b883-cf2134970a98\",\n      \"filename\": \"1468c679-0f36-43d6-9319-8329b95cccd3.png\",\n      \"mediaAssetId\": 1,\n      \"lastUpdated\": \"1625480444\",\n      \"name\": \"f6a7cf45376909eb69ad102bf478ced3.png\",\n      \"type\": \"image\",\n      \"project\": \"dbe\",\n      \"createdBy\": {\n        \"id\": 1,\n        \"uuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n        \"firstName\": \"Test\",\n        \"lastName\": \"Sandbox\",\n        \"email\": \"testsandbox_9158975474162441@connectmedica.com\",\n        \"phone\": null,\n        \"businessTitle\": null\n      },\n      \"personal\": false,\n      \"mediaAssetUrl\": \"1468c679-0f36-43d6-9319-8329b95cccd3.png\",\n      \"thumbnailUrl\": null,\n      \"gifUrl\": null,\n      \"metadata\": \"{\\\"vtt\\\": \\\"Jan Kowalski\\\", \\\"author\\\": \\\"Jan Kowalski\\\"}\",\n      \"labels\": []\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 1765,\n  \"totalPages\": 89,\n  \"last\": false,\n  \"size\": 20,\n  \"number\": 0,\n  \"numberOfElements\": 20,\n  \"first\": true,\n  \"empty\": false\n}\n\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><p><strong>Media Library Management</strong>: Retrieve and display all media assets in a library view</p>\n</li>\n<li><p><strong>Search &amp; Filter</strong>: Find specific media assets using search terms and filters</p>\n</li>\n<li><p><strong>Pagination</strong>: Navigate through large collections of media assets</p>\n</li>\n<li><p><strong>Asset Organization</strong>: Filter by project, type, or labels to organize media assets</p>\n</li>\n<li><p><strong>Sorting</strong>: Order assets by last updated date, name, or other fields</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","mediaassets","all"],"host":["testsandbox.highp.me"],"query":[{"disabled":true,"key":"search","value":"test"},{"disabled":true,"description":{"content":"<p>metadata key ex. createdBy.uuid or txt</p>\n","type":"text/plain"},"key":"searchMetadataKey","value":"txt"},{"disabled":true,"description":{"content":"<p>metadata value</p>\n","type":"text/plain"},"key":"searchMetadataValue","value":"Hi, good"},{"disabled":true,"description":{"content":"<p>video, document etc.</p>\n","type":"text/plain"},"key":"type","value":"string"},{"disabled":true,"key":"project","value":"string"},{"disabled":true,"description":{"content":"<p>optional - np. \"red\" uuid and \"apap\" uuid</p>\n","type":"text/plain"},"key":"labelUuids","value":"uuid1, uuid2, uuid3"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUpdated"},{"key":"sortDirection","value":"asc"}],"variable":[]}},"response":[{"id":"052f847d-3c14-4cfe-a2e5-d8a382d8513b","name":"Get All","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/mediaassets/all?search=test&type=string&project=string&labelUuids=uuid1, uuid2, uuid3&page=0&size=20&sortBy=lastUpdated&sortDirection=asc","host":["testsandbox.highp.me"],"path":["api","core","mediaassets","all"],"query":[{"key":"search","value":"test"},{"key":"type","value":"string"},{"key":"project","value":"string"},{"description":"optional - np. \"red\" uuid and \"apap\" uuid","key":"labelUuids","value":"uuid1, uuid2, uuid3"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUpdated"},{"key":"sortDirection","value":"asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 11:48:17 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 11:48:16 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-bb4ced9aea923162db2956ec4e8c028f' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-bb4ced9aea923162db2956ec4e8c028f' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"uuid\": \"5840c8cb-db09-458e-b883-cf2134970a98\",\n            \"filename\": \"1468c679-0f36-43d6-9319-8329b95cccd3.png\",\n            \"mediaAssetId\": 1,\n            \"lastUpdated\": \"1625480444\",\n            \"name\": \"f6a7cf45376909eb69ad102bf478ced3.png\",\n            \"type\": \"image\",\n            \"project\": \"dbe\",\n            \"createdBy\": {\n                \"id\": 1,\n                \"uuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n                \"firstName\": \"Test\",\n                \"lastName\": \"Sandbox\",\n                \"email\": \"testsandbox_9158975474162441@connectmedica.com\",\n                \"phone\": null,\n                \"businessTitle\": null\n            },\n            \"personal\": false,\n            \"mediaAssetUrl\": \"1468c679-0f36-43d6-9319-8329b95cccd3.png\",\n            \"thumbnailUrl\": null,\n            \"gifUrl\": null,\n            \"metadata\": \"{\\\"vtt\\\": \\\"Jan Kowalski\\\", \\\"test\\\": \\\"test value\\\", \\\"test2\\\": \\\"test value\\\", \\\"test3\\\": [{\\\"ax\\\": \\\"new\\\"}], \\\"author\\\": \\\"Jan Kowalski\\\"}\",\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"ecb73fb7-663d-4690-9fbe-1d7238f7125d\",\n            \"filename\": \"afafe8e6-d07e-40f0-b8c2-6c44143cb806.mp4\",\n            \"mediaAssetId\": 2,\n            \"lastUpdated\": \"1627467267\",\n            \"name\": \"video_afafe8e6-d07e-40f0-b8c2-6c44143cb806.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"afafe8e6-d07e-40f0-b8c2-6c44143cb806.mp4\",\n            \"thumbnailUrl\": \"afafe8e6-d07e-40f0-b8c2-6c44143cb806.mp4.jpg\",\n            \"gifUrl\": \"afafe8e6-d07e-40f0-b8c2-6c44143cb806.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"0ef9d75c-f3b3-4393-9af4-f346b1f9f04e\",\n            \"filename\": \"513e8c4b-d7d7-46e8-b5f0-b45c963942d5.mp4\",\n            \"mediaAssetId\": 3,\n            \"lastUpdated\": \"1627468719\",\n            \"name\": \"video_513e8c4b-d7d7-46e8-b5f0-b45c963942d5.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"513e8c4b-d7d7-46e8-b5f0-b45c963942d5.mp4\",\n            \"thumbnailUrl\": \"513e8c4b-d7d7-46e8-b5f0-b45c963942d5.mp4.jpg\",\n            \"gifUrl\": \"513e8c4b-d7d7-46e8-b5f0-b45c963942d5.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"1eb9ce54-fcc1-4e79-9d35-b9300f4126c2\",\n            \"filename\": \"784bfff8-3271-4b4d-b61b-75fac3facbd0.mp4\",\n            \"mediaAssetId\": 4,\n            \"lastUpdated\": \"1627473133\",\n            \"name\": \"video_784bfff8-3271-4b4d-b61b-75fac3facbd0.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"784bfff8-3271-4b4d-b61b-75fac3facbd0.mp4\",\n            \"thumbnailUrl\": \"784bfff8-3271-4b4d-b61b-75fac3facbd0.mp4.jpg\",\n            \"gifUrl\": \"784bfff8-3271-4b4d-b61b-75fac3facbd0.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"81709a12-a0f7-4c2b-90d5-d05b5e1628c3\",\n            \"filename\": \"b90b935d-f090-481f-803f-85bc416c72a7.mp4\",\n            \"mediaAssetId\": 5,\n            \"lastUpdated\": \"1627473487\",\n            \"name\": \"video_b90b935d-f090-481f-803f-85bc416c72a7.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"b90b935d-f090-481f-803f-85bc416c72a7.mp4\",\n            \"thumbnailUrl\": \"b90b935d-f090-481f-803f-85bc416c72a7.mp4.jpg\",\n            \"gifUrl\": \"b90b935d-f090-481f-803f-85bc416c72a7.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"65eb2042-0d6a-4be4-8a5f-72fbed8656c6\",\n            \"filename\": \"24b9680d-d9aa-4e08-bbca-bf2105e360b0.mp4\",\n            \"mediaAssetId\": 6,\n            \"lastUpdated\": \"1627474530\",\n            \"name\": \"video_24b9680d-d9aa-4e08-bbca-bf2105e360b0.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"24b9680d-d9aa-4e08-bbca-bf2105e360b0.mp4\",\n            \"thumbnailUrl\": \"24b9680d-d9aa-4e08-bbca-bf2105e360b0.mp4.jpg\",\n            \"gifUrl\": \"24b9680d-d9aa-4e08-bbca-bf2105e360b0.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"6cf830d8-b507-45b8-9296-2a09440104f1\",\n            \"filename\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"mediaAssetId\": 7,\n            \"lastUpdated\": \"1629792662\",\n            \"name\": \"video_7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"thumbnailUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4.jpg\",\n            \"gifUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"90aee053-7868-4698-a855-b4bf9b43d2bb\",\n            \"filename\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"mediaAssetId\": 8,\n            \"lastUpdated\": \"1629793072\",\n            \"name\": \"video_7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"thumbnailUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4.jpg\",\n            \"gifUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"de829bf4-8859-42b9-beba-095323bf1220\",\n            \"filename\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"mediaAssetId\": 9,\n            \"lastUpdated\": \"1629793091\",\n            \"name\": \"video_7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4\",\n            \"thumbnailUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4.jpg\",\n            \"gifUrl\": \"7f95738a-f9ac-4165-b8dd-de60cc2d3fda.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"130b8ce9-a0c6-49c9-ad99-cee94e67507b\",\n            \"filename\": \"4170c893-4601-4c61-8d35-3df509a4226f.mp4\",\n            \"mediaAssetId\": 10,\n            \"lastUpdated\": \"1629797219\",\n            \"name\": \"video_4170c893-4601-4c61-8d35-3df509a4226f.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"4170c893-4601-4c61-8d35-3df509a4226f.mp4\",\n            \"thumbnailUrl\": \"4170c893-4601-4c61-8d35-3df509a4226f.mp4.jpg\",\n            \"gifUrl\": \"4170c893-4601-4c61-8d35-3df509a4226f.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"d17f65f5-091b-47dd-b974-25d97b1c4ffe\",\n            \"filename\": \"de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4\",\n            \"mediaAssetId\": 11,\n            \"lastUpdated\": \"1629800197\",\n            \"name\": \"video_de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4\",\n            \"thumbnailUrl\": \"de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4.jpg\",\n            \"gifUrl\": \"de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"c353416d-7648-40b2-9c48-f6286b8ccf1a\",\n            \"filename\": \"de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4\",\n            \"mediaAssetId\": 12,\n            \"lastUpdated\": \"1629802277\",\n            \"name\": \"video_de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4\",\n            \"thumbnailUrl\": \"de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4.jpg\",\n            \"gifUrl\": \"de0a59f9-37ef-4bfb-af2c-1b031a3bc8b0.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"b0ca8940-b977-45c8-9ba4-341e3c48ed70\",\n            \"filename\": \"e3eeeaf8-ef26-4d1c-bcf3-95c850549c9d.mp4\",\n            \"mediaAssetId\": 13,\n            \"lastUpdated\": \"1629879827\",\n            \"name\": \"video_e3eeeaf8-ef26-4d1c-bcf3-95c850549c9d.mp4\",\n            \"type\": \"video\",\n            \"project\": null,\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"e3eeeaf8-ef26-4d1c-bcf3-95c850549c9d.mp4\",\n            \"thumbnailUrl\": \"e3eeeaf8-ef26-4d1c-bcf3-95c850549c9d.mp4.jpg\",\n            \"gifUrl\": \"e3eeeaf8-ef26-4d1c-bcf3-95c850549c9d.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"e12c94d5-6261-4e4f-930b-7441ba2686cf\",\n            \"filename\": \"81b38cc3-7925-474b-9118-49b1d7b0104a.mp4\",\n            \"mediaAssetId\": 14,\n            \"lastUpdated\": \"1631180747\",\n            \"name\": \"video_81b38cc3-7925-474b-9118-49b1d7b0104a.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"81b38cc3-7925-474b-9118-49b1d7b0104a.mp4\",\n            \"thumbnailUrl\": \"81b38cc3-7925-474b-9118-49b1d7b0104a.mp4.jpg\",\n            \"gifUrl\": \"81b38cc3-7925-474b-9118-49b1d7b0104a.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"9a71843c-74af-4b25-8e47-43247c90be37\",\n            \"filename\": \"74097ba2-68e3-4f5c-83f1-ac80b4425e04.mp4\",\n            \"mediaAssetId\": 15,\n            \"lastUpdated\": \"1636463210\",\n            \"name\": \"video_74097ba2-68e3-4f5c-83f1-ac80b4425e04.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"74097ba2-68e3-4f5c-83f1-ac80b4425e04.mp4\",\n            \"thumbnailUrl\": \"74097ba2-68e3-4f5c-83f1-ac80b4425e04.mp4.jpg\",\n            \"gifUrl\": \"74097ba2-68e3-4f5c-83f1-ac80b4425e04.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"6a700d42-f0fc-4698-b65a-c8756dc1665c\",\n            \"filename\": \"beb6da5e-429f-479c-b391-32ec4a41bb49.mp4\",\n            \"mediaAssetId\": 16,\n            \"lastUpdated\": \"1640273703\",\n            \"name\": \"video_beb6da5e-429f-479c-b391-32ec4a41bb49.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"beb6da5e-429f-479c-b391-32ec4a41bb49.mp4\",\n            \"thumbnailUrl\": \"beb6da5e-429f-479c-b391-32ec4a41bb49.mp4.jpg\",\n            \"gifUrl\": \"beb6da5e-429f-479c-b391-32ec4a41bb49.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"3b44b010-c55a-4235-9fcb-f9af3a0f5614\",\n            \"filename\": \"80227911-6e4a-4576-9584-a9cbe9331d3a.mp4\",\n            \"mediaAssetId\": 17,\n            \"lastUpdated\": \"1640274077\",\n            \"name\": \"video_80227911-6e4a-4576-9584-a9cbe9331d3a.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"80227911-6e4a-4576-9584-a9cbe9331d3a.mp4\",\n            \"thumbnailUrl\": \"80227911-6e4a-4576-9584-a9cbe9331d3a.mp4.jpg\",\n            \"gifUrl\": \"80227911-6e4a-4576-9584-a9cbe9331d3a.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"9970a115-264e-42b6-880c-55ef66a3b443\",\n            \"filename\": \"443bc629-3c77-4398-bc8b-e228630d842b.mp4\",\n            \"mediaAssetId\": 18,\n            \"lastUpdated\": \"1640684066\",\n            \"name\": \"video_443bc629-3c77-4398-bc8b-e228630d842b.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"443bc629-3c77-4398-bc8b-e228630d842b.mp4\",\n            \"thumbnailUrl\": \"443bc629-3c77-4398-bc8b-e228630d842b.mp4.jpg\",\n            \"gifUrl\": \"443bc629-3c77-4398-bc8b-e228630d842b.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"c0e68494-dea7-469d-aaf2-d0391f2aa622\",\n            \"filename\": \"443bc629-3c77-4398-bc8b-e228630d842b.mp4\",\n            \"mediaAssetId\": 19,\n            \"lastUpdated\": \"1640692677\",\n            \"name\": \"video_443bc629-3c77-4398-bc8b-e228630d842b.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"443bc629-3c77-4398-bc8b-e228630d842b.mp4\",\n            \"thumbnailUrl\": \"443bc629-3c77-4398-bc8b-e228630d842b.mp4.jpg\",\n            \"gifUrl\": \"443bc629-3c77-4398-bc8b-e228630d842b.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        },\n        {\n            \"uuid\": \"9d600d42-f9ea-4578-9cdd-c9fbd36f1c70\",\n            \"filename\": \"62e966d2-5ff0-4c7a-97fa-20bfa459a33e.mp4\",\n            \"mediaAssetId\": 20,\n            \"lastUpdated\": \"1642611591\",\n            \"name\": \"video_62e966d2-5ff0-4c7a-97fa-20bfa459a33e.mp4\",\n            \"type\": \"video\",\n            \"project\": \"highp\",\n            \"createdBy\": null,\n            \"personal\": true,\n            \"mediaAssetUrl\": \"62e966d2-5ff0-4c7a-97fa-20bfa459a33e.mp4\",\n            \"thumbnailUrl\": \"62e966d2-5ff0-4c7a-97fa-20bfa459a33e.mp4.jpg\",\n            \"gifUrl\": \"62e966d2-5ff0-4c7a-97fa-20bfa459a33e.mp4.gif\",\n            \"metadata\": null,\n            \"labels\": []\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 1765,\n    \"totalPages\": 89,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"d1b6303e-54aa-43e3-b41b-76461ce5f565"},{"name":"Get Personal Videos Audit","id":"194ab4d5-dc73-4d7d-9b8e-1c01970388fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\r\n    \"assetUuids\": [\r\n        \"a3cd5795-6219-4f59-a313-c85353a27cd5\",\r\n        \"0152ed08-aebc-4723-8dd2-06610d0f0330\"\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"testsandbox.highp.me/api/core/mediaassets/auditreport","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"path":["api","core","mediaassets","auditreport"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"194ab4d5-dc73-4d7d-9b8e-1c01970388fa"}],"id":"2c1e2620-7779-48ee-82d8-4635505cbb27","_postman_id":"2c1e2620-7779-48ee-82d8-4635505cbb27","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Message","item":[{"name":"Send Messages","id":"a0782be4-c259-4348-bfbf-bd0af56ac87e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\", //required\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\", //required\n  \"mediaAssetId\" : 1939, //required when campaign have personal video\n  \"force\": true,\n  //required one of contact uuid/email/external_id\n  \"contactUuids\": [\n    \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n  ],\n  \"contactEmails\" : [\n\n  ],\n  \"contactExternalIds\" : [\n    \n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/send","description":"<h1 id=\"send-messages\">Send Messages</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint sends messages to contacts as part of a campaign. It allows you to trigger message delivery to one or more contacts by specifying their UUIDs, emails, or external IDs. The endpoint supports campaigns with personal videos through the <code>mediaAssetId</code> parameter.</p>\n<h2 id=\"request-parameters\">Request Parameters</h2>\n<h3 id=\"body-parameters-json\">Body Parameters (JSON)</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>campaignUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the campaign to send messages from</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the representative/sender</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>number</td>\n<td>Conditional</td>\n<td>Required when the campaign includes a personal video. The ID of the media asset to use</td>\n</tr>\n<tr>\n<td><code>force</code></td>\n<td>boolean</td>\n<td>No</td>\n<td>Force send the message even if it was previously sent</td>\n</tr>\n<tr>\n<td><code>contactUuids</code></td>\n<td>array[string]</td>\n<td>Conditional*</td>\n<td>Array of contact UUIDs to send messages to</td>\n</tr>\n<tr>\n<td><code>contactEmails</code></td>\n<td>array[string]</td>\n<td>Conditional*</td>\n<td>Array of contact email addresses to send messages to</td>\n</tr>\n<tr>\n<td><code>contactExternalIds</code></td>\n<td>array[string]</td>\n<td>Conditional*</td>\n<td>Array of contact external IDs to send messages to</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> At least one of <code>contactUuids</code>, <code>contactEmails</code>, or <code>contactExternalIds</code> must be provided with at least one value.</p>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst sendMessages = async () =&gt; {\n  const url = 'https://testsandbox.highp.me/api/core/message/send';\n  \n  const payload = {\n    campaignUuid: \"78bab367-90a7-4faf-ba47-bb054320d506\",\n    repUuid: \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n    mediaAssetId: 1939,\n    force: true,\n    contactUuids: [\n      \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n    ],\n    contactEmails: [],\n    contactExternalIds: []\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': 'Bearer {{token}}'\n      },\n      body: JSON.stringify(payload)\n    });\n\n    const data = await response.json();\n    console.log('Response:', data);\n    return data;\n  } catch (error) {\n    console.error('Error sending messages:', error);\n    throw error;\n  }\n};\n\nsendMessages();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns an array of message task objects:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"senderId\": 40275,\n    \"senderUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n    \"campaignId\": 1983,\n    \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n    \"receiverId\": \"89685\",\n    \"receiverUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\",\n    \"taskUuid\": \"92776a3c-62af-42a7-afa7-6bfbe7e88a84\",\n    \"token\": \"yzvJCy\",\n    \"status\": \"ordered\",\n    \"flags\": 48,\n    \"errorDescription\": null\n  }\n]\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>senderId</code></td>\n<td>number</td>\n<td>The numeric ID of the sender</td>\n</tr>\n<tr>\n<td><code>senderUuid</code></td>\n<td>string</td>\n<td>The UUID of the sender/representative</td>\n</tr>\n<tr>\n<td><code>campaignId</code></td>\n<td>number</td>\n<td>The numeric ID of the campaign</td>\n</tr>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td>The UUID of the campaign</td>\n</tr>\n<tr>\n<td><code>receiverId</code></td>\n<td>string</td>\n<td>The numeric ID of the receiver/contact</td>\n</tr>\n<tr>\n<td><code>receiverUuid</code></td>\n<td>string</td>\n<td>The UUID of the receiver/contact</td>\n</tr>\n<tr>\n<td><code>taskUuid</code></td>\n<td>string</td>\n<td>The unique identifier for this message task</td>\n</tr>\n<tr>\n<td><code>token</code></td>\n<td>string</td>\n<td>A short token associated with the message</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>The current status of the message (e.g., \"ordered\")</td>\n</tr>\n<tr>\n<td><code>flags</code></td>\n<td>number</td>\n<td>Bitwise flags for message properties</td>\n</tr>\n<tr>\n<td><code>errorDescription</code></td>\n<td>string/null</td>\n<td>Description of any error, or null if successful</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","core","message","send"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"511a6dd0-553d-47f5-9de3-61f125bf1680","name":"Send Messages","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\", //required\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\", //required\n  \"mediaAssetId\" : 1939, //required when campaign have personal video\n  \"force\": true,\n  //required one of contact uuid/email/external_id\n  \"contactUuids\": [\n    \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n  ],\n  \"contactEmails\" : [\n\n  ],\n  \"contactExternalIds\" : [\n    \n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/send"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:46:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:46:39 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-040cab3b87c74cb44669be5107197fa0' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-040cab3b87c74cb44669be5107197fa0' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"senderId\": 40275,\n        \"senderUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n        \"campaignId\": 1983,\n        \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n        \"receiverId\": \"89685\",\n        \"receiverUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\",\n        \"taskUuid\": \"6475e2d0-9302-418c-b0ac-976a1bca1cdc\",\n        \"token\": \"xMxJKm\",\n        \"status\": \"ordered\",\n        \"flags\": 48,\n        \"errorDescription\": null\n    }\n]"}],"_postman_id":"a0782be4-c259-4348-bfbf-bd0af56ac87e"},{"name":"Create Contact & Send Message","id":"129be233-a24d-4317-b825-4f2cc70a5e46","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\", //required\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\", //required\n  \"mediaAssetId\" : 1939, //required when campaign have personal video\n  // send message to one of uuuid/email/extenral_id or create contact when not found\n  \"contactEmail\": \"nowykontkat900909@niepodam.pl\",\n  \"contactFirstName\": \"New\",\n  \"contactLastName\": \"Kon\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/create-contact-and-send","description":"<h1 id=\"create-contact--send-message\">Create Contact &amp; Send Message</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates a new contact (if not found) and sends a message to them as part of a campaign. The contact can be identified by UUID, email, or external ID. If the contact doesn't exist, it will be created with the provided information.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/message/create-contact-and-send</code></li>\n<li><strong>Authentication:</strong> Bearer token (via <code>{{token}}</code> variable)</li>\n</ul>\n<h2 id=\"headers\">Headers</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\nContent-Type: application/json\n</code></pre><h2 id=\"request-body-parameters\">Request Body Parameters</h2>\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>campaignUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the campaign to send the message from</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the representative sending the message</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Conditional</td>\n<td>Required when the campaign includes a personal video. The ID of the media asset to use</td>\n</tr>\n<tr>\n<td><code>contactEmail</code></td>\n<td>string</td>\n<td>No*</td>\n<td>The email address of the contact. Used to identify or create the contact</td>\n</tr>\n<tr>\n<td><code>contactFirstName</code></td>\n<td>string</td>\n<td>No</td>\n<td>The first name of the contact (used when creating a new contact)</td>\n</tr>\n<tr>\n<td><code>contactLastName</code></td>\n<td>string</td>\n<td>No</td>\n<td>The last name of the contact (used when creating a new contact)</td>\n</tr>\n</tbody>\n</table>\n</div><p>*Note: At least one identifier (UUID, email, or external_id) must be provided to send the message or create the contact.</p>\n<h2 id=\"request-body-example\">Request Body Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n  \"mediaAssetId\": 1939,\n  \"contactEmail\": \"contact@example.com\",\n  \"contactFirstName\": \"John\",\n  \"contactLastName\": \"Doe\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.highp.me'; // Replace with your tenant domain\nconst token = 'your-bearer-token'; // Replace with your authentication token\n\nconst requestBody = {\n  campaignUuid: '78bab367-90a7-4faf-ba47-bb054320d506',\n  repUuid: 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea',\n  mediaAssetId: 1939,\n  contactEmail: 'contact@example.com',\n  contactFirstName: 'John',\n  contactLastName: 'Doe'\n};\n\nfetch(`https://${tenantDomain}/api/core/message/create-contact-and-send`, {\n  method: 'POST',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify(requestBody)\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Success:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<p>The response will contain information about the created/updated contact and the sent message. Check the saved examples in this request for specific response structures based on different scenarios.</p>\n<h3 id=\"expected-response-fields\">Expected Response Fields</h3>\n<ul>\n<li>Contact information (UUID, email, name)</li>\n<li>Message delivery status</li>\n<li>Campaign and representative details</li>\n<li>Timestamp information</li>\n</ul>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ol>\n<li><strong>Create and Send:</strong> Create a new contact and immediately send them a campaign message</li>\n<li><strong>Update and Send:</strong> Update existing contact information and send a message</li>\n<li><strong>Personal Video Campaigns:</strong> Send personalized video messages by including the <code>mediaAssetId</code></li>\n</ol>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The endpoint will search for existing contacts by the provided identifier (email, UUID, or external_id)</li>\n<li>If no contact is found, a new contact will be created with the provided information</li>\n<li>The <code>mediaAssetId</code> is only required when the campaign is configured to use personal videos</li>\n<li>Ensure the <code>repUuid</code> has permission to send messages for the specified campaign</li>\n</ul>\n","urlObject":{"path":["api","core","message","create-contact-and-send"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"2a12b69b-8416-4a4f-8b29-8b3eb2b073a7","name":"Create Contact & Send Message","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\", //required\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\", //required\n  \"mediaAssetId\" : 1939, //required when campaign have personal video\n  // send message to one of uuuid/email/extenral_id or create contact when not found\n  \"contactEmail\": \"nowykontkat900909@niepodam.pl\",\n  \"contactFirstName\": \"New\",\n  \"contactLastName\": \"Kon\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/create-contact-and-send"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:38:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:38:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-922d72625a9c8575f60d88d33fa93cbc' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-922d72625a9c8575f60d88d33fa93cbc' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"senderId\": 40275,\n    \"senderUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n    \"campaignId\": 1983,\n    \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n    \"receiverId\": \"89685\",\n    \"receiverUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\",\n    \"taskUuid\": \"96a8acda-f64f-46d3-b3a2-21395b476b41\",\n    \"token\": \"ZcTUIt\",\n    \"status\": \"ordered\",\n    \"flags\": 48,\n    \"errorDescription\": null\n}"}],"_postman_id":"129be233-a24d-4317-b825-4f2cc70a5e46"},{"name":"Resend Message","id":"2c37f30b-d603-49c2-919a-35974d2e7608","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"url":"testsandbox.highp.me/api/core/message/:message-token/resend?channels=CampaignSmsApiChannel,CampaignEmailChannel","description":"<h2 id=\"resend-message\">Resend Message</h2>\n<p>This endpoint allows you to resend a previously sent message through specified communication channels. This is useful when you need to retry message delivery or send the same message through different channels.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>tenant-domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</td>\n</tr>\n<tr>\n<td><code>message-token</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique token identifier for the message you want to resend</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>channels</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Comma-separated list of channels through which to resend the message. Available channels: <code>CampaignSmsApiChannel</code>, <code>CampaignEmailChannel</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"channel-options\">Channel Options:</h3>\n<ul>\n<li><strong>CampaignSmsApiChannel</strong> - Resend the message via SMS</li>\n<li><strong>CampaignEmailChannel</strong> - Resend the message via Email</li>\n</ul>\n<p>You can specify one or multiple channels by separating them with commas (e.g., <code>CampaignSmsApiChannel,CampaignEmailChannel</code>).</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {your_access_token}\n</code></pre><hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the message is successfully queued for resending, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Application-Context: coreserver</code></li>\n</ul>\n<hr />\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me';\nconst messageToken = 'your-message-token-here';\nconst accessToken = 'your-access-token-here';\n\nconst resendMessage = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/message/${messageToken}/resend?channels=CampaignSmsApiChannel,CampaignEmailChannel`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (response.ok) {\n      console.log('Message resend request successful');\n      console.log('Status:', response.status);\n    } else {\n      console.error('Failed to resend message:', response.status, response.statusText);\n    }\n  } catch (error) {\n    console.error('Error resending message:', error);\n  }\n};\n\nresendMessage();\n</code></pre>\n<hr />\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Retry Failed Deliveries</strong>: Resend messages that failed to deliver initially</li>\n<li><strong>Multi-Channel Distribution</strong>: Send the same message through multiple channels (SMS and Email)</li>\n<li><strong>Manual Retry</strong>: Manually trigger message resend for specific recipients</li>\n<li><strong>Channel Switching</strong>: Resend a message through a different channel than originally used</li>\n</ul>\n<hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The endpoint returns immediately after queuing the message for resend</li>\n<li>Actual delivery happens asynchronously</li>\n<li>The original message content and recipients are preserved</li>\n<li>You can select specific channels for resending, even if they differ from the original send channels</li>\n</ul>\n","urlObject":{"path":["api","core","message",":message-token","resend"],"host":["testsandbox.highp.me"],"query":[{"key":"channels","value":"CampaignSmsApiChannel,CampaignEmailChannel"}],"variable":[{"type":"any","value":"{{message-token}}","key":"message-token"}]}},"response":[{"id":"d96f2d98-238d-43e1-a3f3-11a37d8da0ba","name":"Resend Message","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/message/:message-token/resend?channels=CampaignSmsApiChannel,CampaignEmailChannel","host":["testsandbox.highp.me"],"path":["api","core","message",":message-token","resend"],"query":[{"key":"channels","value":"CampaignSmsApiChannel,CampaignEmailChannel"}],"variable":[{"key":"message-token","value":"{{message-token}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:40:51 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:40:50 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-f36d9de70cf1fc621d7ccf7c654dc0b4' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-f36d9de70cf1fc621d7ccf7c654dc0b4' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"2c37f30b-d603-49c2-919a-35974d2e7608"},{"name":"Revoke","id":"1e2984fd-656e-48ec-923f-dbb89c41a99e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n  \"mediaAssetId\": 1939,\n  \"force\": true,\n  \"contactUuids\": [\n    \"78bab367-90a7-4faf-ba47-bb054320d506\"\n  ],\n  \"contactEmails\": [],\n  \"contactExternalIds\": []\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/ZcTUIt/revoke?revoke=true","description":"<h1 id=\"revoke-message\">Revoke Message</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint revokes a message that was previously sent to contacts. When a message is revoked, it will be removed from the recipients' message queues or marked as revoked, preventing further delivery or access.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /api/core/message/{messageId}/revoke\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>revoke</code></td>\n<td>boolean</td>\n<td>Yes</td>\n<td>Must be set to <code>true</code> to confirm the revocation action. This acts as a safety mechanism to prevent accidental revocations.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be a JSON object with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the campaign associated with the message being revoked.</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the representative (user) who is performing the revocation.</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>The ID of the media asset associated with the message being revoked.</td>\n</tr>\n<tr>\n<td><code>force</code></td>\n<td>boolean</td>\n<td>Yes</td>\n<td>When set to <code>true</code>, forces the revocation even if the message has already been delivered or viewed.</td>\n</tr>\n<tr>\n<td><code>contactUuids</code></td>\n<td>array of strings</td>\n<td>No</td>\n<td>An array of contact UUIDs to revoke the message from. If empty, the revocation applies based on other criteria.</td>\n</tr>\n<tr>\n<td><code>contactEmails</code></td>\n<td>array of strings</td>\n<td>No</td>\n<td>An array of contact email addresses to revoke the message from. Can be used as an alternative to <code>contactUuids</code>.</td>\n</tr>\n<tr>\n<td><code>contactExternalIds</code></td>\n<td>array of strings</td>\n<td>No</td>\n<td>An array of external contact IDs to revoke the message from. Useful when integrating with external systems.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n  \"mediaAssetId\": 1939,\n  \"force\": true,\n  \"contactUuids\": [\"78bab367-90a7-4faf-ba47-bb054320d506\"],\n  \"contactEmails\": [],\n  \"contactExternalIds\": []\n}\n</code></pre>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {your_access_token}\n</code></pre><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst revokeMessage = async () =&gt; {\n  const tenantDomain = 'your-tenant.highp.me';\n  const messageId = 'ZcTUIt';\n  const accessToken = 'your_access_token_here';\n  \n  const url = `https://${tenantDomain}/api/core/message/${messageId}/revoke?revoke=true`;\n  \n  const requestBody = {\n    campaignUuid: '78bab367-90a7-4faf-ba47-bb054320d506',\n    repUuid: 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea',\n    mediaAssetId: 1939,\n    force: true,\n    contactUuids: ['78bab367-90a7-4faf-ba47-bb054320d506'],\n    contactEmails: [],\n    contactExternalIds: []\n  };\n  \n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${accessToken}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    \n    if (response.ok) {\n      console.log('Message revoked successfully');\n      console.log('Status:', response.status, response.statusText);\n    } else {\n      console.error('Failed to revoke message:', response.status, response.statusText);\n      const errorText = await response.text();\n      console.error('Error details:', errorText);\n    }\n  } catch (error) {\n    console.error('Error revoking message:', error);\n  }\n};\n\nrevokeMessage();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the message is successfully revoked, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n<li><code>X-XSS-Protection: 1; mode=block</code></li>\n</ul>\n<h3 id=\"example-success-response\">Example Success Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP/1.1 200 OK\nContent-Length: 0\nCache-Control: no-cache\n</code></pre><p>The empty response body indicates that the revocation was processed successfully. No additional data is returned.</p>\n<h2 id=\"error-responses\">Error Responses</h2>\n<p>Possible error responses include:</p>\n<ul>\n<li><strong>400 Bad Request</strong> - Invalid request parameters or missing required fields</li>\n<li><strong>401 Unauthorized</strong> - Missing or invalid authentication token</li>\n<li><strong>403 Forbidden</strong> - Insufficient permissions to revoke the message</li>\n<li><strong>404 Not Found</strong> - Message ID not found</li>\n<li><strong>500 Internal Server Error</strong> - Server-side error during revocation</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>force</code> parameter should be used with caution as it will revoke messages even if they have been delivered or viewed by recipients.</li>\n<li>At least one of <code>contactUuids</code>, <code>contactEmails</code>, or <code>contactExternalIds</code> should be provided to specify which contacts the message should be revoked from.</li>\n<li>The revocation is permanent and cannot be undone.</li>\n<li>The message ID in the URL path (<code>ZcTUIt</code> in the example) must be the actual ID of the message you want to revoke.</li>\n</ul>\n","urlObject":{"path":["api","core","message","ZcTUIt","revoke"],"host":["testsandbox.highp.me"],"query":[{"key":"revoke","value":"true"}],"variable":[]}},"response":[{"id":"b187f192-413a-4061-9e5e-32a072fc6b68","name":"Revoke","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n  \"mediaAssetId\": 1939,\n  \"force\": true,\n  \"contactUuids\": [\n    \"78bab367-90a7-4faf-ba47-bb054320d506\"\n  ],\n  \"contactEmails\": [],\n  \"contactExternalIds\": []\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/message/ZcTUIt/revoke?revoke=true","host":["testsandbox.highp.me"],"path":["api","core","message","ZcTUIt","revoke"],"query":[{"key":"revoke","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:43:34 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:43:33 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-df4ea350d50886a2a7fd7f7d037e81f4' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-df4ea350d50886a2a7fd7f7d037e81f4' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"1e2984fd-656e-48ec-923f-dbb89c41a99e"},{"name":"Send Test Message","id":"7a3ccb37-cc47-496c-9639-6bc5111ec451","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n   \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\", //required\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\", //required\n  \"mediaAssetId\" : 1939, //required when campaign have personal video\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/send-test","description":"<h2 id=\"overview\">Overview</h2>\n<p>The <strong>Send Test Message</strong> endpoint allows you to send a test message for a specific campaign. This is useful for testing campaign configurations, verifying message delivery, and previewing how messages will appear to recipients before sending them to your entire contact list.</p>\n<p>Test messages are marked with a special <code>ordered-test</code> status to distinguish them from production messages.</p>\n<hr />\n<h2 id=\"request-details\">Request Details</h2>\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST https://testsandbox.highp.me/api/core/message/send-test\n</code></pre><h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h3 id=\"request-body-parameters\">Request Body Parameters</h3>\n<p>The request body must be in JSON format with the following parameters:</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>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the campaign you want to test. This campaign must exist in your tenant.</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier of the representative (sender) who will send the test message.</td>\n</tr>\n<tr>\n<td><code>mediaAssetId</code></td>\n<td>integer</td>\n<td><strong>Conditional</strong></td>\n<td>The ID of the media asset to include in the message. <strong>Required when the campaign includes a personal video</strong>.</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>No</td>\n<td>The unique identifier of the contact (recipient) who will receive the test message. If not provided, the test message may be sent to a default test contact.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n  \"mediaAssetId\": 1939,\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}\n</code></pre>\n<hr />\n<h2 id=\"nodejs-example\">Node.js Example</h2>\n<p>Here's how to call this endpoint using Node.js with the native <code>fetch</code> API:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const sendTestMessage = async () =&gt; {\n  const url = 'https://your-tenant-domain.highp.me/api/core/message/send-test';\n  \n  const requestBody = {\n    campaignUuid: '78bab367-90a7-4faf-ba47-bb054320d506',\n    repUuid: 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea',\n    mediaAssetId: 1939,\n    contactUuid: '58caa5c6-6419-4ed6-b05a-3faae5134d4b'\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': 'Bearer YOUR_ACCESS_TOKEN'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Test message sent successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error sending test message:', error);\n    throw error;\n  }\n};\n\n// Call the function\nsendTestMessage();\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the test message is successfully queued, the API returns a JSON object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"senderId\": 40275,\n  \"senderUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n  \"campaignId\": 1983,\n  \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n  \"receiverId\": \"89685\",\n  \"receiverUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\",\n  \"taskUuid\": \"c964c7fe-14af-4720-9e59-b2fe23e6318d\",\n  \"token\": \"RJjrAq\",\n  \"status\": \"ordered-test\",\n  \"flags\": 48,\n  \"errorDescription\": null\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>senderId</code></td>\n<td>integer</td>\n<td>The internal ID of the sender (representative).</td>\n</tr>\n<tr>\n<td><code>senderUuid</code></td>\n<td>string (UUID)</td>\n<td>The UUID of the sender, matching the <code>repUuid</code> from the request.</td>\n</tr>\n<tr>\n<td><code>campaignId</code></td>\n<td>integer</td>\n<td>The internal ID of the campaign.</td>\n</tr>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td>The UUID of the campaign, matching the request parameter.</td>\n</tr>\n<tr>\n<td><code>receiverId</code></td>\n<td>string</td>\n<td>The internal ID of the receiver (contact).</td>\n</tr>\n<tr>\n<td><code>receiverUuid</code></td>\n<td>string (UUID)</td>\n<td>The UUID of the receiver, matching the <code>contactUuid</code> from the request.</td>\n</tr>\n<tr>\n<td><code>taskUuid</code></td>\n<td>string (UUID)</td>\n<td>A unique identifier for this message task. Use this to track the message status.</td>\n</tr>\n<tr>\n<td><code>token</code></td>\n<td>string</td>\n<td>A short token identifier for the message.</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>The status of the message. For test messages, this will be <code>\"ordered-test\"</code>.</td>\n</tr>\n<tr>\n<td><code>flags</code></td>\n<td>integer</td>\n<td>Internal flags associated with the message processing.</td>\n</tr>\n<tr>\n<td><code>errorDescription</code></td>\n<td>string | null</td>\n<td>If an error occurred, this field contains the error description. <code>null</code> indicates no errors.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><strong>200 OK</strong>: Test message was successfully queued and will be sent.</li>\n<li><strong>400 Bad Request</strong>: Invalid request body or missing required parameters.</li>\n<li><strong>401 Unauthorized</strong>: Missing or invalid authentication token.</li>\n<li><strong>404 Not Found</strong>: Campaign, representative, or contact not found.</li>\n<li><strong>500 Internal Server Error</strong>: Server error occurred while processing the request.</li>\n</ul>\n<hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Test messages are marked with the <code>ordered-test</code> status to differentiate them from production messages.</li>\n<li>The <code>taskUuid</code> returned in the response can be used to track the delivery status of the test message.</li>\n<li>Ensure that the campaign, representative, and contact all belong to the same tenant.</li>\n<li>If the campaign includes personal video content, the <code>mediaAssetId</code> parameter is required.</li>\n</ul>\n","urlObject":{"path":["api","core","message","send-test"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"2b32f690-782f-4ed7-b312-a1d725597100","name":"Send Test Message","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n   \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\", //required\n  \"repUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\", //required\n  \"mediaAssetId\" : 1939, //required when campaign have personal video\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/send-test"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:47:29 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:47:28 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-c502e149e664d501cf7d32b846b9c73b' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-c502e149e664d501cf7d32b846b9c73b' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"senderId\": 40275,\n    \"senderUuid\": \"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea\",\n    \"campaignId\": 1983,\n    \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n    \"receiverId\": \"89685\",\n    \"receiverUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\",\n    \"taskUuid\": \"c964c7fe-14af-4720-9e59-b2fe23e6318d\",\n    \"token\": \"RJjrAq\",\n    \"status\": \"ordered-test\",\n    \"flags\": 48,\n    \"errorDescription\": null\n}"}],"_postman_id":"7a3ccb37-cc47-496c-9639-6bc5111ec451"},{"name":"Get Token for Existing Task","id":"34fe5b60-857a-401c-b78f-4cc5249b995e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/message/task/{{taskUuid}}/token","description":"<p>Retrieve the token for an existing task by UUID. If the task already has a token it is returned immediately with no DB write. If not, a token is generated silently (kafka_event=false).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"path":["api","core","message","task","{{taskUuid}}","token"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"1b86ebc0-90fc-40e9-a221-abc27310b922","name":"200 OK","originalRequest":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/message/task/3fa85f64-5717-4562-b3fc-2c963f66afa6/token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"token\": \"AbCdEf\"\n}"},{"id":"df6c79b8-0084-4a56-8409-c7b908c1b918","name":"404 Not Found","originalRequest":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/message/task/00000000-0000-0000-0000-000000000000/token"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"CORE.MESSAGE_TASK_NOT_FOUND\",\n  \"message\": \"Message task not found\",\n  \"detail\": \"00000000-0000-0000-0000-000000000000\"\n}"},{"id":"2d9cf49b-bed0-4036-9efc-2f81ec1f2503","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/message/task/3fa85f64-5717-4562-b3fc-2c963f66afa6/token"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"unauthorized\",\n  \"message\": \"Full authentication is required to access this resource\"\n}"}],"_postman_id":"34fe5b60-857a-401c-b78f-4cc5249b995e"},{"name":"Create Task with Token","id":"1040146e-229c-4b3b-ba25-0c62ff8183ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"\",\n  \"repUuid\": \"{{repUuid}}\",\n  \"contactUuids\": [\"{{contactUuid}}\"]\n}"},"url":"testsandbox.highp.me/api/core/message/task/create-with-token","description":"<p>Create a new campaign task and receive the token immediately. kafka_event=false — no email, SMS or WhatsApp is sent by Highp. The caller constructs the HighP URL: {tenantDomain}/t/{token}-email</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"path":["api","core","message","task","create-with-token"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"ada2c54b-d04a-4203-b554-ee64fbc2aef1","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"campaign-uuid\",\n  \"repUuid\": \"rep-uuid\",\n  \"contactUuids\": [\"contact-uuid\"]\n}"},"url":"testsandbox.highp.me/api/core/message/task/create-with-token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"taskUuid\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"token\": \"AbCdEf\"\n  }\n]"},{"id":"7dcc62de-34a2-4784-8630-e6e9a43dd37e","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"testsandbox.highp.me/api/core/message/task/create-with-token"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"unauthorized\",\n  \"message\": \"Full authentication is required to access this resource\"\n}"},{"id":"582e8b8b-84ac-4a7a-afb7-e11d3fb48610","name":"404 Not Found — Campaign or Rep not found","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"campaignUuid\": \"00000000-0000-0000-0000-000000000000\",\n  \"repUuid\": \"rep-uuid\",\n  \"contactUuids\": [\"contact-uuid\"]\n}"},"url":"testsandbox.highp.me/api/core/message/task/create-with-token"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"CORE.CAMPAIGN_NOT_FOUND\",\n  \"message\": \"Campaign not found\",\n  \"detail\": \"00000000-0000-0000-0000-000000000000\"\n}"}],"_postman_id":"1040146e-229c-4b3b-ba25-0c62ff8183ce"},{"name":"Update Configuration","id":"6afb5669-0c10-43fb-8bb9-ff9f91b3ed17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"taskToken\": \"ZcTUIt\",\n  \"configuration\": \"json_as_string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/configuration","description":"<h1 id=\"update-message-configuration\">Update Message Configuration</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint updates the configuration for a specific message task within the Highp platform. It allows you to modify the configuration settings associated with a message identified by its task token.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>PUT</code></li>\n<li><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/message/configuration</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"url-variables\">URL Variables</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>testsandbox.highp.me</code></td>\n<td>Your Highp tenant domain</td>\n<td><code>testsandbox.highp.me</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>{{token}}</code> variable should contain your valid Highp API access token.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be sent as JSON with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"taskToken\": \"string\",\n  \"configuration\": \"string\"\n}\n</code></pre>\n<h3 id=\"parameters\">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>taskToken</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Unique identifier token for the message task to be updated</td>\n</tr>\n<tr>\n<td><code>configuration</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>JSON configuration data as a string. Contains the updated configuration settings for the message</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"taskToken\": \"ZcTUIt\",\n    \"configuration\": \"json_as_string\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const updateMessageConfiguration = async (taskToken, configuration) =&gt; {\n  const tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\n  const token = 'your_access_token_here'; // Replace with your access token\n  \n  const url = `https://${tenantDomain}/api/core/message/configuration`;\n  \n  const requestBody = {\n    taskToken: taskToken,\n    configuration: configuration\n  };\n  \n  try {\n    const response = await fetch(url, {\n      method: 'PUT',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('Configuration updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating configuration:', error);\n    throw error;\n  }\n};\n\n// Usage example\nupdateMessageConfiguration('ZcTUIt', 'json_as_string')\n  .then(result =&gt; console.log(result))\n  .catch(error =&gt; console.error(error));\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the configuration is successfully updated, the API returns the complete message object with the updated configuration.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"senderId\": \"number\",\n  \"campaignId\": \"number\",\n  \"receiverId\": \"number\",\n  \"token\": \"string\",\n  \"status\": \"string\",\n  \"scheduledSentAt\": \"string | null\",\n  \"configuration\": \"string\"\n}\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>senderId</code></td>\n<td>number</td>\n<td>ID of the message sender</td>\n</tr>\n<tr>\n<td><code>campaignId</code></td>\n<td>number</td>\n<td>ID of the campaign this message belongs to</td>\n</tr>\n<tr>\n<td><code>receiverId</code></td>\n<td>number</td>\n<td>ID of the message receiver</td>\n</tr>\n<tr>\n<td><code>token</code></td>\n<td>string</td>\n<td>Task token identifying this message</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Current status of the message (e.g., \"sent\", \"pending\", \"failed\")</td>\n</tr>\n<tr>\n<td><code>scheduledSentAt</code></td>\n<td>string | null</td>\n<td>Scheduled send timestamp, or null if not scheduled</td>\n</tr>\n<tr>\n<td><code>configuration</code></td>\n<td>string</td>\n<td>The updated configuration data as a string</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"senderId\": 40275,\n    \"campaignId\": 1983,\n    \"receiverId\": 89685,\n    \"token\": \"ZcTUIt\",\n    \"status\": \"sent\",\n    \"scheduledSentAt\": null,\n    \"configuration\": \"json_as_string\"\n}\n</code></pre>\n<h2 id=\"status-codes\">Status Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Configuration successfully updated. Returns the updated message object</td>\n</tr>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Invalid request body or missing required parameters</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Authenticated user doesn't have permission to update this configuration</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Message with the specified taskToken not found</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>configuration</code> parameter accepts a JSON string, allowing flexible configuration data structures</li>\n<li>Ensure the <code>taskToken</code> corresponds to an existing message task in your tenant</li>\n<li>The response includes the complete message object, allowing you to verify the update was successful</li>\n<li>All timestamps in responses follow ISO 8601 format</li>\n</ul>\n","urlObject":{"path":["api","core","message","configuration"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"ac77cffe-1a52-4984-8caf-92c50f5c3274","name":"Update Configuration","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"taskToken\": \"ZcTUIt\",\n  \"configuration\": \"json_as_string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/configuration"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:44:34 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:44:33 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-f0165f8083f62dacb7160701f563d26c' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-f0165f8083f62dacb7160701f563d26c' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"senderId\": 40275,\n    \"campaignId\": 1983,\n    \"receiverId\": 89685,\n    \"token\": \"ZcTUIt\",\n    \"status\": \"sent\",\n    \"scheduledSentAt\": null,\n    \"configuration\": \"json_as_string\"\n}"}],"_postman_id":"6afb5669-0c10-43fb-8bb9-ff9f91b3ed17"},{"name":"Get All","id":"4722e3ae-2558-45d5-bd4a-f00b09827a4a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/all?campaignUuid={{campaign-uuid}}&status=&token=&repSearch=&repUuid=&contactSearch=&contactUuid=&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-24 00:00:00&page=0&size=20&sortBy=lastUpdatedUTC&sortDirection=asc","description":"<h1 id=\"get-apicoremessageall\">GET /api/core/message/all</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves all messages for a specific campaign with pagination and sorting capabilities. It returns a paginated list of messages including their status, contact information, representative details, and metadata.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a Bearer token. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request\">Request</h2>\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://testsandbox.highp.me/api/core/message/all\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>The UUID of the campaign to retrieve messages for</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter messages by status (e.g., SENT, PENDING, FAILED). Leave empty to retrieve all statuses</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td><strong>Yes</strong></td>\n<td>Page number for pagination (zero-based index)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td><strong>Yes</strong></td>\n<td>Number of items per page (e.g., 20)</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>Field to sort the results by (e.g., <code>lastUpdatedUTC</code>, <code>createdAtUTC</code>)</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>Sort direction: <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.highp.me';\nconst campaignUuid = 'your-campaign-uuid';\nconst token = 'your-bearer-token';\n\nconst url = `https://${tenantDomain}/api/core/message/all?campaignUuid=${campaignUuid}&amp;status=&amp;page=0&amp;size=20&amp;sortBy=lastUpdatedUTC&amp;sortDirection=asc`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Messages retrieved:', data);\n    console.log('Total elements:', data.totalElements);\n    console.log('Total pages:', data.totalPages);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching messages:', error);\n  });\n</code></pre>\n<h2 id=\"response-schema\">Response Schema</h2>\n<p>The response is a JSON object with paginated message data:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": 0,\n      \"uuid\": \"string\",\n      \"token\": \"string\",\n      \"status\": \"string\",\n      \"scheduledSentAt\": \"string | null\",\n      \"configuration\": \"object | null\",\n      \"smsStatus\": \"string | null\",\n      \"smsStatusDate\": \"string | null\",\n      \"videoExists\": true,\n      \"flags\": 0,\n      \"repName\": \"string\",\n      \"repLastname\": \"string\",\n      \"repEmail\": \"string\",\n      \"repPhone\": \"string\",\n      \"contactName\": \"string\",\n      \"contactLastname\": \"string\",\n      \"contactEmail\": \"string\",\n      \"contactPhone\": \"string\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": true,\n      \"sorted\": true,\n      \"unsorted\": true\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 0,\n    \"paged\": true,\n    \"unpaged\": true\n  },\n  \"totalElements\": 0,\n  \"totalPages\": 0,\n  \"last\": true,\n  \"size\": 0,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": true,\n    \"sorted\": true,\n    \"unsorted\": true\n  },\n  \"numberOfElements\": 0,\n  \"first\": true,\n  \"empty\": true\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array-message-objects\">Content Array (Message Objects)</h4>\n<ul>\n<li><code>id</code> - Unique message identifier</li>\n<li><code>uuid</code> - Message UUID</li>\n<li><code>token</code> - Message token</li>\n<li><code>status</code> - Current status of the message</li>\n<li><code>scheduledSentAt</code> - Scheduled send timestamp (nullable)</li>\n<li><code>configuration</code> - Message configuration object (nullable)</li>\n<li><code>smsStatus</code> - SMS delivery status (nullable)</li>\n<li><code>smsStatusDate</code> - SMS status update timestamp (nullable)</li>\n<li><code>videoExists</code> - Boolean indicating if video content exists</li>\n<li><code>flags</code> - Message flags</li>\n<li><code>repName</code> - Representative's first name</li>\n<li><code>repLastname</code> - Representative's last name</li>\n<li><code>repEmail</code> - Representative's email address</li>\n<li><code>repPhone</code> - Representative's phone number</li>\n<li><code>contactName</code> - Contact's first name</li>\n<li><code>contactLastname</code> - Contact's last name</li>\n<li><code>contactEmail</code> - Contact's email address</li>\n<li><code>contactPhone</code> - Contact's phone number</li>\n</ul>\n<h4 id=\"pagination-metadata\">Pagination Metadata</h4>\n<ul>\n<li><code>totalElements</code> - Total number of messages across all pages</li>\n<li><code>totalPages</code> - Total number of pages available</li>\n<li><code>size</code> - Number of items per page</li>\n<li><code>number</code> - Current page number</li>\n<li><code>first</code> - Boolean indicating if this is the first page</li>\n<li><code>last</code> - Boolean indicating if this is the last page</li>\n<li><code>empty</code> - Boolean indicating if the result set is empty</li>\n<li><code>numberOfElements</code> - Number of elements in the current page</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>campaignUuid</code> parameter is required and should match an existing campaign</li>\n<li>Use the pagination parameters (<code>page</code>, <code>size</code>) to handle large result sets efficiently</li>\n<li>The <code>status</code> parameter can be left empty to retrieve messages of all statuses</li>\n<li>Sort by <code>lastUpdatedUTC</code> or <code>createdAtUTC</code> to order results by timestamp</li>\n<li>The response includes comprehensive pagination metadata for building UI pagination controls</li>\n</ul>\n","urlObject":{"path":["api","core","message","all"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>uuid1,uuid2</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"status","value":""},{"key":"token","value":""},{"key":"repSearch","value":""},{"key":"repUuid","value":""},{"key":"contactSearch","value":""},{"key":"contactUuid","value":""},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-24 00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUpdatedUTC"},{"key":"sortDirection","value":"asc"}],"variable":[]}},"response":[{"id":"6cb8f190-db0e-4d7b-a87c-0b29acc42b97","name":"Get All","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/message/all?campaignUuid={{campaign-uuid}}&status=&token=&repSearch=&repUuid=&contactSearch=&contactUuid=&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-24 00:00:00&page=0&size=20&sortBy=lastUpdatedUTC&sortDirection=asc","host":["testsandbox.highp.me"],"path":["api","core","message","all"],"query":[{"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"status","value":""},{"key":"token","value":""},{"key":"repSearch","value":""},{"key":"repUuid","value":""},{"key":"contactSearch","value":""},{"key":"contactUuid","value":""},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-24 00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUpdatedUTC"},{"key":"sortDirection","value":"asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:32:31 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:32:30 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-68f9eee214544ef06a29f6a041577ed7' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-68f9eee214544ef06a29f6a041577ed7' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 1632261,\n            \"uuid\": \"fa69c328-3fd2-47e0-b193-0537fb5db257\",\n            \"token\": \"I7Gf5P\",\n            \"status\": \"ordered\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 0,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"WojciechIE\",\n            \"contactLastname\": \"BojarskiIE\",\n            \"contactEmail\": \"nowytest988+32@gmail.com\",\n            \"contactPhone\": \"48797259811\",\n            \"contactUuid\": \"20bba90b-c2b6-4f04-9fda-bd74ef83df08\",\n            \"createdAtUTC\": \"2025-11-18T11:39:11Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763465950\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632262,\n            \"uuid\": \"f936091d-6be9-48a6-bcae-4b31112f10ab\",\n            \"token\": \"RAjdrD\",\n            \"status\": \"ordered\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 0,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"124124124\",\n            \"contactLastname\": \"124124124\",\n            \"contactEmail\": \"asfasfsssseds@niepodam.pl\",\n            \"contactPhone\": \"+48797259811\",\n            \"contactUuid\": \"0c87f63b-53ef-4e14-bf99-e5bfa7d0f748\",\n            \"createdAtUTC\": \"2025-11-18T11:39:11Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763465950\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632263,\n            \"uuid\": \"7968974a-84ce-44c1-9a9c-12728e32278f\",\n            \"token\": \"NzTVIW\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": true,\n            \"flags\": 32,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": null,\n            \"contactLastname\": null,\n            \"contactEmail\": null,\n            \"contactPhone\": null,\n            \"contactUuid\": \"da2c91d5-c6fe-4564-be0b-5e5972d26ad5\",\n            \"createdAtUTC\": \"2025-11-18T11:52:52Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763466807\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632266,\n            \"uuid\": \"71182aa3-3019-4d63-ab5f-88395f21bc20\",\n            \"token\": \"bSafhG\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 56,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Wojjj999\",\n            \"contactLastname\": \"Bojjjj\",\n            \"contactEmail\": \"bojowojo09876543@niepodam.pl\",\n            \"contactPhone\": \"+48797259811\",\n            \"contactUuid\": \"48bcda9f-1fc2-485e-ae0d-1ac174732e36\",\n            \"createdAtUTC\": \"2025-11-18T12:58:16Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763470744\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632267,\n            \"uuid\": \"0d2490d7-38ab-4b29-a8f1-4b44bc64caae\",\n            \"token\": \"rziXkG\",\n            \"status\": \"sent\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": true,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Karolina\",\n            \"contactLastname\": \"Dąbrowski\",\n            \"contactEmail\": \"karolina.dąbrowski84@niepodam.pl\",\n            \"contactPhone\": \"650162776\",\n            \"contactUuid\": \"a90770d8-b4f9-4a4b-bab4-5ec1f18ce689\",\n            \"createdAtUTC\": \"2025-11-18T13:01:48Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763470909\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632268,\n            \"uuid\": \"26ab6697-210c-45ca-8a89-4bfd7e99988d\",\n            \"token\": \"YKmrTD\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": true,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Karolina\",\n            \"contactLastname\": \"Dąbrowski\",\n            \"contactEmail\": \"karolina.dąbrowski84@niepodam.pl\",\n            \"contactPhone\": \"650162776\",\n            \"contactUuid\": \"a90770d8-b4f9-4a4b-bab4-5ec1f18ce689\",\n            \"createdAtUTC\": \"2025-11-18T13:02:41Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763470974\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632271,\n            \"uuid\": \"8c89191f-64bc-46a6-864b-233693110744\",\n            \"token\": \"LsKhrH\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": true,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"4124124\",\n            \"contactLastname\": \"214241\",\n            \"contactEmail\": \"lpopopopop@niepodam.pl\",\n            \"contactPhone\": \"48214242121\",\n            \"contactUuid\": \"f20fe56e-b4c1-469a-a3a6-367cdb030770\",\n            \"createdAtUTC\": \"2025-11-20T09:45:07Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763631920\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632273,\n            \"uuid\": \"a4906135-6a6e-484b-9321-e7cddcfce1f9\",\n            \"token\": \"NWeUNa\",\n            \"status\": \"sent\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Ewa\",\n            \"contactLastname\": \"Zieliński\",\n            \"contactEmail\": \"ewa.zieliński2@niepodam.pl\",\n            \"contactPhone\": \"800265332\",\n            \"contactUuid\": \"4ddf354a-9d05-4264-8961-d4de1ca6b04b\",\n            \"createdAtUTC\": \"2025-11-20T09:46:06Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763631968\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632274,\n            \"uuid\": \"6d168219-6bac-47e0-b6c3-61c248fc0f81\",\n            \"token\": \"AEQpmP\",\n            \"status\": \"sent\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Karolina\",\n            \"contactLastname\": \"Szymański\",\n            \"contactEmail\": \"karolina.szymański0@niepodam.pl\",\n            \"contactPhone\": \"744802845\",\n            \"contactUuid\": \"2d8120a9-1a5c-4dcd-87ef-600b79dbc0cd\",\n            \"createdAtUTC\": \"2025-11-20T09:46:07Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763631969\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632272,\n            \"uuid\": \"60f8ed92-16e4-4602-be17-b816c8d3b559\",\n            \"token\": \"uGiNgi\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Łukasz\",\n            \"contactLastname\": \"Wojciechowski\",\n            \"contactEmail\": \"łukasz.wojciechowski1@niepodam.pl\",\n            \"contactPhone\": \"572125588\",\n            \"contactUuid\": \"53cf975b-4798-4153-b320-9931d924664b\",\n            \"createdAtUTC\": \"2025-11-20T09:46:06Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763631980\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 10,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 10,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"4722e3ae-2558-45d5-bd4a-f00b09827a4a"},{"name":"[Representative] Get All","id":"f9a43348-2fb6-46d3-9eca-78c282f2a74b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/all/rep?repUuid=d9991474-5ccd-4bc2-8ec5-a0b70bebfcea&campaignUuid={{campaign-uuid}}&status=string&token=string&repSearch=string&contactSearch=string&contactUuid=string&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-24 00:00:00&page=0&size=20&sortBy=lastUpdatedUTC&sortDirection=asc","description":"<h1 id=\"get-all-messages-for-representative\">Get All Messages for Representative</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves all messages for a specific campaign and representative. It supports filtering, pagination, and sorting to help you manage and query campaign messages efficiently.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your authentication token in the Authorization header.</p>\n<p><strong>Required Header:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>URL:</strong> <code>https://testsandbox.highp.me/api/core/message/all/rep</code></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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>repUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The UUID of the representative whose messages you want to retrieve</td>\n</tr>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The UUID of the campaign to filter messages</td>\n</tr>\n<tr>\n<td><code>dateFrom</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter messages from this date (format: <code>YYYY-MM-DD HH:mm:ss</code>)</td>\n</tr>\n<tr>\n<td><code>dateTo</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter messages until this date (format: <code>YYYY-MM-DD HH:mm:ss</code>)</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Page number for pagination (default: 0)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Number of items per page (default: 20)</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>Field to sort results by (e.g., <code>lastUpdatedUTC</code>)</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>Sort direction: <code>asc</code> or <code>desc</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.highp.me';\nconst token = 'your-bearer-token';\nconst repUuid = 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea';\nconst campaignUuid = 'your-campaign-uuid';\n\nconst url = new URL(`https://${tenantDomain}/api/core/message/all/rep`);\nurl.searchParams.append('repUuid', repUuid);\nurl.searchParams.append('campaignUuid', campaignUuid);\nurl.searchParams.append('page', '0');\nurl.searchParams.append('size', '20');\nurl.searchParams.append('sortBy', 'lastUpdatedUTC');\nurl.searchParams.append('sortDirection', 'asc');\n\n// Optional: Add date filters\n// url.searchParams.append('dateFrom', '2024-09-24 00:00:00');\n// url.searchParams.append('dateTo', '2024-09-24 23:59:59');\n\nconst options = {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n};\n\nfetch(url, options)\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Messages retrieved:', data);\n    console.log('Total messages:', data.totalElements);\n    console.log('Total pages:', data.totalPages);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching messages:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<h3 id=\"response-schema\">Response Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [Message],\n  \"pageable\": Pageable,\n  \"totalElements\": integer,\n  \"totalPages\": integer,\n  \"last\": boolean,\n  \"size\": integer,\n  \"number\": integer,\n  \"sort\": Sort,\n  \"numberOfElements\": integer,\n  \"first\": boolean,\n  \"empty\": boolean\n}\n</code></pre>\n<h3 id=\"message-object\">Message Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Unique identifier for the message</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>UUID of the message</td>\n</tr>\n<tr>\n<td><code>token</code></td>\n<td>string</td>\n<td>Message token for access/tracking</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Current status of the message (e.g., DRAFT, SENT, DELIVERED)</td>\n</tr>\n<tr>\n<td><code>scheduledSentAt</code></td>\n<td>string/null</td>\n<td>Scheduled send date and time (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><code>configuration</code></td>\n<td>object/null</td>\n<td>Message configuration settings</td>\n</tr>\n<tr>\n<td><code>smsStatus</code></td>\n<td>string/null</td>\n<td>SMS delivery status if applicable</td>\n</tr>\n<tr>\n<td><code>smsStatusDate</code></td>\n<td>string/null</td>\n<td>Date when SMS status was last updated</td>\n</tr>\n<tr>\n<td><code>videoExists</code></td>\n<td>boolean</td>\n<td>Indicates if a video is attached to this message</td>\n</tr>\n<tr>\n<td><code>flags</code></td>\n<td>integer</td>\n<td>Bitwise flags for message properties</td>\n</tr>\n<tr>\n<td><code>repName</code></td>\n<td>string</td>\n<td>Representative's first name</td>\n</tr>\n<tr>\n<td><code>repLastname</code></td>\n<td>string</td>\n<td>Representative's last name</td>\n</tr>\n<tr>\n<td><code>repEmail</code></td>\n<td>string</td>\n<td>Representative's email address</td>\n</tr>\n<tr>\n<td><code>repPhone</code></td>\n<td>string</td>\n<td>Representative's phone number</td>\n</tr>\n<tr>\n<td><code>contactName</code></td>\n<td>string</td>\n<td>Contact's first name</td>\n</tr>\n<tr>\n<td><code>contactLastname</code></td>\n<td>string</td>\n<td>Contact's last name</td>\n</tr>\n<tr>\n<td><code>contactEmail</code></td>\n<td>string</td>\n<td>Contact's email address</td>\n</tr>\n<tr>\n<td><code>contactPhone</code></td>\n<td>string</td>\n<td>Contact's phone number</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pageable-object\">Pageable Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sort</code></td>\n<td>Sort</td>\n<td>Sorting information</td>\n</tr>\n<tr>\n<td><code>offset</code></td>\n<td>integer</td>\n<td>Offset of the current page</td>\n</tr>\n<tr>\n<td><code>pageNumber</code></td>\n<td>integer</td>\n<td>Current page number (0-indexed)</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>paged</code></td>\n<td>boolean</td>\n<td>Whether pagination is enabled</td>\n</tr>\n<tr>\n<td><code>unpaged</code></td>\n<td>boolean</td>\n<td>Whether pagination is disabled</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sort-object\">Sort Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Whether sort is empty</td>\n</tr>\n<tr>\n<td><code>sorted</code></td>\n<td>boolean</td>\n<td>Whether results are sorted</td>\n</tr>\n<tr>\n<td><code>unsorted</code></td>\n<td>boolean</td>\n<td>Whether results are unsorted</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pagination-fields\">Pagination Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>totalElements</code></td>\n<td>integer</td>\n<td>Total number of messages across all pages</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td><code>last</code></td>\n<td>boolean</td>\n<td>Whether this is the last page</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>Number of items in the current page</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Current page number (0-indexed)</td>\n</tr>\n<tr>\n<td><code>numberOfElements</code></td>\n<td>integer</td>\n<td>Number of elements in the current page</td>\n</tr>\n<tr>\n<td><code>first</code></td>\n<td>boolean</td>\n<td>Whether this is the first page</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Whether the result set is empty</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": 12345,\n      \"uuid\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n      \"token\": \"msg_token_abc123\",\n      \"status\": \"SENT\",\n      \"scheduledSentAt\": \"2024-09-24T10:30:00Z\",\n      \"configuration\": null,\n      \"smsStatus\": \"DELIVERED\",\n      \"smsStatusDate\": \"2024-09-24T10:35:00Z\",\n      \"videoExists\": true,\n      \"flags\": 0,\n      \"repName\": \"John\",\n      \"repLastname\": \"Doe\",\n      \"repEmail\": \"john.doe@example.com\",\n      \"repPhone\": \"+1234567890\",\n      \"contactName\": \"Jane\",\n      \"contactLastname\": \"Smith\",\n      \"contactEmail\": \"jane.smith@example.com\",\n      \"contactPhone\": \"+0987654321\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 150,\n  \"totalPages\": 8,\n  \"last\": false,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": false,\n    \"sorted\": true,\n    \"unsorted\": false\n  },\n  \"numberOfElements\": 20,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Campaign Management</strong>: Retrieve all messages sent as part of a specific campaign</li>\n<li><strong>Representative Dashboard</strong>: Display messages sent by a specific representative</li>\n<li><strong>Date Range Filtering</strong>: Query messages within a specific time period</li>\n<li><strong>Pagination</strong>: Handle large datasets efficiently with page-based navigation</li>\n<li><strong>Sorting</strong>: Order messages by various fields like last updated time</li>\n</ul>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid parameters</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Campaign or representative not found</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","core","message","all","rep"],"host":["testsandbox.highp.me"],"query":[{"key":"repUuid","value":"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea"},{"description":{"content":"<p>uuid1,uuid2</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"status","value":"string"},{"key":"token","value":"string"},{"key":"repSearch","value":"string"},{"key":"contactSearch","value":"string"},{"key":"contactUuid","value":"string"},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-24 00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUpdatedUTC"},{"key":"sortDirection","value":"asc"}],"variable":[]}},"response":[{"id":"ceb885c8-44dc-4518-a3e2-823b7514552f","name":"[Representative] Get All","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/message/all/rep?repUuid=d9991474-5ccd-4bc2-8ec5-a0b70bebfcea&campaignUuid={{campaign-uuid}}&status=string&token=string&repSearch=string&contactSearch=string&contactUuid=string&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-24 00:00:00&page=0&size=20&sortBy=lastUpdatedUTC&sortDirection=asc","host":["testsandbox.highp.me"],"path":["api","core","message","all","rep"],"query":[{"key":"repUuid","value":"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea"},{"description":"required","key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"status","value":"string"},{"key":"token","value":"string"},{"key":"repSearch","value":"string"},{"key":"contactSearch","value":"string"},{"key":"contactUuid","value":"string"},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-24 00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUpdatedUTC"},{"key":"sortDirection","value":"asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:35:49 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:35:48 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-8ce5e08e3924ed9307cf65545842ef82' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-8ce5e08e3924ed9307cf65545842ef82' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 1632261,\n            \"uuid\": \"fa69c328-3fd2-47e0-b193-0537fb5db257\",\n            \"token\": \"I7Gf5P\",\n            \"status\": \"ordered\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 0,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"WojciechIE\",\n            \"contactLastname\": \"BojarskiIE\",\n            \"contactEmail\": \"nowytest988+32@gmail.com\",\n            \"contactPhone\": \"48797259811\",\n            \"contactUuid\": \"20bba90b-c2b6-4f04-9fda-bd74ef83df08\",\n            \"createdAtUTC\": \"2025-11-18T11:39:11Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763465950\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632262,\n            \"uuid\": \"f936091d-6be9-48a6-bcae-4b31112f10ab\",\n            \"token\": \"RAjdrD\",\n            \"status\": \"ordered\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 0,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"124124124\",\n            \"contactLastname\": \"124124124\",\n            \"contactEmail\": \"asfasfsssseds@niepodam.pl\",\n            \"contactPhone\": \"+48797259811\",\n            \"contactUuid\": \"0c87f63b-53ef-4e14-bf99-e5bfa7d0f748\",\n            \"createdAtUTC\": \"2025-11-18T11:39:11Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763465950\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632263,\n            \"uuid\": \"7968974a-84ce-44c1-9a9c-12728e32278f\",\n            \"token\": \"NzTVIW\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": true,\n            \"flags\": 32,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": null,\n            \"contactLastname\": null,\n            \"contactEmail\": null,\n            \"contactPhone\": null,\n            \"contactUuid\": \"da2c91d5-c6fe-4564-be0b-5e5972d26ad5\",\n            \"createdAtUTC\": \"2025-11-18T11:52:52Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763466807\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632266,\n            \"uuid\": \"71182aa3-3019-4d63-ab5f-88395f21bc20\",\n            \"token\": \"bSafhG\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 56,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Wojjj999\",\n            \"contactLastname\": \"Bojjjj\",\n            \"contactEmail\": \"bojowojo09876543@niepodam.pl\",\n            \"contactPhone\": \"+48797259811\",\n            \"contactUuid\": \"48bcda9f-1fc2-485e-ae0d-1ac174732e36\",\n            \"createdAtUTC\": \"2025-11-18T12:58:16Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763470744\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632267,\n            \"uuid\": \"0d2490d7-38ab-4b29-a8f1-4b44bc64caae\",\n            \"token\": \"rziXkG\",\n            \"status\": \"sent\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": true,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Karolina\",\n            \"contactLastname\": \"Dąbrowski\",\n            \"contactEmail\": \"karolina.dąbrowski84@niepodam.pl\",\n            \"contactPhone\": \"650162776\",\n            \"contactUuid\": \"a90770d8-b4f9-4a4b-bab4-5ec1f18ce689\",\n            \"createdAtUTC\": \"2025-11-18T13:01:48Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763470909\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632268,\n            \"uuid\": \"26ab6697-210c-45ca-8a89-4bfd7e99988d\",\n            \"token\": \"YKmrTD\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": true,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Karolina\",\n            \"contactLastname\": \"Dąbrowski\",\n            \"contactEmail\": \"karolina.dąbrowski84@niepodam.pl\",\n            \"contactPhone\": \"650162776\",\n            \"contactUuid\": \"a90770d8-b4f9-4a4b-bab4-5ec1f18ce689\",\n            \"createdAtUTC\": \"2025-11-18T13:02:41Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763470974\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632271,\n            \"uuid\": \"8c89191f-64bc-46a6-864b-233693110744\",\n            \"token\": \"LsKhrH\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": true,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"4124124\",\n            \"contactLastname\": \"214241\",\n            \"contactEmail\": \"lpopopopop@niepodam.pl\",\n            \"contactPhone\": \"48214242121\",\n            \"contactUuid\": \"f20fe56e-b4c1-469a-a3a6-367cdb030770\",\n            \"createdAtUTC\": \"2025-11-20T09:45:07Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763631920\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632272,\n            \"uuid\": \"60f8ed92-16e4-4602-be17-b816c8d3b559\",\n            \"token\": \"uGiNgi\",\n            \"status\": \"opened\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Łukasz\",\n            \"contactLastname\": \"Wojciechowski\",\n            \"contactEmail\": \"łukasz.wojciechowski1@niepodam.pl\",\n            \"contactPhone\": \"572125588\",\n            \"contactUuid\": \"53cf975b-4798-4153-b320-9931d924664b\",\n            \"createdAtUTC\": \"2025-11-20T09:46:06Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763631980\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632273,\n            \"uuid\": \"a4906135-6a6e-484b-9321-e7cddcfce1f9\",\n            \"token\": \"NWeUNa\",\n            \"status\": \"sent\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Ewa\",\n            \"contactLastname\": \"Zieliński\",\n            \"contactEmail\": \"ewa.zieliński2@niepodam.pl\",\n            \"contactPhone\": \"800265332\",\n            \"contactUuid\": \"4ddf354a-9d05-4264-8961-d4de1ca6b04b\",\n            \"createdAtUTC\": \"2025-11-20T09:46:06Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763631968\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        },\n        {\n            \"id\": 1632274,\n            \"uuid\": \"6d168219-6bac-47e0-b6c3-61c248fc0f81\",\n            \"token\": \"AEQpmP\",\n            \"status\": \"sent\",\n            \"scheduledSentAt\": null,\n            \"configuration\": null,\n            \"smsStatus\": null,\n            \"smsStatusDate\": null,\n            \"emailStatus\": null,\n            \"emailStatusDate\": null,\n            \"videoExists\": false,\n            \"flags\": 48,\n            \"repName\": \"wbbbb\",\n            \"repLastname\": \"bbbwww\",\n            \"repEmail\": \"wb@niepodam.pl\",\n            \"repPhone\": \"00797259811\",\n            \"contactName\": \"Karolina\",\n            \"contactLastname\": \"Szymański\",\n            \"contactEmail\": \"karolina.szymański0@niepodam.pl\",\n            \"contactPhone\": \"744802845\",\n            \"contactUuid\": \"2d8120a9-1a5c-4dcd-87ef-600b79dbc0cd\",\n            \"createdAtUTC\": \"2025-11-20T09:46:07Z[UTC]\",\n            \"lastUpdatedUTC\": \"1763631969\",\n            \"campaignUuid\": \"78bab367-90a7-4faf-ba47-bb054320d506\",\n            \"campaignName\": \"test ene [cloned] started\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 10,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 10,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"f9a43348-2fb6-46d3-9eca-78c282f2a74b"},{"name":"Get All - XLS","id":"f04ede64-8237-4dbd-b690-b41c18b41514","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/all/export?campaignUuid={{campaign-uuid}}&status=string&token=string&repSearch=string&repUuid=string&contactSearch=string&contactUuid=&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-24 00:00:00&extended","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports all messages for a specific campaign to an Excel (XLS) file format. The response is a downloadable <code>.xlsx</code> file containing message data.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the <code>Authorization</code> header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>token</code> variable should contain a valid access token for the Highp API.</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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>The unique identifier (UUID) of the campaign whose messages you want to export.</td>\n</tr>\n<tr>\n<td><code>dateFrom</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter messages from this date onwards. Format: <code>YYYY-MM-DD HH:MM:SS</code> (e.g., <code>2024-09-24 00:00:00</code>)</td>\n</tr>\n<tr>\n<td><code>dateTo</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter messages up to this date. Format: <code>YYYY-MM-DD HH:MM:SS</code> (e.g., <code>2024-09-24 00:00:00</code>)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter messages by status</td>\n</tr>\n<tr>\n<td><code>repSearch</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search filter for representative</td>\n</tr>\n<tr>\n<td><code>repUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter by representative UUID</td>\n</tr>\n<tr>\n<td><code>contactSearch</code></td>\n<td>string</td>\n<td>No</td>\n<td>Search filter for contact</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter by contact UUID</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst campaignUuid = 'your-campaign-uuid';\nconst token = 'your-access-token';\n\n// Optional: Add date filters\nconst dateFrom = '2024-09-24 00:00:00';\nconst dateTo = '2024-09-24 00:00:00';\n\nconst url = `https://${tenantDomain}/api/core/message/all/export?campaignUuid=${campaignUuid}&amp;dateFrom=${encodeURIComponent(dateFrom)}&amp;dateTo=${encodeURIComponent(dateTo)}`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.blob();\n  })\n  .then(blob =&gt; {\n    // Save the file or process the blob\n    const fs = require('fs');\n    const buffer = Buffer.from(await blob.arrayBuffer());\n    fs.writeFileSync('messages_export.xlsx', buffer);\n    console.log('File downloaded successfully');\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a binary Excel file with the following characteristics:</p>\n<p><strong>Content-Type:</strong> <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></p>\n<p><strong>Content-Disposition:</strong> <code>attachment; filename={campaignUuid}_messages.xlsx</code></p>\n<p>The Excel file contains message data with columns representing message properties such as:</p>\n<ul>\n<li>Message details</li>\n<li>Contact information</li>\n<li>Representative information</li>\n<li>Timestamps</li>\n<li>Status</li>\n<li>Campaign information</li>\n</ul>\n<h3 id=\"response-headers\">Response Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></td>\n</tr>\n<tr>\n<td><code>Content-Disposition</code></td>\n<td><code>attachment; filename={campaignUuid}_messages.xlsx</code></td>\n</tr>\n<tr>\n<td><code>Cache-Control</code></td>\n<td><code>no-cache</code></td>\n</tr>\n<tr>\n<td><code>X-Content-Type-Options</code></td>\n<td><code>nosniff</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<p>The response is a binary Excel file (<code>.xlsx</code> format) that can be opened in Microsoft Excel, Google Sheets, or other spreadsheet applications. The file will be automatically downloaded with a filename pattern: <code>{campaignUuid}_messages.xlsx</code></p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>File Format:</strong> Excel 2007+ (.xlsx)</p>\n<p><strong>Sample Response Headers:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\nContent-Disposition: attachment; filename=78bab367-90a7-4faf-ba47-bb054320d506_messages.xlsx\nContent-Length: 4538\n</code></pre><h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Forbidden - Insufficient permissions to access the campaign</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Not Found - Campaign with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td><code>500</code></td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The exported file includes all messages associated with the specified campaign</li>\n<li>Use the optional date range parameters (<code>dateFrom</code> and <code>dateTo</code>) to filter messages by time period</li>\n<li>The file size will vary depending on the number of messages in the campaign</li>\n<li>Ensure you have sufficient permissions to access the campaign data</li>\n</ul>\n<h2 id=\"related-endpoints\">Related Endpoints</h2>\n<p>For more information about working with messages and campaigns, refer to other endpoints in the Message folder.</p>\n","urlObject":{"path":["api","core","message","all","export"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>uuid1,uuid2</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"status","value":"string"},{"key":"token","value":"string"},{"key":"repSearch","value":"string"},{"key":"repUuid","value":"string"},{"key":"contactSearch","value":"string"},{"key":"contactUuid","value":""},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-24 00:00:00"},{"description":{"content":"<p>optional. true - return specialisations and consents</p>\n","type":"text/plain"},"key":"extended","value":null}],"variable":[]}},"response":[{"id":"d12d158d-b25a-4896-9b71-0848e68c469d","name":"Get All - XLS","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/message/all/export?campaignUuid={{campaign-uuid}}&status=string&token=string&repSearch=string&repUuid=string&contactSearch=string&contactUuid=&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-24 00:00:00","host":["testsandbox.highp.me"],"path":["api","core","message","all","export"],"query":[{"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"status","value":"string"},{"key":"token","value":"string"},{"key":"repSearch","value":"string"},{"key":"repUuid","value":"string"},{"key":"contactSearch","value":"string"},{"key":"contactUuid","value":""},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-24 00:00:00"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:33:00 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"4538"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:32:59 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=78bab367-90a7-4faf-ba47-bb054320d506_messages.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-2d2e66a7444c70aa91045ab4ffea619e' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-2d2e66a7444c70aa91045ab4ffea619e' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm��J�0\u0014E%�M�:����(\u0003��\u0015ŷ�\u001c�bs!�v�{�:VPߒ�u\u0016'��\u001d�������\u001aӼ�\b��j0]�\u001f�}v�Q��(1Z\u000356\u0016�J:.����\u000e|\u001c ��1�KW�>F�\t\t�\u0007-B�\b��\u0017뵈��;�|\u0015\u001d\u0010V\u0014[�!\n%� �0s�\u0011��J�J���E�$�\u00114�\u0018\b�)�a#x\u001d�\u001dX��<�a��iʧr��F�<���/�g���.\u00017�Iͥ\u0007\u0011A�$��åF�������\u0015l�Q����2^2��>W���,�:[�\\�Bz@���[�+���\u0013PK\u0007\b\u0014�Vs\u0005\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml�V�r�6\u0010}�Wh��N\u0006\"�\u0017��\\\u001c��8�Ic�n�\u0006\u0002�EI$\u0015�\n\u001b����Y�_�bG�\u0012\nM�3���\u0002g�,���?�����}^�gC4�Á+Me���l���\b���������T��\t>\u0018\r\u0007�2��s�\u000f���A\bS���i��$�f�\n�G�֕��Uu���Y�%~[;m�ҹ��$\u0018B�\u0014:/�Ӊϧ�f�X\\��$�t�\u001c�\u001f��F7;�E��ڕ]��\u000b�+È��\u001b�t�qy�}S>�v\u0011V����W�l���|�}+�W{o��˪�F\u001e\"\u000e\u0016[�\u001bg\u0007�/��?t=2͕!X\u0002�Y\f�p\u0010�H\u0011\u0000\u0019\u0011Y�l��莩j�jg�����.ڦ��\u0001j�6v}U�n[Y]��\u0011��jerg�W\u0017]˛j�k��cKY��\u001b�\u001b%�\u000b�_�\u001d\u001282U���R(���\buMH&\b\u0005�a6@hLT�@E8T�\u0002�:\u0005��\u001c�F;@S�\u0010�\u0019�:�����֑v\u0011�\u000fwנ}\u0016n\u001f.g}_�^��\u0010�K%�\u0006���:j\u0010PZ\u0019����\u0011��̢B����<������IO�\u0018�\u0016���Z\u0013@ \nI��\u0000��\fHI\u0014�0J\r��fnt��<���J��,o\u000e�*�Q��6\n    <PI�\u0019%}�|�\u0001�Y4\u0003��*h\u0005 R���X\u0001-3\u0014�(M\r�F�\u001f\u000f�D\u0017�����׵��M^�.���Һj�ڻ��㈑=�H�G�3�8\u0016��1'c\u0018I\ts�r�\u0004�\b\u001a@�\t��2�1ͬp�\u0018RF��������?\u0013�ڥ�\n)�\u0001\u001eR\n(\u000f�%�+��p\u0015�\u000b\n\u001au�;���:�tkaD\u0003�E7���ח?*���ᘋ��#/�ƔE���tVa����\u0017� uH�T\"n�%)�����gwQ���ܭ��k�<������\u0019�O�P\u001fU&\u0002KƤ|�h$%\u001dZ�#�@(]�ud��\"\u0018\u0001'��&3\u000ee\u0011�٭[�\"�_�\u0011�{�6���'\u0018�V��G+�&!Ĝ\u0011\u0012i�[�C�U�صy<\u0019�!�#���L(aT��\u0017?o��\b��.��u\u001e{�\u001f]`�b��%�򩠒��k�\u001fPK\u0007\b7�Iv\u0003\u0000\u0000�\t\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml��1O�0\u0010�w~�u;�\u0003\bA\u0014�\u000bB��\u0010د���\u0012ۑϴ�|�T\u0001F&��}��5�/?�3%v1h�v\n\u0004\u0005\u0013�\u000b'\r����\u0013�ۛ�\u0012�x�q\u0014\u0005\u000f�a�y��d3�G�řBi��<�\u0012�I�\b-\u000fD�O�N�G��\u0005�\u001a��\u001fG�{g�%�OO!_%�&�e,\u000fnfh��%a1S��\u001e4�81�l���pt�_p�\u0002Mvg��A-��\u0003���W\u0004���C\u001e\u0019D��Ր\u000e�\u001e�Z\u001fJ�V�v%��oPK\u0007\bx�\"m�\u0000\u0000\u0000\\\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000 dx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��[s�@\u0010F��WP�o\u0010�[JM\u0005�\u0001�����;��RQ�����;�Y2ߧ��7�N7=�i�\u001e����WU7۪\u001c��M϶T����r=���}���ᱪ���R����fdo��p�8�b��EsS\u001dT�ɪ��E����i\u000e�*������z��/��=\u001e.�{U�\nZ�Z��{�6w]�\u0019\u000f������\u0018�֩�SU=�\u0016�rd�-���w�S�V�u[��S�s�>;o�km-ժxٵߪc���M���׏���h�񰮎V�����tq��B#����qo��\u0012�7���E61Y\u001f��d\u001e�\u0007�\r��L�#{4Y�,5Y�,3Y�ln�\u0018Y\u000e��.��\u0002;���bߌ&U\t@r5\u0001H��\u0000��\u0003@�5\u0003H�\u001e\u0001��\u0014 \u0019�\u0000���\t��K9@��O���Ѥ,�$���>=ɧ'��$�P�n�J0\u0003H5�\u0000�f����A�s`FӉ'\u0000��'\u0000�ħ\u0003��@�9�|�УFJ%�Ip.�\u001c�\u0007>�ΧoFs��O����%���ӗ|BM�O�t�\f �v�K�\t��u�A�30�IY\u0002�Zpb�\u0001\u001d�4�|\u0006��@�\t5�m�\u0002���\u0000���\u0001�ns��u�a�34�i�I(�'dқb\u001aJ>C�g(�\f%���3�|��O��u�Q�32��\u0005�H�iB��3�|F��H�\t5�'@�\t�}\u0002d�\u0000?�ϸ�\u0019��ܟ��\u00132�?c�g,��%�P�6�\u0002���L\u0018��\u0011@:�\u001c`��O���\u0019�3���\u0012�\u0017�P�%mS�\u0017R��U��\u0015�Rn��r3��\u0007s�tb9ҏ�\u001a#\u0012�\u001e��\u0007z�\u0016f\u0013��\u0003�t�n]�-�Y�\u000e�]��\u0016h��\u0002�ح+�u�I�P�՗�^o��z�ڶ���&��\r��jU}Z�܍����N��s�m�G��u[\u001d�rO\u0013r7Ə�\u0000PK\u0007\bE��h\u000e\u0003\u0000\u0000�\u000f\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[\u0014�Vs\u0005\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[7�Iv\u0003\u0000\u0000�\t\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000c\b\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[x�\"m�\u0000\u0000\u0000\\\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\t\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\n\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000 dx[E��h\u000e\u0003\u0000\u0000�\u000f\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\f\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000e\u000f\u0000\u0000\u0000\u0000"}],"_postman_id":"f04ede64-8237-4dbd-b690-b41c18b41514"},{"name":"[Representative] Get All - XLS","id":"521cdf3e-e5a0-4117-ad37-0e334018d53b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/message/all/export/rep?repUuid=d9991474-5ccd-4bc2-8ec5-a0b70bebfcea&campaignUuid={{campaign-uuid}}&status=string&token=string&repSearch=string&contactSearch=string&contactUuid=string&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-24 00:00:00&page=0&size=20&sortBy=lastUpdatedUTC&sortDirection=asc","description":"<h1 id=\"export-representative-messages-to-excel\">Export Representative Messages to Excel</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint exports all messages associated with a specific representative and campaign to an Excel (XLS) file. The endpoint returns a downloadable <code>.xlsx</code> file containing message data with support for pagination, filtering, and sorting.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://testsandbox.highp.me/api/core/message/all/export/rep\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>token</code> variable should contain a valid JWT access token obtained through the authentication flow.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<h3 id=\"required-parameters\">Required 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>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>repUuid</code></td>\n<td>string (UUID)</td>\n<td>The unique identifier of the representative whose messages you want to export</td>\n<td><code>d9991474-5ccd-4bc2-8ec5-a0b70bebfcea</code></td>\n</tr>\n<tr>\n<td><code>campaignUuid</code></td>\n<td>string (UUID)</td>\n<td>The unique identifier of the campaign to filter messages</td>\n<td><code>{{campaign-uuid}}</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pagination-parameters\">Pagination 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>Description</th>\n<th>Default</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>The page number for pagination (zero-indexed)</td>\n<td><code>0</code></td>\n<td><code>0</code></td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>The number of records per page</td>\n<td><code>20</code></td>\n<td><code>20</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sorting-parameters\">Sorting 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>Description</th>\n<th>Default</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>The field to sort by</td>\n<td><code>lastUpdatedUTC</code></td>\n<td><code>lastUpdatedUTC</code></td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>Sort direction: <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n<td><code>asc</code></td>\n<td><code>asc</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"optional-filter-parameters\">Optional Filter 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>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>dateFrom</code></td>\n<td>string (datetime)</td>\n<td>Filter messages from this date (format: <code>YYYY-MM-DD HH:mm:ss</code>)</td>\n<td><code>2024-09-24 00:00:00</code></td>\n</tr>\n<tr>\n<td><code>dateTo</code></td>\n<td>string (datetime)</td>\n<td>Filter messages until this date (format: <code>YYYY-MM-DD HH:mm:ss</code>)</td>\n<td><code>2024-09-24 00:00:00</code></td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Filter by message status</td>\n<td>-</td>\n</tr>\n<tr>\n<td><code>repSearch</code></td>\n<td>string</td>\n<td>Search term for representative</td>\n<td>-</td>\n</tr>\n<tr>\n<td><code>contactSearch</code></td>\n<td>string</td>\n<td>Search term for contact</td>\n<td>-</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Filter by specific contact UUID</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns an Excel file with the following characteristics:</p>\n<p><strong>Content-Type:</strong> <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></p>\n<p><strong>Content-Disposition:</strong> <code>attachment; filename={uuid}_messages.xlsx</code></p>\n<p>The Excel file contains message data with columns representing message properties such as:</p>\n<ul>\n<li>Message content</li>\n<li>Timestamps (creation, last update)</li>\n<li>Contact information</li>\n<li>Representative details</li>\n<li>Message status</li>\n<li>Campaign information</li>\n</ul>\n<h3 id=\"response-headers\">Response Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\nContent-Disposition: attachment; filename=78bab367-90a7-4faf-ba47-bb054320d506_messages.xlsx\nContent-Length: 4538\nCache-Control: no-cache\nX-Content-Type-Options: nosniff\n</code></pre><h2 id=\"code-example-nodejs-with-fetch\">Code Example (Node.js with fetch)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nasync function exportRepresentativeMessages() {\n  const tenantDomain = 'your-tenant.highp.me';\n  const token = 'your-access-token';\n  const repUuid = 'd9991474-5ccd-4bc2-8ec5-a0b70bebfcea';\n  const campaignUuid = 'your-campaign-uuid';\n  \n  const url = new URL(`https://${tenantDomain}/api/core/message/all/export/rep`);\n  \n  // Add query parameters\n  url.searchParams.append('repUuid', repUuid);\n  url.searchParams.append('campaignUuid', campaignUuid);\n  url.searchParams.append('page', '0');\n  url.searchParams.append('size', '20');\n  url.searchParams.append('sortBy', 'lastUpdatedUTC');\n  url.searchParams.append('sortDirection', 'asc');\n  \n  // Optional: Add date filters\n  // url.searchParams.append('dateFrom', '2024-09-24 00:00:00');\n  // url.searchParams.append('dateTo', '2024-09-24 00:00:00');\n  \n  try {\n    const response = await fetch(url.toString(), {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    // Get the filename from Content-Disposition header\n    const contentDisposition = response.headers.get('content-disposition');\n    const filename = contentDisposition \n      ? contentDisposition.split('filename=')[1].replace(/\"/g, '')\n      : 'messages.xlsx';\n    \n    // Get the file as a buffer\n    const buffer = await response.buffer();\n    \n    // Save to file system\n    const fs = require('fs');\n    fs.writeFileSync(filename, buffer);\n    \n    console.log(`File downloaded successfully: ${filename}`);\n    console.log(`File size: ${buffer.length} bytes`);\n    \n  } catch (error) {\n    console.error('Error exporting messages:', error.message);\n  }\n}\n\n// Execute the function\nexportRepresentativeMessages();\n</code></pre>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ol>\n<li><p><strong>File Format</strong>: The response is a binary Excel file (.xlsx format) that can be opened with Microsoft Excel, Google Sheets, or other spreadsheet applications.</p>\n</li>\n<li><p><strong>Pagination</strong>: Use the <code>page</code> and <code>size</code> parameters to control the amount of data exported. For large datasets, you may need to make multiple requests with different page numbers.</p>\n</li>\n<li><p><strong>Date Filtering</strong>: When using <code>dateFrom</code> and <code>dateTo</code> parameters, ensure the datetime format is exactly <code>YYYY-MM-DD HH:mm:ss</code>.</p>\n</li>\n<li><p><strong>Variables</strong>: This endpoint uses Postman variables:</p>\n<ul>\n<li><code>testsandbox.highp.me</code>: Your Highp tenant domain</li>\n<li><code>{{token}}</code>: Your authentication token</li>\n<li><code>{{campaign-uuid}}</code>: The campaign identifier</li>\n</ul>\n</li>\n<li><p><strong>Security</strong>: The endpoint includes security headers such as <code>X-Frame-Options: DENY</code> and <code>Content-Security-Policy</code> to protect against common web vulnerabilities.</p>\n</li>\n</ol>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401 Unauthorized</td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td>403 Forbidden</td>\n<td>Insufficient permissions to access this resource</td>\n</tr>\n<tr>\n<td>404 Not Found</td>\n<td>Representative or campaign not found</td>\n</tr>\n<tr>\n<td>500 Internal Server Error</td>\n<td>Server error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","core","message","all","export","rep"],"host":["testsandbox.highp.me"],"query":[{"key":"repUuid","value":"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea"},{"description":{"content":"<p>uuid1,uuid2</p>\n","type":"text/plain"},"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"status","value":"string"},{"key":"token","value":"string"},{"key":"repSearch","value":"string"},{"key":"contactSearch","value":"string"},{"key":"contactUuid","value":"string"},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-24 00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUpdatedUTC"},{"key":"sortDirection","value":"asc"}],"variable":[]}},"response":[{"id":"9b8e7971-d127-4d75-bd36-6ea50f62db8b","name":"[Representative] Get All - XLS","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/core/message/all/export/rep?repUuid=d9991474-5ccd-4bc2-8ec5-a0b70bebfcea&campaignUuid={{campaign-uuid}}&status=string&token=string&repSearch=string&contactSearch=string&contactUuid=string&dateFrom=2024-09-24 00:00:00&dateTo=2024-09-24 00:00:00&page=0&size=20&sortBy=lastUpdatedUTC&sortDirection=asc","host":["testsandbox.highp.me"],"path":["api","core","message","all","export","rep"],"query":[{"key":"repUuid","value":"d9991474-5ccd-4bc2-8ec5-a0b70bebfcea"},{"key":"campaignUuid","value":"{{campaign-uuid}}"},{"key":"status","value":"string"},{"key":"token","value":"string"},{"key":"repSearch","value":"string"},{"key":"contactSearch","value":"string"},{"key":"contactUuid","value":"string"},{"key":"dateFrom","value":"2024-09-24 00:00:00"},{"key":"dateTo","value":"2024-09-24 00:00:00"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastUpdatedUTC"},{"key":"sortDirection","value":"asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:35:29 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"4538"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:35:28 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"attachment; filename=78bab367-90a7-4faf-ba47-bb054320d506_messages.xlsx"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-901571d967a4d19e3d8bfb126deef83a' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-901571d967a4d19e3d8bfb126deef83a' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml�S�n�0\u0010����*6�PU\u0015�C\u001f�\u0016��\u0003\\{�X�%����]\u00078�R�\nq�cfgfW�d�q�ZCB\u0013|��|�*�*h㻆},^�{Va�^K\u001b\n<4�\u00076�N\u0016�\bXQ�ǆ�9�\u0007!P��$�\u0010�\u0013҆�d�c�D�j);\u0010��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�\u0003\u0007{\u0013�\b�zސʮ\u001bB��3\u001c�\u000b˙��h.�h�W�жF�\u000ej娄CQՠ똈���}ιL�U:\u0012\u0014D�\u0013����%އ����,�B���[�\t��\u001e ;˱�\t�{N��~��X�p�\u001cykOL�\u0004\u0018�kN�V��ܿBZ~����q\u0018��\u000f �a\u0019\u001fr��{O�\u0001PK\u0007\bz��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���j�0\f�_���8�`�Q��2�m��\u00014[ILb��ږ���.[K\n\u001b�($}�\u0007�v?�I�Q.���uӂ�h���\u001bx>=��@\u0015��p�H\u0006\"�~�}�\t�n����*\"\u0016\u0003�H�׺؁\u0002��\u0013���8\u0007�Z�^'�#��7m{��O\u0006�3��\u0019�G�\u0006u�ܓ\u0018�'��y|a\u001e�����D�\t��\u000el_\u0003EYȾ�\u0000���vql\u001f3�ML�eh\u0016���*�\u0004��\\3�Y0���oJ׏�\u0003\t:\u0014��^\b�\u001f�}\u0002PK\u0007\b��z��\u0000\u0000\u0000I\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0010D�~EȽ��ADҔ�\b��A? ��6�lB�J?ߜ���0���ͯ�)�@��׍\u0014H6���V>\u001f��$;�SC\n\u0011\u0013;̢\u001c(�ra�g�l\u0017�&�e��L!y�%�\u0019�49��`_\u001e���4G���F\u001c��\u0005J��\u0018Wg\r\u0017\u0007�GS�b��\u0014��\n~\u000e�\u0003PK\u0007\b�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm��J�0\u0014E%�M�:��� ʀ�8`E�-$Ƕ�\\H�\u001d�޴�\u0015Է${��ɮ�\u0007=�w�a���4/0\u0002#�\u001aLW�v��a\u0014�0J��@���ۦ��K�a�\u0003\u001f\u0007\b(iL��ո��qB��A��'¤��z-b���8!_E\u0007�\u0015�)�\u0010�\u0012Q�Y��Ո�J%W�{��\"P��\b\u001aL\f����\u0011�\u000e�\u000e,�J\u001e°R�4�S�pi#J�no����_�����҃��P\u0012���R#��cyy��p�\n��(��IK\u0019/7��?W���,�:[�\\�Bz@���[�+���\u0013PK\u0007\b���\u0005\u0001\u0000\u0000�\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml�V�r�6\u0010}�Wh��N\u0006\"�\u0017��\\\u001c��8�Ic�n�\u0006\u0002�EI$\u0015�\n\u001b����Y�_�bG�\u0012\nM�3���\u0002g�,���?�����}^�gC4�Á+Me���l���\b���������T��\t>\u0018\r\u0007�2��s�\u000f���A\bS���i��$�f�\n�G�֕��Uu���Y�%~[;m�ҹ��$\u0018B�\u0014:/�Ӊϧ�f�X\\��$�t�\u001c�\u001f��F7;�E��ڕ]��\u000b�+È��\u001b�t�qy�}S>�v\u0011V����W�l���|�}+�W{o��˪�F\u001e\"\u000e\u0016[�\u001bg\u0007�/��?t=2͕!X\u0002�Y\f�p\u0010�H\u0011\u0000\u0019\u0011Y�l��莩j�jg�����.ڦ��\u0001j�6v}U�n[Y]��\u0011��jerg�W\u0017]˛j�k��cKY��\u001b�\u001b%�\u000b�_�\u001d\u001282U���R(���\buMH&\b\u0005�a6@hLT�@E8T�\u0002�:\u0005��\u001c�F;@S�\u0010�\u0019�:�����֑v\u0011�\u000fwנ}\u0016n\u001f.g}_�^��\u0010�K%�\u0006���:j\u0010PZ\u0019����\u0011��̢B����<������IO�\u0018�\u0016���Z\u0013@ \nI��\u0000��\fHI\u0014�0J\r��fnt��<���J��,o\u000e�*�Q��6\n    <PI�\u0019%}�|�\u0001�Y4\u0003��*h\u0005 R���X\u0001-3\u0014�(M\r�F�\u001f\u000f�D\u0017�����׵��M^�.���Һj�ڻ��㈑=�H�G�3�8\u0016��1'c\u0018I\ts�r�\u0004�\b\u001a@�\t��2�1ͬp�\u0018RF��������?\u0013�ڥ�\n)�\u0001\u001eR\n(\u000f�%�+��p\u0015�\u000b\n\u001au�;���:�tkaD\u0003�E7���ח?*���ᘋ��#/�ƔE���tVa����\u0017� uH�T\"n�%)�����gwQ���ܭ��k�<������\u0019�O�P\u001fU&\u0002KƤ|�h$%\u001dZ�#�@(]�ud��\"\u0018\u0001'��&3\u000ee\u0011�٭[�\"�_�\u0011�{�6���'\u0018�V��G+�&!Ĝ\u0011\u0012i�[�C�U�صy<\u0019�!�#���L(aT��\u0017?o��\b��.��u\u001e{�\u001f]`�b��%�򩠒��k�\u001fPK\u0007\b7�Iv\u0003\u0000\u0000�\t\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml���n� \u0010��>\u0005bop2TQ��P)U�RWb�6*\u001c\u0016����\u0017�ӤS�Nw�s���3ߍ֐\u000b��\u001d�t��(\u0001l��������ҝx�!N\u0006\u000e=@$ɀ��}��3c���ʰr\u0003`:i��2��w,\f\u001e�\n�d\r�T�\u0013�R#\u0015\u001c�voc �;c�iE��Û��E\u0010<|��4Iɣ���\u0019�F\u0005#��n���B�z�F���y�j3\u0015y��yҥ�jt>���2��Lژ�!6�\b�\u000f2F�O\u0005Y��4@M�!\u0014���G��������1�t��y��p��\"\tn����u��\u0018���a�ΦDi�9�&#��%I�\u0006�9��}���cK�\u000e�T��$?������`J������7���o��f��M|\u0003PK\u0007\b�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml��1O�0\u0010�w~�u;�\u0003\bA\u0014�\u000bB��\u0010د���\u0012ۑϴ�|�T\u0001F&��}��5�/?�3%v1h�v\n\u0004\u0005\u0013�\u000b'\r����\u0013�ۛ�\u0012�x�q\u0014\u0005\u000f�a�y��d3�G�řBi��<�\u0012�I�\b-\u000fD�O�N�G��\u0005�\u001a��\u001fG�{g�%�OO!_%�&�e,\u000fnfh��%a1S��\u001e4�81�l���pt�_p�\u0002Mvg��A-��\u0003���W\u0004���C\u001e\u0019D��Ր\u000e�\u001e�Z\u001fJ�V�v%��oPK\u0007\bx�\"m�\u0000\u0000\u0000\\\u0001\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000PK\u0003\u0004\u0014\u0000\b\b\b\u0000ndx[\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��[s�@\u0010F��WP�o\u0010�[JM\u0005�\u0001�����;��RQ�����;�Y2ߧ��7�N7=�i�\u001e����WU7۪\u001c��M϶T����r=���}���ᱪ���R����fdo��p�8�b��EsS\u001dT�ɪ��E����i\u000e�*������z��/��=\u001e.�{U�\nZ�Z��{�6w]�\u0019\u000f������\u0018�֩�SU=�\u0016�rd�-���w�S�V�u[��S�s�>;o�km-ժxٵߪc���M���׏���h�񰮎V�����tq��B#����qo��\u0012�7���E61Y\u001f��d\u001e�\u0007�\r��L�#{4Y�,5Y�,3Y�ln�\u0018Y\u000e��.��\u0002;���bߌ&U\t@r5\u0001H��\u0000��\u0003@�5\u0003H�\u001e\u0001��\u0014 \u0019�\u0000���\t��K9@��O���Ѥ,�$���>=ɧ'��$�P�n�J0\u0003H5�\u0000�f����A�s`FӉ'\u0000��'\u0000�ħ\u0003��@�9�|�УFJ%�Ip.�\u001c�\u0007>�ΧoFs��O����%���ӗ|BM�O�t�\f �v�K�\t��u�A�30�IY\u0002�Zpb�\u0001\u001d�4�|\u0006��@�\t5�m�\u0002���\u0000���\u0001�ns��u�a�34�i�I(�'dқb\u001aJ>C�g(�\f%���3�|��O��u�Q�32��\u0005�H�iB��3�|F��H�\t5�'@�\t�}\u0002d�\u0000?�ϸ�\u0019��ܟ��\u00132�?c�g,��%�P�6�\u0002���L\u0018��\u0011@:�\u001c`��O���\u0019�3���\u0012�\u0017�P�%mS�\u0017R��U��\u0015�Rn��r3��\u0007s�tb9ҏ�\u001a#\u0012�\u001e��\u0007z�\u0016f\u0013��\u0003�t�n]�-�Y�\u000e�]��\u0016h��\u0002�ح+�u�I�P�՗�^o��z�ڶ���&��\r��jU}Z�܍����N��s�m�G��u[\u001d�rO\u0013r7Ə�\u0000PK\u0007\bE��h\u000e\u0003\u0000\u0000�\u000f\u0000\u0000PK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[z��q;\u0001\u0000\u0000\u001c\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000[Content_Types].xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[��z��\u0000\u0000\u0000I\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000_rels/.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[�|wؑ\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0002\u0000\u0000docProps/app.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[���\u0005\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000g\u0003\u0000\u0000docProps/core.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[7�Iv\u0003\u0000\u0000�\t\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0004\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[�1X@C\u0001\u0000\u0000�\u0002\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000c\b\u0000\u0000xl/styles.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[x�\"m�\u0000\u0000\u0000\\\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\t\u0000\u0000xl/workbook.xmlPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\n\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002\u0014\u0000\u0014\u0000\b\b\b\u0000ndx[E��h\u000e\u0003\u0000\u0000�\u000f\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\f\u0000\u0000xl/worksheets/sheet1.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000e\u000f\u0000\u0000\u0000\u0000"}],"_postman_id":"521cdf3e-e5a0-4117-ad37-0e334018d53b"}],"id":"5d9b9561-b317-4bae-b037-ec67e8005c26","_postman_id":"5d9b9561-b317-4bae-b037-ec67e8005c26","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Specialisation","item":[{"name":"Get All","id":"9bf708bc-336c-4c7e-8094-980f5bcd93ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/specialisation/all?search=string&page=0&size=20","description":"<h1 id=\"get-all-specializations\">Get All Specializations</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves a paginated list of all specializations available in the system. It supports optional search functionality and returns results in a paginated format with metadata about the result set.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/core/specialisation/all\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a Bearer token. The token should be included in the <code>Authorization</code> header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>{{token}}</code> variable should contain a valid access token obtained through the authentication process.</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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Optional search term to filter specializations by name. When empty, returns all specializations.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>The page number to retrieve (zero-indexed). Used for pagination.</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>The number of items to return per page. Controls the page size.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-schema\">Response Schema</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"string\",\n      \"name\": \"string\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": boolean,\n      \"sorted\": boolean,\n      \"unsorted\": boolean\n    },\n    \"offset\": integer,\n    \"pageNumber\": integer,\n    \"pageSize\": integer,\n    \"paged\": boolean,\n    \"unpaged\": boolean\n  },\n  \"totalElements\": integer,\n  \"totalPages\": integer,\n  \"last\": boolean,\n  \"size\": integer,\n  \"number\": integer,\n  \"sort\": {\n    \"empty\": boolean,\n    \"sorted\": boolean,\n    \"unsorted\": boolean\n  },\n  \"numberOfElements\": integer,\n  \"first\": boolean,\n  \"empty\": boolean\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"content-array\">Content Array</h4>\n<ul>\n<li><code>content</code> - Array of specialization objects<ul>\n<li><code>uuid</code> - Unique identifier for the specialization</li>\n<li><code>name</code> - Name of the specialization</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"pagination-metadata\">Pagination Metadata</h4>\n<ul>\n<li><code>totalElements</code> - Total number of specializations across all pages</li>\n<li><code>totalPages</code> - Total number of pages available</li>\n<li><code>size</code> - Number of items per page (same as request parameter)</li>\n<li><code>number</code> - Current page number (zero-indexed)</li>\n<li><code>numberOfElements</code> - Number of items in the current page</li>\n<li><code>first</code> - Boolean indicating if this is the first page</li>\n<li><code>last</code> - Boolean indicating if this is the last page</li>\n<li><code>empty</code> - Boolean indicating if the result set is empty</li>\n</ul>\n<h4 id=\"pageable-object\">Pageable Object</h4>\n<ul>\n<li><code>offset</code> - The offset of the first item in the current page</li>\n<li><code>pageNumber</code> - Current page number</li>\n<li><code>pageSize</code> - Size of the page</li>\n<li><code>paged</code> - Boolean indicating if pagination is enabled</li>\n<li><code>unpaged</code> - Boolean indicating if pagination is disabled</li>\n</ul>\n<h4 id=\"sort-object\">Sort Object</h4>\n<ul>\n<li><code>empty</code> - Boolean indicating if sorting is empty</li>\n<li><code>sorted</code> - Boolean indicating if results are sorted</li>\n<li><code>unsorted</code> - Boolean indicating if results are unsorted</li>\n</ul>\n<h2 id=\"example-request-nodejs\">Example Request (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.highp.me';\nconst token = 'your-bearer-token';\n\nasync function getAllSpecializations(searchTerm = '', page = 0, size = 20) {\n  const url = `https://${tenantDomain}/api/core/specialisation/all?search=${searchTerm}&amp;page=${page}&amp;size=${size}`;\n  \n  const response = await fetch(url, {\n    method: 'GET',\n    headers: {\n      'Authorization': `Bearer ${token}`,\n      'Content-Type': 'application/json'\n    }\n  });\n  \n  if (!response.ok) {\n    throw new Error(`HTTP error! status: ${response.status}`);\n  }\n  \n  const data = await response.json();\n  return data;\n}\n\n// Usage examples\ngetAllSpecializations()\n  .then(data =&gt; {\n    console.log(`Total specializations: ${data.totalElements}`);\n    console.log(`Current page: ${data.number + 1} of ${data.totalPages}`);\n    console.log('Specializations:', data.content);\n  })\n  .catch(error =&gt; console.error('Error:', error));\n\n// Search for specific specializations\ngetAllSpecializations('cardio', 0, 10)\n  .then(data =&gt; console.log('Search results:', data.content))\n  .catch(error =&gt; console.error('Error:', error));\n</code></pre>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"8b65c3cf-8c1c-4859-ac17-c0db3222e35e\",\n      \"name\": \"Cardiology\"\n    },\n    {\n      \"uuid\": \"d2bd8a31-804e-4e44-81d7-48cb75e7611d\",\n      \"name\": \"Laryngolog\"\n    },\n    {\n      \"uuid\": \"4fa346dc-180f-4816-b26b-5a0387b1a9d7\",\n      \"name\": \"Neurolog\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 51,\n  \"totalPages\": 3,\n  \"last\": false,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": false,\n    \"sorted\": true,\n    \"unsorted\": false\n  },\n  \"numberOfElements\": 20,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ol>\n<li><strong>List all specializations</strong> - Retrieve all available specializations with default pagination</li>\n<li><strong>Search specializations</strong> - Filter specializations by name using the search parameter</li>\n<li><strong>Paginate through results</strong> - Navigate through large result sets using page and size parameters</li>\n<li><strong>Display in UI</strong> - Use pagination metadata to build user interfaces with page navigation</li>\n</ol>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Results are sorted by default (as indicated by the <code>sorted: true</code> field)</li>\n<li>The endpoint uses zero-based indexing for pages (first page is 0)</li>\n<li>Empty search parameter returns all specializations</li>\n<li>The response includes comprehensive pagination metadata for building navigation controls</li>\n</ul>\n","urlObject":{"path":["api","core","specialisation","all"],"host":["testsandbox.highp.me"],"query":[{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"}],"variable":[]}},"response":[{"id":"6998a52a-610d-4566-aaab-8f6e0834f377","name":"Get All","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/specialisation/all?search=string&page=0&size=20","host":["testsandbox.highp.me"],"path":["api","core","specialisation","all"],"query":[{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:48:15 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:48:14 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-eea264ac136e614d83520a55faa4610f' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-eea264ac136e614d83520a55faa4610f' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"uuid\": \"0b6c6f4d-4232-4f95-b0dc-161aa6887d72\",\n            \"name\": \"apa\"\n        },\n        {\n            \"uuid\": \"d2462970-1899-4ab3-8ccf-28c03fbf489c\",\n            \"name\": \"apa\"\n        },\n        {\n            \"uuid\": \"4a7460fc-70d8-4728-8483-39454f3b722c\",\n            \"name\": \"apcll\"\n        },\n        {\n            \"uuid\": \"8b65c3cf-8c1c-4859-ac17-c0db3222e35e\",\n            \"name\": \"Cardiology\"\n        },\n        {\n            \"uuid\": \"c9cfa472-aa91-480a-971c-b60dddf84693\",\n            \"name\": \"choroby wewnętrzne\"\n        },\n        {\n            \"uuid\": \"30522c79-d50c-47c0-86ad-10507af99256\",\n            \"name\": \"Dok\"\n        },\n        {\n            \"uuid\": \"032a4f44-05b3-4909-a734-07abf57da40d\",\n            \"name\": \"Dok\"\n        },\n        {\n            \"uuid\": \"64d7e076-6b5e-4ec6-a913-2b7ae8823974\",\n            \"name\": \"Lab234\"\n        },\n        {\n            \"uuid\": \"d2bd8a31-804e-4e44-81d7-48cb75e7611d\",\n            \"name\": \"Laryngolog\"\n        },\n        {\n            \"uuid\": \"4fa346dc-180f-4816-b26b-5a0387b1a9d7\",\n            \"name\": \"Neurolog\"\n        },\n        {\n            \"uuid\": \"baad6d21-4cdf-4818-8dc4-5f524dfc9aa1\",\n            \"name\": \"neurologia\"\n        },\n        {\n            \"uuid\": \"3df1cac8-35f7-407c-837a-bfb3f577d6ce\",\n            \"name\": \"nowa9881999\"\n        },\n        {\n            \"uuid\": \"a31ff6f7-cc69-4b47-aacc-89f8ed5a6d2d\",\n            \"name\": \"nowa988wb\"\n        },\n        {\n            \"uuid\": \"2db2ba88-5330-44b7-a546-54d97d9dbf91\",\n            \"name\": \"poz\"\n        },\n        {\n            \"uuid\": \"422d2786-a34c-4cde-843b-d45e33272005\",\n            \"name\": \"psychiatria\"\n        },\n        {\n            \"uuid\": \"16a88aaf-ee12-46db-aad0-a136a4cd1e4f\",\n            \"name\": \"rwrw\"\n        },\n        {\n            \"uuid\": \"7a4a726b-bd22-465e-ae15-80de61ff1f50\",\n            \"name\": \"sff3344\"\n        },\n        {\n            \"uuid\": \"51c0a16f-7c6b-4e3e-81bc-1d627a7cfc1c\",\n            \"name\": \"speceli\"\n        },\n        {\n            \"uuid\": \"b0a8dc04-ebc7-4824-b8df-b2fefde929ed\",\n            \"name\": \"specSGGW\"\n        },\n        {\n            \"uuid\": \"c53b286f-4e7c-4770-8302-a3409fb24958\",\n            \"name\": \"specSGGW0\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 51,\n    \"totalPages\": 3,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"9bf708bc-336c-4c7e-8094-980f5bcd93ef"},{"name":"Create","id":"3c36cf40-401d-4c31-9a13-0bb823e28b1f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"new test\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/specialisation/create","description":"<h1 id=\"create-specialisation\">Create Specialisation</h1>\n<p>Creates a new specialisation in the Highp platform. A specialisation represents a specific area of expertise or category that can be assigned to users, content, or other entities within the system.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/specialisation/create</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer {{token}}</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be a JSON object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\"\n}\n</code></pre>\n<h3 id=\"parameters\">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>name</td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the specialisation to create</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"new test\"\n}\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the specialisation is successfully created, the API returns a JSON object containing the newly created specialisation details.</p>\n<p><strong>Response Schema:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"name\": \"string\"\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>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>uuid</td>\n<td>string</td>\n<td>Unique identifier (UUID) for the created specialisation</td>\n</tr>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>The name of the specialisation</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n  \"name\": \"new test\"\n}\n</code></pre>\n<h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst createSpecialisation = async () =&gt; {\n  const url = 'https://{{tenant_domain}}/api/core/specialisation/create';\n  \n  const requestBody = {\n    name: 'new test'\n  };\n  \n  const options = {\n    method: 'POST',\n    headers: {\n      'Authorization': 'Bearer {{token}}',\n      'Content-Type': 'application/json'\n    },\n    body: JSON.stringify(requestBody)\n  };\n  \n  try {\n    const response = await fetch(url, options);\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('Specialisation created:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating specialisation:', error);\n    throw error;\n  }\n};\n\n// Usage\ncreateSpecialisation();\n</code></pre>\n<h2 id=\"authentication-notes\">Authentication Notes</h2>\n<ul>\n<li>This endpoint requires authentication via a Bearer token</li>\n<li>The token must be included in the <code>Authorization</code> header as: <code>Bearer {your_token}</code></li>\n<li>The <code>{{token}}</code> variable should be replaced with your actual access token</li>\n<li>The <code>{{tenant_domain}}</code> variable should be replaced with your tenant's domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"important-notes\">Important Notes</h2>\n<ul>\n<li>The specialisation name must be provided in the request body</li>\n<li>Upon successful creation, the API returns a unique UUID that can be used to reference this specialisation in other API calls</li>\n<li>Ensure your Bearer token has the necessary permissions to create specialisations</li>\n</ul>\n","urlObject":{"path":["api","core","specialisation","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"528781e6-1edf-4e45-b7ad-75b07e8ce0e3","name":"Create","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"new test\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/specialisation/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:48:48 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:48:47 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-aec1a464b33e7cd29e75814b0b2730ce' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-aec1a464b33e7cd29e75814b0b2730ce' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n    \"name\": \"new test\"\n}"}],"_postman_id":"3c36cf40-401d-4c31-9a13-0bb823e28b1f"},{"name":"Update","id":"edc165f1-72a8-4001-ba0b-479b35a14a79","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"new name ed\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/specialisation/4b5ec0e8-0052-43b4-91aa-6766efcdac44","description":"<h2 id=\"update-specialisation\">Update Specialisation</h2>\n<p>Updates an existing specialisation by its UUID. This endpoint allows you to modify the properties of a specialisation resource.</p>\n<h3 id=\"http-method\">HTTP Method</h3>\n<p><code>PUT</code></p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{{tenant_domain}}/api/core/specialisation/{uuid}\n</code></pre><h3 id=\"path-parameters\">Path 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>uuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the specialisation to update (UUID format)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>tenant_domain</code> - Your Highp tenant domain</li>\n<li><code>token</code> - Your authentication bearer token</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The request body should be in JSON format with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\"\n}\n</code></pre>\n<h4 id=\"request-body-parameters\">Request Body Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The new name for the specialisation</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"new name ed\"\n}\n</code></pre>\n<h3 id=\"nodejs-fetch-example\">Node.js Fetch Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\nconst token = 'your_bearer_token_here'; // Replace with your authentication token\nconst specialisationUuid = '4b5ec0e8-0052-43b4-91aa-6766efcdac44'; // Replace with the UUID\n\nconst updateSpecialisation = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/specialisation/${specialisationUuid}`,\n      {\n        method: 'PUT',\n        headers: {\n          'Authorization': `Bearer ${token}`,\n          'Content-Type': 'application/json'\n        },\n        body: JSON.stringify({\n          name: 'new name ed'\n        })\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Specialisation updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating specialisation:', error);\n    throw error;\n  }\n};\n\n// Call the function\nupdateSpecialisation();\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<h4 id=\"success-response-200-ok\">Success Response (200 OK)</h4>\n<p>When the specialisation is successfully updated, the API returns the updated specialisation object.</p>\n<p><strong>Response Schema:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"name\": \"string\"\n}\n</code></pre>\n<p><strong>Response Fields:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the specialisation (UUID format)</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The updated name of the specialisation</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n  \"name\": \"new name ed\"\n}\n</code></pre>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Type</code>: application/json</li>\n<li><code>Cache-Control</code>: no-cache</li>\n</ul>\n<h3 id=\"error-responses\">Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid request body or parameters</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Specialisation with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"notes\">Notes</h3>\n<ul>\n<li>The UUID in the URL path must be a valid UUID format</li>\n<li>The <code>name</code> field in the request body is required</li>\n<li>The response returns the complete updated specialisation object</li>\n<li>This is an idempotent operation - multiple identical requests will produce the same result</li>\n</ul>\n","urlObject":{"path":["api","core","specialisation","4b5ec0e8-0052-43b4-91aa-6766efcdac44"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"db26a2dd-96ed-42e5-b706-788a4e8e4a86","name":"Update","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"new name ed\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/specialisation/4b5ec0e8-0052-43b4-91aa-6766efcdac44"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:50:28 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:50:27 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-241216dfc1ae524b40cb51374d610b39' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-241216dfc1ae524b40cb51374d610b39' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n    \"name\": \"new name ed\"\n}"}],"_postman_id":"edc165f1-72a8-4001-ba0b-479b35a14a79"},{"name":"Delete","id":"9e62eada-f981-4fce-a402-e7a713516143","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/specialisation/4b5ec0e8-0052-43b4-91aa-6766efcdac44","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint deletes a specific specialisation from the Highp platform. A specialisation represents a categorization or classification within the system that can be permanently removed using this endpoint.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>DELETE</code></p>\n<p><strong>URL Structure:</strong> <code>https://{tenant_domain}/api/core/specialisation/{specialisation_id}</code></p>\n<h3 id=\"path-parameters\">Path 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>specialisation_id</code></td>\n<td>UUID</td>\n<td>Yes</td>\n<td>The unique identifier of the specialisation to delete (e.g., <code>4b5ec0e8-0052-43b4-91aa-6766efcdac44</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"url-variables\">URL Variables</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>Your Highp tenant domain</td>\n<td><code>testsandbox.highp.me</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {token}\n</code></pre><p>The <code>token</code> variable should contain a valid access token obtained through the Highp authentication flow.</p>\n<h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me';\nconst specialisationId = '4b5ec0e8-0052-43b4-91aa-6766efcdac44';\nconst token = 'your_access_token_here';\n\nconst deleteSpecialisation = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/specialisation/${specialisationId}`,\n      {\n        method: 'DELETE',\n        headers: {\n          'Authorization': `Bearer ${token}`\n        }\n      }\n    );\n\n    if (response.ok) {\n      console.log('Specialisation deleted successfully');\n      return { success: true, status: response.status };\n    } else {\n      console.error('Failed to delete specialisation:', response.status);\n      return { success: false, status: response.status };\n    }\n  } catch (error) {\n    console.error('Error deleting specialisation:', error);\n    throw error;\n  }\n};\n\n// Execute the deletion\ndeleteSpecialisation();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the specialisation is successfully deleted, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n<li><code>X-XSS-Protection: 1; mode=block</code></li>\n</ul>\n<h3 id=\"response-model\">Response Model</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Successful deletion returns no content\n// HTTP Status: 200 OK\n// Body: (empty)\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Insufficient permissions to delete the specialisation</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Specialisation with the specified ID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>This is a destructive operation and cannot be undone</li>\n<li>Ensure you have the correct <code>specialisation_id</code> before making the request</li>\n<li>The specialisation must exist and be accessible to your tenant</li>\n<li>Deleting a specialisation may affect related entities in the system</li>\n</ul>\n","urlObject":{"path":["api","core","specialisation","4b5ec0e8-0052-43b4-91aa-6766efcdac44"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"49f1d370-77a9-411f-8d0b-cb415a3c7835","name":"Delete","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/specialisation/4b5ec0e8-0052-43b4-91aa-6766efcdac44"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:51:36 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:51:35 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-3b29dcdfe2019b827c6d6011caf9f052' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-3b29dcdfe2019b827c6d6011caf9f052' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"9e62eada-f981-4fce-a402-e7a713516143"},{"name":"Add Relation To Contact","id":"b5ec06ca-865e-4de0-a0aa-1064b65f5e47","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"specialisationUuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/specialisation/add-relation","description":"<h1 id=\"add-relation-to-contact\">Add Relation To Contact</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates a relationship between a specialisation and a contact. It allows you to associate a specific contact with a specialisation in the system.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/specialisation/add-relation</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication. Include the authentication token in your request headers.</p>\n<p><strong>Required Headers:</strong></p>\n<ul>\n<li><code>Authorization</code>: Bearer token (use <code>{{token}}</code> variable)</li>\n<li><code>Content-Type</code>: <code>application/json</code></li>\n</ul>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be a JSON object with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>specialisationUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the specialisation</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact to relate to the specialisation</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-schema\">Request Body Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"specialisationUuid\": \"string (UUID format)\",\n  \"contactUuid\": \"string (UUID format)\"\n}\n</code></pre>\n<h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"specialisationUuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}\n</code></pre>\n<h2 id=\"code-example---nodejs-fetch\">Code Example - Node.js (fetch)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.com'; // Replace with your tenant domain\nconst token = 'your-auth-token'; // Replace with your authentication token\n\nconst url = `https://${tenantDomain}/api/core/specialisation/add-relation`;\n\nconst requestBody = {\n  specialisationUuid: '4b5ec0e8-0052-43b4-91aa-6766efcdac44',\n  contactUuid: '58caa5c6-6419-4ed6-b05a-3faae5134d4b'\n};\n\nconst options = {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n    'Authorization': `Bearer ${token}`\n  },\n  body: JSON.stringify(requestBody)\n};\n\nfetch(url, options)\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Success:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<p>The endpoint returns a response indicating the success or failure of the relation creation operation.</p>\n<h2 id=\"variables-used\">Variables Used</h2>\n<ul>\n<li><code>tenant_domain</code>: Your tenant's domain</li>\n<li><code>token</code>: Authentication token for API access</li>\n</ul>\n<h2 id=\"related-resources\">Related Resources</h2>\n<p>This endpoint is referenced in similar implementations across multiple workspaces:</p>\n<ul>\n<li><a href=\"request/8706392-012ba0f2-a565-48e2-b226-76a2df7c367c\">Request: Add Relation To Contact</a></li>\n<li><a href=\"request/34554089-6bc2f3ab-352f-4ea3-be27-c264eacf5602\">Request: Add Relation To Contact</a></li>\n<li><a href=\"request/34554089-7ee7425b-5391-4635-9746-6c2bfe821539\">Request: Add Relation To Contact</a></li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Ensure both UUIDs are valid and exist in the system before making the request</li>\n<li>The specialisation and contact must be accessible within your tenant's scope</li>\n<li>Invalid UUIDs or non-existent entities will result in an error response</li>\n</ul>\n","urlObject":{"path":["api","core","specialisation","add-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"6fe8896f-a91c-4f74-8cd6-4ebc50e864fb","name":"Add Relation To Contact","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"specialisationUuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/specialisation/add-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:51:04 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:51:03 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-6bddeba2a0332e2630c76733c2528086' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-6bddeba2a0332e2630c76733c2528086' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"b5ec06ca-865e-4de0-a0aa-1064b65f5e47"},{"name":"Delete Relation To Contact","id":"b0ea34da-01c9-4296-9999-ec61fd5b8dd7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"specialisationUuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/specialisation/remove-relation","description":"<h1 id=\"delete-relation-to-contact\">Delete Relation To Contact</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint removes an existing relation between a specialisation and a contact in the Highp platform. When a contact is no longer associated with a particular specialisation, this endpoint can be used to delete that relationship.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>URL</strong>: <code>https://{{tenant_domain}}/api/core/specialisation/remove-relation</code></li>\n<li><strong>Method</strong>: <code>POST</code></li>\n<li><strong>Authentication</strong>: Bearer Token (required)</li>\n</ul>\n<h2 id=\"variables\">Variables</h2>\n<p>This endpoint uses the following variables:</p>\n<ul>\n<li><code>{{tenant_domain}}</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>{{token}}</code> - Your authentication bearer token</li>\n</ul>\n<h2 id=\"request-headers\">Request Headers</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\nContent-Type: application/json\n</code></pre><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be a JSON object with the following required fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>specialisationUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the specialisation</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"specialisationUuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the relation is successfully deleted, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code</strong>: <code>200 OK</code></p>\n<p><strong>Response Body</strong>: Empty (Content-Length: 0)</p>\n<p><strong>Response Headers</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Length: 0\nCache-Control: no-cache\nX-Content-Type-Options: nosniff\nX-Frame-Options: DENY\nX-XSS-Protection: 1; mode=block\n</code></pre><h2 id=\"code-example-nodejs-with-fetch\">Code Example (Node.js with fetch)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst token = 'your_bearer_token_here'; // Replace with your actual token\n\nconst deleteRelationToContact = async (specialisationUuid, contactUuid) =&gt; {\n  const url = `https://${tenantDomain}/api/core/specialisation/remove-relation`;\n  \n  const requestBody = {\n    specialisationUuid: specialisationUuid,\n    contactUuid: contactUuid\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (response.ok) {\n      console.log('Relation deleted successfully');\n      console.log('Status:', response.status); // 200\n      return { success: true, status: response.status };\n    } else {\n      console.error('Failed to delete relation:', response.status, response.statusText);\n      const errorText = await response.text();\n      console.error('Error details:', errorText);\n      return { success: false, status: response.status, error: errorText };\n    }\n  } catch (error) {\n    console.error('Request failed:', error);\n    return { success: false, error: error.message };\n  }\n};\n\n// Example usage\ndeleteRelationToContact(\n  '4b5ec0e8-0052-43b4-91aa-6766efcdac44',\n  '58caa5c6-6419-4ed6-b05a-3faae5134d4b'\n);\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Ensure both UUIDs are valid and exist in the system before attempting to delete the relation</li>\n<li>The endpoint returns an empty response body on success</li>\n<li>Authentication is required via Bearer token in the Authorization header</li>\n<li>The operation is idempotent - calling it multiple times with the same UUIDs will not cause errors</li>\n</ul>\n","urlObject":{"path":["api","core","specialisation","remove-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"382815ae-fb0c-4687-9770-3bf19bb2f476","name":"Delete Relation To Contact","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"specialisationUuid\": \"4b5ec0e8-0052-43b4-91aa-6766efcdac44\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/specialisation/remove-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 12:51:11 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 12:51:10 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-78c4abf64248427822d80572cbe0276d' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-78c4abf64248427822d80572cbe0276d' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"b0ea34da-01c9-4296-9999-ec61fd5b8dd7"}],"id":"c19e41e6-f50a-468c-8556-0b90dbb3e758","_postman_id":"c19e41e6-f50a-468c-8556-0b90dbb3e758","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Storage","item":[{"name":"Create or update","id":"f6227570-2e74-4040-8d95-6bef0c266639","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"test\": \"value\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/storage/create-or-update","description":"<p>Create or update data for user (user uuid identified by JWT token)</p>\n","urlObject":{"path":["api","core","storage","create-or-update"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"6d1b4857-fc50-4dfc-ac33-01a0a8283691","name":"Create or update","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"test\": \"value\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/storage/create-or-update"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Tue, 30 Dec 2025 10:40:16 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"41"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Tue, 30 Dec 2025 10:40:15 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-6b149363870efb02695dea931ecea73e' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-6b149363870efb02695dea931ecea73e' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"}],"cookie":[],"responseTime":null,"body":"{\"test\":\"value\",\"objectx\":{\"name\":\"xyz\"}}"}],"_postman_id":"f6227570-2e74-4040-8d95-6bef0c266639"},{"name":"Chceck if key exists in data","id":"42b18754-c7e2-4597-a0c9-5910f01bcd40","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/storage/exists/{key}","description":"<p>Check if given key exists in json data.</p>\n","urlObject":{"protocol":"https","path":["api","core","storage","exists","{key}"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"da61bc12-874f-433f-a541-a288b3ad05ed","name":"Chceck if key exists in data","originalRequest":{"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/storage/exists/objectx.name"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Date","value":"Tue, 30 Dec 2025 10:42:25 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"Tue, 30 Dec 2025 10:42:24 GMT"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Disposition","value":"inline;filename=f.txt"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-190fc1d990e9130bc9dc502cb615c67b' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-190fc1d990e9130bc9dc502cb615c67b' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\n    \"exists\": true\n}"}],"_postman_id":"42b18754-c7e2-4597-a0c9-5910f01bcd40"},{"name":"Delete","id":"ebce49c1-a114-4722-bc61-e6d43b41eae0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/storage/delete","description":"<p>Delete storage object for user.</p>\n","urlObject":{"path":["api","core","storage","delete"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"ebce49c1-a114-4722-bc61-e6d43b41eae0"},{"name":"Delete key","id":"b44cb1bc-0804-49ce-aa60-48f56f82991c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://{{tenant_domain}}/api/core/storage/delete-key/{key}","description":"<p>Delete json key from data</p>\n","urlObject":{"protocol":"https","path":["api","core","storage","delete-key","{key}"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"5d5fbe27-ba4b-4c2e-84de-3c072bc602e1","name":"Delete key","originalRequest":{"method":"DELETE","header":[],"url":"https://{{tenant_domain}}/api/core/storage/delete-key/objectx"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Date","value":"Tue, 30 Dec 2025 10:42:56 GMT"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"16"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"Tue, 30 Dec 2025 10:42:55 GMT"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-2bb0998762a2017f16841748f9b499e5' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-2bb0998762a2017f16841748f9b499e5' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\"test\":\"value\"}"}],"_postman_id":"b44cb1bc-0804-49ce-aa60-48f56f82991c"},{"name":"Get data or by key","id":"1df4f00b-8428-4c4c-ae3f-8af523b8ef3e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/storage/get/{key}","description":"<p>Get user storage data.<br />If key not specified - return whole data object.<br />If key specified - return json for this json key.</p>\n","urlObject":{"protocol":"https","path":["api","core","storage","get","{key}"],"host":["{{tenant_domain}}"],"query":[],"variable":[]}},"response":[{"id":"def2fc2e-9319-4eac-a36e-7a2504f63772","name":"Get data or by key","originalRequest":{"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/storage/get"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Date","value":"Tue, 30 Dec 2025 10:41:48 GMT"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"45"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"Tue, 30 Dec 2025 10:41:47 GMT"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9506bbf1001d39023589d77cefb5f38f' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9506bbf1001d39023589d77cefb5f38f' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"{\"test\": \"value\", \"objectx\": {\"name\": \"xyz\"}}"},{"id":"43718848-bdfc-4d73-8845-3ddf011f8edc","name":"Get data or by key","originalRequest":{"method":"GET","header":[],"url":"https://{{tenant_domain}}/api/core/storage/get/test"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Date","value":"Tue, 30 Dec 2025 10:42:02 GMT"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"5"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"Tue, 30 Dec 2025 10:42:01 GMT"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-ac38586d77e49ddc537e4bc03f459898' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-ac38586d77e49ddc537e4bc03f459898' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":"value"}],"_postman_id":"1df4f00b-8428-4c4c-ae3f-8af523b8ef3e"},{"name":"Chceck if key exists in data","id":"2c2656e1-9298-46d3-8f0e-c987da32caf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/storage/exists/:key","description":"<p>Check if given key exists in json data.</p>\n","urlObject":{"path":["api","core","storage","exists",":key"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"id":"d54b49f5-d049-4e22-a5c1-efa0a69125a3","type":"any","key":"key"}]}},"response":[{"id":"0c79bf82-d71d-4ece-86b8-abd5fb4b6373","name":"Chceck if key exists in data","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/storage/exists/:key","host":["testsandbox.highp.me"],"path":["api","core","storage","exists",":key"],"variable":[{"key":"key"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Tue, 30 Dec 2025 10:42:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Tue, 30 Dec 2025 10:42:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Disposition","value":"inline;filename=f.txt"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-190fc1d990e9130bc9dc502cb615c67b' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-190fc1d990e9130bc9dc502cb615c67b' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"2c2656e1-9298-46d3-8f0e-c987da32caf3"},{"name":"Delete key","id":"80595a3c-11c5-4186-9ece-38cfef8dc548","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/storage/delete-key/:key","description":"<p>Delete json key from data</p>\n","urlObject":{"path":["api","core","storage","delete-key",":key"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"id":"0661b9b6-ef18-419f-ab12-b8c9d5536653","type":"any","key":"key"}]}},"response":[{"id":"c13fe07f-6892-4f9f-b5e7-9014182dcd05","name":"Delete key","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/storage/delete-key/:key","host":["testsandbox.highp.me"],"path":["api","core","storage","delete-key",":key"],"variable":[{"key":"key"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Tue, 30 Dec 2025 10:42:56 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"16"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Tue, 30 Dec 2025 10:42:55 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-2bb0998762a2017f16841748f9b499e5' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-2bb0998762a2017f16841748f9b499e5' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"80595a3c-11c5-4186-9ece-38cfef8dc548"},{"name":"Get data or by key","id":"aff278ba-1c04-47d1-9314-919a6754b429","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/storage/get/:key","description":"<p>Get user storage data.<br />If key not specified - return whole data object.<br />If key specified - return json for this json key.</p>\n","urlObject":{"path":["api","core","storage","get",":key"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"id":"a99358e0-4c4c-4628-ad48-931e1150efcf","type":"any","key":"key"}]}},"response":[{"id":"7e5759ea-ba0e-4b65-819e-10ea0274975b","name":"Get data or by key","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/storage/get/:key","host":["testsandbox.highp.me"],"path":["api","core","storage","get",":key"],"variable":[{"key":"key"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Tue, 30 Dec 2025 10:41:48 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"45"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Tue, 30 Dec 2025 10:41:47 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9506bbf1001d39023589d77cefb5f38f' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9506bbf1001d39023589d77cefb5f38f' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"aff278ba-1c04-47d1-9314-919a6754b429"}],"id":"98bfcc0a-4dd5-42d9-9e61-4bc90266cbc5","_postman_id":"98bfcc0a-4dd5-42d9-9e61-4bc90266cbc5","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"User","item":[{"name":"Get All","id":"07587a25-6d53-4476-85cc-34ddb8a2ffb8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/user/all?discriminator=rep&activated=true&search=string&page=0&size=20&sortBy=lastName&sortDirection=asc","description":"<h3 id=\"retrieve-users\">Retrieve Users</h3>\n<p>This endpoint retrieves a list of users based on the provided query parameters.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li>Method: GET</li>\n<li>URL: <code>https://{{tenant_domain}}/api/core/user/all</code></li>\n<li>Query Parameters:<ul>\n<li><code>discriminator</code>: rep (filter by user type)</li>\n<li><code>activated</code>: true (filter by activation status)</li>\n<li><code>search</code>: (optional search term)</li>\n<li><code>page</code>: 0 (page number for pagination)</li>\n<li><code>size</code>: 20 (number of items per page)</li>\n<li><code>sortBy</code>: lastName (field to sort by)</li>\n<li><code>sortDirection</code>: asc (sort direction: asc or desc)</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"nodejs-fetch-example\">Node.js Fetch Example</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant-domain.com';\nconst token = 'your-auth-token';\n\nconst url = new URL(`https://${tenantDomain}/api/core/user/all`);\nurl.searchParams.append('discriminator', 'rep');\nurl.searchParams.append('activated', 'true');\nurl.searchParams.append('search', '');\nurl.searchParams.append('page', '0');\nurl.searchParams.append('size', '20');\nurl.searchParams.append('sortBy', 'lastName');\nurl.searchParams.append('sortDirection', 'asc');\n\nconst options = {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n};\n\nfetch(url, options)\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Users retrieved:', data);\n    console.log('Total users:', data.totalElements);\n    console.log('Total pages:', data.totalPages);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching users:', error);\n  });\n</code></pre>\n<h4 id=\"response-model\">Response Model</h4>\n<p><strong>Status:</strong> 200 OK<br /><strong>Content-Type:</strong> application/json</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"string\",\n      \"firstName\": \"string\",\n      \"lastName\": \"string\",\n      \"email\": \"string\",\n      \"phoneNumber\": \"string\",\n      \"gender\": \"string | null\",\n      \"businessTitle\": \"string\",\n      \"role\": \"string\",\n      \"privileges\": [\"string\"],\n      \"avatarMediaAssetId\": \"string | null\",\n      \"avatarFileName\": \"string | null\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": \"boolean\",\n      \"sorted\": \"boolean\",\n      \"unsorted\": \"boolean\"\n    },\n    \"offset\": \"number\",\n    \"pageNumber\": \"number\",\n    \"pageSize\": \"number\",\n    \"paged\": \"boolean\",\n    \"unpaged\": \"boolean\"\n  },\n  \"totalPages\": \"number\",\n  \"totalElements\": \"number\",\n  \"last\": \"boolean\",\n  \"size\": \"number\",\n  \"number\": \"number\",\n  \"sort\": {\n    \"empty\": \"boolean\",\n    \"sorted\": \"boolean\",\n    \"unsorted\": \"boolean\"\n  },\n  \"numberOfElements\": \"number\",\n  \"first\": \"boolean\",\n  \"empty\": \"boolean\"\n}\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<ul>\n<li><p><strong>content</strong>: Array of user objects matching the query criteria</p>\n<ul>\n<li><strong>uuid</strong>: Unique identifier for the user</li>\n<li><strong>firstName</strong>: User's first name</li>\n<li><strong>lastName</strong>: User's last name</li>\n<li><strong>email</strong>: User's email address</li>\n<li><strong>phoneNumber</strong>: User's phone number</li>\n<li><strong>gender</strong>: User's gender (nullable)</li>\n<li><strong>businessTitle</strong>: User's business title</li>\n<li><strong>role</strong>: User's role in the system</li>\n<li><strong>privileges</strong>: Array of privilege strings assigned to the user</li>\n<li><strong>avatarMediaAssetId</strong>: ID of the user's avatar media asset (nullable)</li>\n<li><strong>avatarFileName</strong>: Filename of the user's avatar (nullable)</li>\n</ul>\n</li>\n<li><p><strong>pageable</strong>: Pagination information object</p>\n</li>\n<li><p><strong>totalPages</strong>: Total number of pages available</p>\n</li>\n<li><p><strong>totalElements</strong>: Total number of users matching the criteria</p>\n</li>\n<li><p><strong>last</strong>: Boolean indicating if this is the last page</p>\n</li>\n<li><p><strong>size</strong>: Number of items per page</p>\n</li>\n<li><p><strong>number</strong>: Current page number</p>\n</li>\n<li><p><strong>numberOfElements</strong>: Number of elements in the current page</p>\n</li>\n<li><p><strong>first</strong>: Boolean indicating if this is the first page</p>\n</li>\n<li><p><strong>empty</strong>: Boolean indicating if the result set is empty</p>\n</li>\n</ul>\n","urlObject":{"path":["api","core","user","all"],"host":["testsandbox.highp.me"],"query":[{"key":"discriminator","value":"rep"},{"description":{"content":"<p>checking if user has password (activated)</p>\n","type":"text/plain"},"key":"activated","value":"true"},{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastName"},{"key":"sortDirection","value":"asc"}],"variable":[]}},"response":[{"id":"14f7deb5-9608-4985-9a51-9eed1620b0c6","name":"Get All","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/user/all?discriminator=rep&activated=true&search=string&page=0&size=20&sortBy=lastName&sortDirection=asc","host":["testsandbox.highp.me"],"path":["api","core","user","all"],"query":[{"key":"discriminator","value":"rep"},{"description":"checking if user has password (activated)","key":"activated","value":"true"},{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"},{"key":"sortBy","value":"lastName"},{"key":"sortDirection","value":"asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:41:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:41:23 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-03947e5e23a56625fc127b0f2ae169e5' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-03947e5e23a56625fc127b0f2ae169e5' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"uuid\": \"0e2bd89f-bb80-458f-a8a5-008d8ef6f31e\",\n            \"firstName\": \"Kamil\",\n            \"lastName\": \"Augustowski\",\n            \"email\": \"kamil.augustowski@connectmedica.com\",\n            \"phoneNumber\": null,\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"8ef2a1d8-ed9a-4028-abff-38fc36810f10\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+10@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"a5cc918f-54f2-4d9d-8573-ce40a1aefcb2\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+23@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"0d73071a-6ccc-4db8-be43-7dc1e5ab6416\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+8@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"bc11ed70-b61d-473d-ad18-cae18a917777\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+18@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"6db076bf-99c0-4eca-9ee5-3273aa67d8e6\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+6@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"bfe63a72-8d09-456f-a4d2-3eab67cebfa7\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+4@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"ff4c819c-510a-49a6-9ba4-87e9dfaec507\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+9@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"0b76bc9b-0724-4b67-a12e-8c1befd513d9\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+7@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"490520e1-2e72-4c0f-898e-3b075f64b67b\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+3@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"3eed5205-f22a-4603-acaf-11aea0fac88a\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+1@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"45e6086d-1ecf-4873-8985-1bdc5e37ef86\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+19@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"fdb3d600-9026-4517-8fa4-83b8853d3295\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+20@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"bd3a384f-af2a-459e-9dfc-c5066bdeeab2\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+22@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"26a76a57-ddd3-49d0-8191-d49a146fc9aa\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+11@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"9606de66-2175-4fe8-be57-c47418c55022\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+24@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"06279388-21e8-402c-bfed-213366bb1386\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+5@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"5116566d-3f6b-496b-ae3f-ba1083768242\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+2@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": false,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"b0f6a68a-8a95-459c-b435-838cd5c395d4\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+12@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        },\n        {\n            \"uuid\": \"de0dd107-1907-4cbe-9be3-3f2cce55f52c\",\n            \"firstName\": \"A\",\n            \"lastName\": \"B\",\n            \"email\": \"nowytest988+13@gmail.com\",\n            \"phoneNumber\": \"500600700\",\n            \"gender\": null,\n            \"businessTitle\": null,\n            \"role\": \"rep\",\n            \"privileges\": [\n                \"ROLE_REP\"\n            ],\n            \"avatarMediaAssetId\": null,\n            \"avatarFileName\": null\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 62,\n    \"totalPages\": 4,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"unsorted\": false,\n        \"sorted\": true\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"07587a25-6d53-4476-85cc-34ddb8a2ffb8"},{"name":"Get By uuid","id":"d3c4bc6b-28a6-4253-8a45-6a189237a707","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/user/4f931de4-ee9c-4412-aa5b-20a840c21ca5","description":"<p>This endpoint retrieves a specific user's information by their unique identifier (UUID). The HTTP GET request should be made to <code>https://{{tenant_domain}}/api/core/user/{uuid}</code>.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/user/{uuid}\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\n<ul>\n<li><code>uuid</code> (string, required): The unique identifier of the user to retrieve.</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {access_token}\n</code></pre><h2 id=\"nodejs-example\">Node.js Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant-domain.highp.me';\nconst userUuid = '4f931de4-ee9c-4412-aa5b-20a840c21ca5';\nconst accessToken = 'your_access_token';\n\nasync function getUserByUuid(uuid) {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/user/${uuid}`,\n      {\n        method: 'GET',\n        headers: {\n          'Authorization': `Bearer ${accessToken}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const userData = await response.json();\n    console.log('User data:', userData);\n    return userData;\n  } catch (error) {\n    console.error('Error fetching user:', error);\n    throw error;\n  }\n}\n\n// Usage\ngetUserByUuid(userUuid);\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The response returns a JSON object containing the user's information.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the user</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>The user's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>The user's last name</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>The user's email address</td>\n</tr>\n<tr>\n<td><code>phoneNumber</code></td>\n<td>string | null</td>\n<td>The user's phone number (nullable)</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>string | null</td>\n<td>The user's gender (nullable)</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string | null</td>\n<td>The user's job title (nullable)</td>\n</tr>\n<tr>\n<td><code>role</code></td>\n<td>string</td>\n<td>The user's role in the system</td>\n</tr>\n<tr>\n<td><code>privileges</code></td>\n<td>array[string]</td>\n<td>An array of privilege identifiers assigned to the user</td>\n</tr>\n<tr>\n<td><code>avatarMediaAssetId</code></td>\n<td>number | null</td>\n<td>The ID of the user's avatar media asset (nullable)</td>\n</tr>\n<tr>\n<td><code>avatarFileName</code></td>\n<td>string | null</td>\n<td>The filename of the user's avatar (nullable)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"0e2bd89f-bb80-458f-a8a5-008d8ef6f31e\",\n  \"firstName\": \"Kamil\",\n  \"lastName\": \"Augustowski\",\n  \"email\": \"kamil.augustowski@connectmedica.com\",\n  \"phoneNumber\": null,\n  \"gender\": null,\n  \"businessTitle\": null,\n  \"role\": \"rep\",\n  \"privileges\": [\n    \"ROLE_REP\"\n  ],\n  \"avatarMediaAssetId\": null,\n  \"avatarFileName\": null\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<ul>\n<li><strong>401 Unauthorized</strong>: Invalid or missing authentication token</li>\n<li><strong>403 Forbidden</strong>: Insufficient permissions to access this user</li>\n<li><strong>404 Not Found</strong>: User with the specified UUID does not exist</li>\n</ul>\n","urlObject":{"path":["api","core","user","4f931de4-ee9c-4412-aa5b-20a840c21ca5"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"a1380279-8666-4a98-bef3-ecfaec592235","name":"Get By Uuod","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/user/4f931de4-ee9c-4412-aa5b-20a840c21ca5"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:41:46 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:41:45 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-5dc1f8c2e545ea5650775b139ce07d07' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-5dc1f8c2e545ea5650775b139ce07d07' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"0e2bd89f-bb80-458f-a8a5-008d8ef6f31e\",\n    \"firstName\": \"Kamil\",\n    \"lastName\": \"Augustowski\",\n    \"email\": \"kamil.augustowski@connectmedica.com\",\n    \"phoneNumber\": null,\n    \"gender\": null,\n    \"businessTitle\": null,\n    \"role\": \"rep\",\n    \"privileges\": [\n        \"ROLE_REP\"\n    ],\n    \"avatarMediaAssetId\": null,\n    \"avatarFileName\": null\n}"}],"_postman_id":"d3c4bc6b-28a6-4253-8a45-6a189237a707"},{"name":"Create","id":"2f07f3df-0275-4998-b21d-c55ef493c25a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"Jan\",\n  \"lastName\": \"Kowalski\",\n  \"email\": \"jan.kowa@niepodam.pl\",\n  \"phoneNumber\": \"+48123456789\",\n  \"gender\": true,\n  \"businessTitle\": \"Software Engineer\",\n  \"role\": \"rep\", //discriminator\n  \"privileges\": [\"ROLE_REP\"],\n  \"avatarMediaAssetId\": 12345\n}\n","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/user/create","description":"<h2 id=\"create-user\">Create User</h2>\n<p>Creates a new user in the Highp platform with the specified role and privileges. This endpoint allows you to register users with different roles such as representatives, project managers, or doctors.</p>\n<h3 id=\"endpoint-details\">Endpoint Details</h3>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/user/create</code><br /><strong>Method:</strong> <code>POST</code><br /><strong>Authentication:</strong> Bearer Token (required)</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>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-schema\">Request Body Schema</h3>\n<p>The request body must be a JSON object with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>User's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>User's last name</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>User's email address (must be unique)</td>\n</tr>\n<tr>\n<td><code>phoneNumber</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>User's phone number in international format (e.g., +48123456789)</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>boolean</td>\n<td>Yes</td>\n<td>User's gender (true for male, false for female)</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>User's job title or business role</td>\n</tr>\n<tr>\n<td><code>role</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>User role discriminator. Possible values: <code>rep</code> (representative), <code>pm</code> (project manager), <code>doc</code> (doctor)</td>\n</tr>\n<tr>\n<td><code>privileges</code></td>\n<td>array[string]</td>\n<td>Yes</td>\n<td>Array of privilege roles assigned to the user (e.g., <code>[\"ROLE_REP\"]</code>, <code>[\"ROLE_PM\"]</code>, <code>[\"ROLE_DOC\"]</code>)</td>\n</tr>\n<tr>\n<td><code>avatarMediaAssetId</code></td>\n<td>integer</td>\n<td>No</td>\n<td>ID of the media asset to use as the user's avatar</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-example\">Request Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"firstName\": \"Jan\",\n  \"lastName\": \"Kowalski\",\n  \"email\": \"jan.kowa@niepodam.pl\",\n  \"phoneNumber\": \"+48123456789\",\n  \"gender\": true,\n  \"businessTitle\": \"Software Engineer\",\n  \"role\": \"rep\",\n  \"privileges\": [\"ROLE_REP\"],\n  \"avatarMediaAssetId\": 12345\n}\n</code></pre>\n<h3 id=\"response-model\">Response Model</h3>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p>The response returns the created user object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"firstName\": \"string\",\n  \"lastName\": \"string\",\n  \"email\": \"string\",\n  \"phoneNumber\": \"string\",\n  \"gender\": boolean,\n  \"businessTitle\": \"string\",\n  \"role\": \"string\",\n  \"privileges\": [\"string\"],\n  \"avatarMediaAssetId\": integer | null,\n  \"avatarFileName\": string | null\n}\n</code></pre>\n<p><strong>Response Fields:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the created user</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>User's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>User's last name</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>User's email address</td>\n</tr>\n<tr>\n<td><code>phoneNumber</code></td>\n<td>string</td>\n<td>User's phone number</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>boolean</td>\n<td>User's gender</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string</td>\n<td>User's job title</td>\n</tr>\n<tr>\n<td><code>role</code></td>\n<td>string</td>\n<td>User's role</td>\n</tr>\n<tr>\n<td><code>privileges</code></td>\n<td>array[string]</td>\n<td>User's assigned privileges</td>\n</tr>\n<tr>\n<td><code>avatarMediaAssetId</code></td>\n<td>integer/null</td>\n<td>Avatar media asset ID (null if not set)</td>\n</tr>\n<tr>\n<td><code>avatarFileName</code></td>\n<td>string/null</td>\n<td>Avatar file name (null if not set)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-example\">Response Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"4f931de4-ee9c-4412-aa5b-20a840c21ca5\",\n  \"firstName\": \"Jan\",\n  \"lastName\": \"Kowalski\",\n  \"email\": \"jan.kowa@niepodam.pl\",\n  \"phoneNumber\": \"+48123456789\",\n  \"gender\": true,\n  \"businessTitle\": \"Software Engineer\",\n  \"role\": \"rep\",\n  \"privileges\": [\n    \"ROLE_REP\"\n  ],\n  \"avatarMediaAssetId\": null,\n  \"avatarFileName\": null\n}\n</code></pre>\n<h3 id=\"nodejs-fetch-example\">Node.js Fetch Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = process.env.TENANT_DOMAIN; // e.g., 'testsandbox.highp.me'\nconst token = process.env.TOKEN; // Your authentication token\n\nconst createUser = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/user/create`;\n  \n  const requestBody = {\n    firstName: \"Jan\",\n    lastName: \"Kowalski\",\n    email: \"jan.kowa@niepodam.pl\",\n    phoneNumber: \"+48123456789\",\n    gender: true,\n    businessTitle: \"Software Engineer\",\n    role: \"rep\",\n    privileges: [\"ROLE_REP\"],\n    avatarMediaAssetId: 12345\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('User created successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating user:', error);\n    throw error;\n  }\n};\n\n// Usage\ncreateUser()\n  .then(user =&gt; console.log('Created user UUID:', user.uuid))\n  .catch(error =&gt; console.error('Failed to create user:', error));\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>The <code>role</code> field acts as a discriminator to determine the user type</li>\n<li>The <code>privileges</code> array must match the role (e.g., <code>ROLE_REP</code> for <code>rep</code> role)</li>\n<li>Email addresses must be unique across the platform</li>\n<li>Phone numbers should be in international format with country code</li>\n<li>The <code>avatarMediaAssetId</code> is optional and can be set later</li>\n<li>A successful response returns HTTP 200 with the created user object including the generated UUID</li>\n</ul>\n","urlObject":{"path":["api","core","user","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"369da834-6b0c-4eee-aedf-4d56b5f7a4e1","name":"Create","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"Jan\",\n  \"lastName\": \"Kowalski\",\n  \"email\": \"jan.kowa@niepodam.pl\",\n  \"phoneNumber\": \"+48123456789\",\n  \"gender\": true,\n  \"businessTitle\": \"Software Engineer\",\n  \"role\": \"rep\", //discriminator\n  \"privileges\": [\"ROLE_REP\"],\n  \"avatarMediaAssetId\": 12345\n}\n","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/user/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:42:56 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:42:55 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-cb587d3606e0492e1122de22bfb11f74' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-cb587d3606e0492e1122de22bfb11f74' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"4f931de4-ee9c-4412-aa5b-20a840c21ca5\",\n    \"firstName\": \"Jan\",\n    \"lastName\": \"Kowalski\",\n    \"email\": \"jan.kowa@niepodam.pl\",\n    \"phoneNumber\": \"+48123456789\",\n    \"gender\": true,\n    \"businessTitle\": \"Software Engineer\",\n    \"role\": \"rep\",\n    \"privileges\": [\n        \"ROLE_REP\"\n    ],\n    \"avatarMediaAssetId\": null,\n    \"avatarFileName\": null\n}"}],"_postman_id":"2f07f3df-0275-4998-b21d-c55ef493c25a"},{"name":"Update","id":"d77c8ae2-ed69-499f-8b92-e24ffa02c432","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"Jan\",\n  \"lastName\": \"Kowalski\",\n  \"email\": \"jan.kowalsk12342432@niepodam.pl\",\n  \"phoneNumber\": \"+48123456789\",\n  \"gender\": true,\n  \"businessTitle\": \"Software Engineer\",\n  \"role\": \"rep\",\n  \"privileges\": [\n    \"ROLE_REP\"\n  ],\n  \"avatarMediaAssetId\": 12345\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/user/4f931de4-ee9c-4412-aa5b-20a840c21ca5","description":"<h2 id=\"update-user-by-uuid\">Update User by UUID</h2>\n<p>This endpoint allows you to update a specific user's information by using their unique identifier (UUID). The HTTP PUT request should be made to <code>https://{{tenant_domain}}/api/core/user/{uuid}</code> with the updated user details in the request body.</p>\n<hr />\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>PUT</code></p>\n<p><strong>URL Structure:</strong> <code>https://{{tenant_domain}}/api/core/user/{uuid}</code></p>\n<p><strong>Path Parameters:</strong></p>\n<ul>\n<li><code>uuid</code> (string, required): The unique identifier of the user to update (e.g., <code>4f931de4-ee9c-4412-aa5b-20a840c21ca5</code>)</li>\n</ul>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>{{token}}</code>: Your authentication bearer token</li>\n<li><code>{{tenant_domain}}</code>: Your tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<hr />\n<h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body should be in JSON format and include the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The user's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The user's last name</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The user's email address</td>\n</tr>\n<tr>\n<td><code>phoneNumber</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The user's phone number (e.g., <code>+48123456789</code>)</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>boolean</td>\n<td>Yes</td>\n<td>The user's gender (true/false)</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The user's job title</td>\n</tr>\n<tr>\n<td><code>role</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The user's role (e.g., <code>rep</code>)</td>\n</tr>\n<tr>\n<td><code>privileges</code></td>\n<td>array</td>\n<td>Yes</td>\n<td>An array of privilege strings (e.g., <code>[\"ROLE_REP\"]</code>)</td>\n</tr>\n<tr>\n<td><code>avatarMediaAssetId</code></td>\n<td>number</td>\n<td>No</td>\n<td>The ID of the user's avatar media asset</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"firstName\": \"Jan\",\n  \"lastName\": \"Kowalski\",\n  \"email\": \"jan.kowalsk12342432@niepodam.pl\",\n  \"phoneNumber\": \"+48123456789\",\n  \"gender\": true,\n  \"businessTitle\": \"Software Engineer\",\n  \"role\": \"rep\",\n  \"privileges\": [\"ROLE_REP\"],\n  \"avatarMediaAssetId\": 12345\n}\n</code></pre>\n<hr />\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const updateUser = async (uuid, userData) =&gt; {\n  const tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\n  const token = 'your_bearer_token_here'; // Replace with your actual token\n  \n  const url = `https://${tenantDomain}/api/core/user/${uuid}`;\n  \n  const requestBody = {\n    firstName: userData.firstName,\n    lastName: userData.lastName,\n    email: userData.email,\n    phoneNumber: userData.phoneNumber,\n    gender: userData.gender,\n    businessTitle: userData.businessTitle,\n    role: userData.role,\n    privileges: userData.privileges,\n    avatarMediaAssetId: userData.avatarMediaAssetId\n  };\n  \n  try {\n    const response = await fetch(url, {\n      method: 'PUT',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('User updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating user:', error);\n    throw error;\n  }\n};\n\n// Example usage\nconst userUuid = '4f931de4-ee9c-4412-aa5b-20a840c21ca5';\nconst userData = {\n  firstName: 'Jan',\n  lastName: 'Kowalski',\n  email: 'jan.kowalsk12342432@niepodam.pl',\n  phoneNumber: '+48123456789',\n  gender: true,\n  businessTitle: 'Software Engineer',\n  role: 'rep',\n  privileges: ['ROLE_REP'],\n  avatarMediaAssetId: 12345\n};\n\nupdateUser(userUuid, userData);\n</code></pre>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The response returns the updated user object with all fields, including the UUID and any server-generated values.</p>\n<p><strong>Response Schema:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the user</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>The user's first name</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>The user's last name</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>The user's email address</td>\n</tr>\n<tr>\n<td><code>phoneNumber</code></td>\n<td>string</td>\n<td>The user's phone number</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>boolean</td>\n<td>The user's gender</td>\n</tr>\n<tr>\n<td><code>businessTitle</code></td>\n<td>string</td>\n<td>The user's job title</td>\n</tr>\n<tr>\n<td><code>role</code></td>\n<td>string</td>\n<td>The user's role</td>\n</tr>\n<tr>\n<td><code>privileges</code></td>\n<td>array</td>\n<td>Array of privilege strings</td>\n</tr>\n<tr>\n<td><code>avatarMediaAssetId</code></td>\n<td>number/null</td>\n<td>The ID of the user's avatar media asset (null if not set)</td>\n</tr>\n<tr>\n<td><code>avatarFileName</code></td>\n<td>string/null</td>\n<td>The filename of the user's avatar (null if not set)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"4f931de4-ee9c-4412-aa5b-20a840c21ca5\",\n  \"firstName\": \"Jan\",\n  \"lastName\": \"Kowalski\",\n  \"email\": \"jan.kowalsk12342432@niepodam.pl\",\n  \"phoneNumber\": \"+48123456789\",\n  \"gender\": true,\n  \"businessTitle\": \"Software Engineer\",\n  \"role\": \"rep\",\n  \"privileges\": [\n    \"ROLE_REP\"\n  ],\n  \"avatarMediaAssetId\": null,\n  \"avatarFileName\": null\n}\n</code></pre>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The response includes the complete user object with the updated information</li>\n<li>The <code>avatarMediaAssetId</code> and <code>avatarFileName</code> fields may be <code>null</code> if no avatar is set</li>\n<li>All request body fields are validated on the server side</li>\n<li>The UUID in the URL path must match an existing user in the system</li>\n</ul>\n","urlObject":{"path":["api","core","user","4f931de4-ee9c-4412-aa5b-20a840c21ca5"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"098cb962-6a6a-48f4-8dd6-ba1afbffb92f","name":"Update","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"Jan\",\n  \"lastName\": \"Kowalski\",\n  \"email\": \"jan.kowalsk12342432@niepodam.pl\",\n  \"phoneNumber\": \"+48123456789\",\n  \"gender\": true,\n  \"businessTitle\": \"Software Engineer\",\n  \"role\": \"rep\",\n  \"privileges\": [\n    \"ROLE_REP\"\n  ],\n  \"avatarMediaAssetId\": 12345\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/user/4f931de4-ee9c-4412-aa5b-20a840c21ca5"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:43:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:43:56 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-e87c454a81d7f39b633804f3f3375ad6' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-e87c454a81d7f39b633804f3f3375ad6' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"4f931de4-ee9c-4412-aa5b-20a840c21ca5\",\n    \"firstName\": \"Jan\",\n    \"lastName\": \"Kowalski\",\n    \"email\": \"jan.kowalsk12342432@niepodam.pl\",\n    \"phoneNumber\": \"+48123456789\",\n    \"gender\": true,\n    \"businessTitle\": \"Software Engineer\",\n    \"role\": \"rep\",\n    \"privileges\": [\n        \"ROLE_REP\"\n    ],\n    \"avatarMediaAssetId\": null,\n    \"avatarFileName\": null\n}"}],"_postman_id":"d77c8ae2-ed69-499f-8b92-e24ffa02c432"},{"name":"Delete","id":"49326a97-062e-4978-b543-46f555065676","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/user/4f931de4-ee9c-4412-aa5b-20a840c21ca5","description":"<h1 id=\"delete-user\">Delete User</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Permanently deletes a user from the Highp platform. This operation removes the user account and associated data. This action is irreversible.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The token must have appropriate permissions to delete users within the tenant.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE https://{{tenant_domain}}/api/core/user/{userId}\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>userId</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the user to delete. Must be a valid UUID format.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer {{token}}</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-codes\">Response Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>200 OK</strong></td>\n<td>User successfully deleted. Returns an empty response body.</td>\n</tr>\n<tr>\n<td><strong>401 Unauthorized</strong></td>\n<td>Invalid or missing authentication token.</td>\n</tr>\n<tr>\n<td><strong>403 Forbidden</strong></td>\n<td>Authenticated user lacks permission to delete users.</td>\n</tr>\n<tr>\n<td><strong>404 Not Found</strong></td>\n<td>User with the specified ID does not exist.</td>\n</tr>\n<tr>\n<td><strong>500 Internal Server Error</strong></td>\n<td>Server error occurred while processing the request.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Status: 200 OK\nContent-Length: 0\n</code></pre><p>The successful deletion returns an empty response body with a 200 status code.</p>\n<h3 id=\"response-headers\">Response Headers</h3>\n<ul>\n<li><code>Cache-Control</code>: no-cache</li>\n<li><code>X-Content-Type-Options</code>: nosniff</li>\n<li><code>X-Frame-Options</code>: DENY</li>\n<li><code>X-XSS-Protection</code>: 1; mode=block</li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst userId = '4f931de4-ee9c-4412-aa5b-20a840c21ca5';\nconst token = 'your_access_token_here';\n\nasync function deleteUser(userId) {\n  const url = `https://${tenantDomain}/api/core/user/${userId}`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'DELETE',\n      headers: {\n        'Authorization': `Bearer ${token}`\n      }\n    });\n    \n    if (response.ok) {\n      console.log(`User ${userId} successfully deleted`);\n      return { success: true, status: response.status };\n    } else {\n      const errorText = await response.text();\n      console.error(`Failed to delete user: ${response.status} - ${errorText}`);\n      return { success: false, status: response.status, error: errorText };\n    }\n  } catch (error) {\n    console.error('Error deleting user:', error);\n    throw error;\n  }\n}\n\n// Usage\ndeleteUser(userId)\n  .then(result =&gt; console.log('Result:', result))\n  .catch(error =&gt; console.error('Error:', error));\n</code></pre>\n<h2 id=\"important-notes\">Important Notes</h2>\n<p>⚠️ <strong>Warning</strong>: This operation is <strong>irreversible</strong>. Once a user is deleted, all associated data will be permanently removed.</p>\n<ul>\n<li>Ensure you have the correct user ID before executing this request</li>\n<li>Verify that you have proper authorization to delete users</li>\n<li>Consider implementing a soft-delete mechanism in your application if you need to retain user data</li>\n<li>This endpoint may trigger cascading deletions of related resources depending on your system configuration</li>\n</ul>\n<h2 id=\"variables-used\">Variables Used</h2>\n<ul>\n<li><code>{{tenant_domain}}</code>: Your Highp tenant domain (e.g., <code>your-company.highp.me</code>)</li>\n<li><code>{{token}}</code>: Your Bearer authentication token</li>\n</ul>\n","urlObject":{"path":["api","core","user","4f931de4-ee9c-4412-aa5b-20a840c21ca5"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"122b154e-4449-40fb-b1d5-129906d3277b","name":"Delete","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/user/4f931de4-ee9c-4412-aa5b-20a840c21ca5"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:44:16 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:44:15 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-fa28c60d0acf9981ad731d286e8c8be6' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-fa28c60d0acf9981ad731d286e8c8be6' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"49326a97-062e-4978-b543-46f555065676"},{"name":"Get Registration Status","id":"c41defaa-93b5-4d29-9ff7-36c39514ec5a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"description":"<p>Optional: Add if your API requires authentication</p>\n","key":"Authorization","value":"Bearer {{access_token}}"}],"url":"testsandbox.highp.me/api/core/user/58caa5c6-6419-4ed6-b05a-3faae5134d4b/registration-status","description":"<h1 id=\"get-registration-status\">Get Registration Status</h1>\n<p>Retrieves the registration completion status for a user or contact. This endpoint provides comprehensive information about a user's profile completion, consent status, and public content statistics.</p>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint is used to check whether a user has completed all required registration steps, including profile information, required consents, and content creation. It's particularly useful for onboarding flows, profile completion prompts, and compliance tracking.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer YOUR_ACCESS_TOKEN\n</code></pre><h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/user/{{userUuid}}/registration-status\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>userUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the user/contact whose registration status you want to retrieve. Example: <code>58caa5c6-6419-4ed6-b05a-3faae5134d4b</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n<td>Specifies the content type of the request</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{access_token}}</code></td>\n<td>Yes</td>\n<td>Bearer token for authentication</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-model\">Response Model</h2>\n<p>The endpoint returns a JSON object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"contactUuid\": \"string (UUID)\",\n  \"isComplete\": \"boolean\",\n  \"profile\": {\n    \"hasProfession\": \"boolean\",\n    \"hasSpecialization\": \"boolean\",\n    \"hasPWZ\": \"boolean\"\n  },\n  \"consents\": {\n    \"hasRequiredConsents\": \"boolean\",\n    \"missingConsents\": [\"string\"]\n  },\n  \"statistics\": {\n    \"publicVideoCount\": \"integer\"\n  }\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>The unique identifier of the contact/user</td>\n</tr>\n<tr>\n<td><code>isComplete</code></td>\n<td>boolean</td>\n<td>Overall registration completion status. <code>true</code> if all required steps are completed, <code>false</code> otherwise</td>\n</tr>\n<tr>\n<td><code>profile.hasProfession</code></td>\n<td>boolean</td>\n<td>Indicates whether the user has set their profession</td>\n</tr>\n<tr>\n<td><code>profile.hasSpecialization</code></td>\n<td>boolean</td>\n<td>Indicates whether the user has set their specialization</td>\n</tr>\n<tr>\n<td><code>profile.hasPWZ</code></td>\n<td>boolean</td>\n<td>Indicates whether the user has provided their PWZ (professional registration number)</td>\n</tr>\n<tr>\n<td><code>consents.hasRequiredConsents</code></td>\n<td>boolean</td>\n<td>Indicates whether all required consents have been provided</td>\n</tr>\n<tr>\n<td><code>consents.missingConsents</code></td>\n<td>array of strings</td>\n<td>List of consent identifiers that are still missing (empty if all consents are provided)</td>\n</tr>\n<tr>\n<td><code>statistics.publicVideoCount</code></td>\n<td>integer</td>\n<td>Number of public videos created by the user</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch'); // or use native fetch in Node.js 18+\n\nasync function getRegistrationStatus() {\n  const tenantDomain = 'your-tenant-domain.com';\n  const userUuid = '58caa5c6-6419-4ed6-b05a-3faae5134d4b';\n  const accessToken = 'YOUR_ACCESS_TOKEN';\n  \n  const url = `https://${tenantDomain}/api/core/user/${userUuid}/registration-status`;\n  \n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'Content-Type': 'application/json',\n        'Authorization': `Bearer ${accessToken}`\n      }\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('Registration Status:', data);\n    \n    // Check if registration is complete\n    if (data.isComplete) {\n      console.log('✓ User registration is complete');\n    } else {\n      console.log('✗ User registration is incomplete');\n      \n      // Check what's missing\n      if (!data.profile.hasProfession) {\n        console.log('  - Missing: Profession');\n      }\n      if (!data.profile.hasSpecialization) {\n        console.log('  - Missing: Specialization');\n      }\n      if (!data.profile.hasPWZ) {\n        console.log('  - Missing: PWZ');\n      }\n      if (!data.consents.hasRequiredConsents) {\n        console.log('  - Missing consents:', data.consents.missingConsents);\n      }\n    }\n    \n    return data;\n  } catch (error) {\n    console.error('Error fetching registration status:', error);\n    throw error;\n  }\n}\n\n// Usage\ngetRegistrationStatus()\n  .then(status =&gt; {\n    console.log('Registration complete:', status.isComplete);\n  })\n  .catch(error =&gt; {\n    console.error('Failed to get registration status:', error);\n  });\n</code></pre>\n<h2 id=\"example-response\">Example Response</h2>\n<h3 id=\"successful-response-200-ok\">Successful Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\",\n  \"isComplete\": false,\n  \"profile\": {\n    \"hasProfession\": false,\n    \"hasSpecialization\": false,\n    \"hasPWZ\": false\n  },\n  \"consents\": {\n    \"hasRequiredConsents\": false,\n    \"missingConsents\": [\n      \"channel-sms\",\n      \"channel-email\",\n      \"channel-whatsapp\",\n      \"consentterms\",\n      \"consentterms111\",\n      \"consentterms1\",\n      \"consentterms2\",\n      \"consentterms3\",\n      \"consentterms4\",\n      \"consentterms5\",\n      \"consentterms6\",\n      \"consentterms7\",\n      \"zgodawymagana1\"\n    ]\n  },\n  \"statistics\": {\n    \"publicVideoCount\": 0\n  }\n}\n</code></pre>\n<p><strong>Response Analysis:</strong></p>\n<ul>\n<li>The user has <strong>not completed</strong> their registration (<code>isComplete: false</code>)</li>\n<li><strong>Profile section</strong>: All profile fields are incomplete<ul>\n<li>No profession set</li>\n<li>No specialization set</li>\n<li>No PWZ (professional registration number) provided</li>\n</ul>\n</li>\n<li><strong>Consents section</strong>: Multiple required consents are missing<ul>\n<li>Communication channel consents: SMS, email, WhatsApp</li>\n<li>Various terms and conditions consents</li>\n<li>Total of 13 missing consents</li>\n</ul>\n</li>\n<li><strong>Statistics</strong>: No public videos created yet</li>\n</ul>\n<p>This response indicates a user who has just started the registration process and needs to complete their profile information and provide all required consents.</p>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ol>\n<li><strong>Onboarding Flow</strong>: Check registration status to determine which onboarding steps to show</li>\n<li><strong>Profile Completion Prompts</strong>: Display targeted prompts for missing information</li>\n<li><strong>Access Control</strong>: Restrict certain features until registration is complete</li>\n<li><strong>Compliance Tracking</strong>: Ensure users have provided all required consents</li>\n<li><strong>Analytics</strong>: Track user engagement through public video count</li>\n</ol>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthorized - Invalid or missing access token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to access this user's data</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - User with specified UUID does not exist</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>isComplete</code> flag is calculated based on all profile fields and required consents</li>\n<li>Missing consents array will be empty if all required consents are provided</li>\n<li>Public video count only includes videos with public visibility settings</li>\n<li>PWZ is a professional registration number specific to certain healthcare professions</li>\n<li>Consent identifiers follow the pattern: <code>channel-*</code> for communication channels, <code>consentterms*</code> for terms and conditions</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}},"urlObject":{"path":["api","core","user","58caa5c6-6419-4ed6-b05a-3faae5134d4b","registration-status"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"e9169e0c-cf62-46fe-85aa-7b94bd305261","name":"Get Registration Status","originalRequest":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/user/58caa5c6-6419-4ed6-b05a-3faae5134d4b/registration-status"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:45:42 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:45:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-78b149a490a25356f330ee33662e7494' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-78b149a490a25356f330ee33662e7494' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\",\n    \"isComplete\": false,\n    \"profile\": {\n        \"hasProfession\": false,\n        \"hasSpecialization\": false,\n        \"hasPWZ\": false\n    },\n    \"consents\": {\n        \"hasRequiredConsents\": false,\n        \"missingConsents\": [\n            \"channel-sms\",\n            \"channel-email\",\n            \"channel-whatsapp\",\n            \"consentterms\",\n            \"consentterms111\",\n            \"consentterms1\",\n            \"consentterms2\",\n            \"consentterms3\",\n            \"consentterms4\",\n            \"consentterms5\",\n            \"consentterms6\",\n            \"consentterms7\",\n            \"zgodawymagana1\"\n        ]\n    },\n    \"statistics\": {\n        \"publicVideoCount\": 0\n    }\n}"}],"_postman_id":"c41defaa-93b5-4d29-9ff7-36c39514ec5a"},{"name":"Get All Consents","id":"ee1a97e3-1c98-4349-b75c-3909cf350c9d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"description":"<p>JWT token required for authentication</p>\n","key":"Authorization","value":"Bearer {{bearerToken}}"}],"url":"testsandbox.highp.me/api/core/user/58caa5c6-6419-4ed6-b05a-3faae5134d4b/all-consents","description":"<h1 id=\"get-all-consents\">Get All Consents</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves all consent definitions with their current values for a specific contact/user. It returns a comprehensive list of consent records including communication channel preferences (SMS, Email, WhatsApp) and general consent agreements (marketing, terms and conditions, etc.).</p>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Display user consent preferences in a profile or settings page</p>\n</li>\n<li><p>Audit consent status for compliance purposes</p>\n</li>\n<li><p>Retrieve consent data before updating user preferences</p>\n</li>\n<li><p>Validate required consents during user registration or onboarding</p>\n</li>\n<li><p>Generate consent reports for GDPR/privacy compliance</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p><strong>Type:</strong> Bearer Token (JWT)</p>\n<p><strong>Required:</strong> Yes</p>\n<p>Include a valid JWT token in the Authorization header. The token should have appropriate permissions to access user consent data.</p>\n<hr />\n<h2 id=\"request-details\">Request Details</h2>\n<h3 id=\"http-method\">HTTP Method</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET\n\n</code></pre><h3 id=\"endpoint-url\">Endpoint URL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{{tenant_domain}}/api/core/user/{{SomeUserUuid}}/all-consents\n\n</code></pre><h3 id=\"path-parameters\">Path 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>SomeUserUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the user/contact whose consent data you want to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><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>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td>Bearer {{bearerToken}}</td>\n<td>Yes</td>\n<td>JWT authentication token</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"query-parameters\">Query Parameters</h3>\n<p>None</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>None (GET request)</p>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>Returns an array of consent objects representing all consent definitions and their current values for the specified user.</p>\n<h3 id=\"response-schema\">Response Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"fieldName\": \"string\",\n    \"fieldUuid\": \"string (UUID)\",\n    \"name\": \"string\",\n    \"type\": \"string (enum: sms, email, whatsapp, consent)\",\n    \"value\": \"boolean\",\n    \"required\": \"boolean\",\n    \"shortDescription\": \"string\",\n    \"longDescription\": \"string\",\n    \"locked\": \"boolean\"\n  }\n]\n\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fieldName</code></td>\n<td>string</td>\n<td>Internal field identifier</td>\n</tr>\n<tr>\n<td><code>fieldUuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier for the consent field</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Display name of the consent</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Type of consent (sms, email, whatsapp, consent)</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>boolean</td>\n<td>Current consent value (true = granted, false = denied)</td>\n</tr>\n<tr>\n<td><code>required</code></td>\n<td>boolean</td>\n<td>Whether this consent is mandatory</td>\n</tr>\n<tr>\n<td><code>shortDescription</code></td>\n<td>string</td>\n<td>Brief description of the consent</td>\n</tr>\n<tr>\n<td><code>longDescription</code></td>\n<td>string</td>\n<td>Detailed description of the consent</td>\n</tr>\n<tr>\n<td><code>locked</code></td>\n<td>boolean</td>\n<td>Whether the consent can be modified</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"code-examples\">Code Examples</h2>\n<h3 id=\"nodejs-fetch-api\">Node.js (Fetch API)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">async function getAllConsents(tenantDomain, userId, bearerToken) {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/user/${userId}/all-consents`,\n      {\n        method: 'GET',\n        headers: {\n          'Authorization': `Bearer ${bearerToken}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    const consents = await response.json();\n    // Process the consent data\n    console.log(`Retrieved ${consents.length} consent records`);\n    // Example: Filter for granted consents\n    const grantedConsents = consents.filter(consent =&gt; consent.value === true);\n    console.log(`Granted consents: ${grantedConsents.length}`);\n    // Example: Check for required consents\n    const requiredConsents = consents.filter(consent =&gt; consent.required);\n    const allRequiredGranted = requiredConsents.every(consent =&gt; consent.value);\n    console.log(`All required consents granted: ${allRequiredGranted}`);\n    return consents;\n  } catch (error) {\n    console.error('Error fetching consents:', error.message);\n    throw error;\n  }\n}\n// Usage example\nconst tenantDomain = 'your-tenant.example.com';\nconst userId = '58caa5c6-6419-4ed6-b05a-3faae5134d4b';\nconst token = 'your-jwt-token-here';\ngetAllConsents(tenantDomain, userId, token)\n  .then(consents =&gt; {\n    console.log('Consents retrieved successfully:', consents);\n  })\n  .catch(error =&gt; {\n    console.error('Failed to retrieve consents:', error);\n  });\n\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"typescript-interface\">TypeScript Interface</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">/**\n * Represents a single consent record for a user\n */\ninterface ConsentRecord {\n  /** Internal field identifier */\n  fieldName: string;\n  /** Unique identifier for the consent field */\n  fieldUuid: string;\n  /** Display name of the consent */\n  name: string;\n  /** Type of consent */\n  type: 'sms' | 'email' | 'whatsapp' | 'consent';\n  /** Current consent value (true = granted, false = denied) */\n  value: boolean;\n  /** Whether this consent is mandatory */\n  required: boolean;\n  /** Brief description of the consent */\n  shortDescription: string;\n  /** Detailed description of the consent */\n  longDescription: string;\n  /** Whether the consent can be modified */\n  locked: boolean;\n}\n/**\n * Response type for the Get All Consents endpoint\n * Returns an array of all consent records for the specified user\n */\ntype GetAllConsentsResponse = ConsentRecord[];\n// Usage example\nconst consents: GetAllConsentsResponse = await getAllConsents(tenantDomain, userId, token);\n// Type-safe access to consent properties\nconsents.forEach((consent: ConsentRecord) =&gt; {\n  console.log(`${consent.name}: ${consent.value ? 'Granted' : 'Denied'}`);\n});\n\n</code></pre>\n","urlObject":{"path":["api","core","user","58caa5c6-6419-4ed6-b05a-3faae5134d4b","all-consents"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"91d0ae45-6001-4e7e-bb10-70d928753325","name":"Get All Consents","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/user/58caa5c6-6419-4ed6-b05a-3faae5134d4b/all-consents"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:45:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:45:23 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-6e7ea2fec9f9436f97b6f300040a10f0' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-6e7ea2fec9f9436f97b6f300040a10f0' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"fieldName\": \"channel-sms\",\n        \"fieldUuid\": null,\n        \"name\": \"channel-sms\",\n        \"type\": \"sms\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Zgoda na komunikację SMS\",\n        \"longDescription\": \"<>htmlowa pelna tresc zgody\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"channel-email\",\n        \"fieldUuid\": null,\n        \"name\": \"channel-email\",\n        \"type\": \"email\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Zgoda na komunikację E-mail\",\n        \"longDescription\": \"<>htmlowa pelna tresc zgody\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"channel-whatsapp\",\n        \"fieldUuid\": null,\n        \"name\": \"channel-whatsapp\",\n        \"type\": \"whatsapp\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Tekstowa skrocona tresc zgody\",\n        \"longDescription\": \"<>Whatsapp pelna tresc zgody\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Terms and conditions - consentterms\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing11\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing11\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms111\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms111\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"consentterms111\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing1\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing1\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms1\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms1\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Terms and conditions\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing2\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing2\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms2\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms2\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Terms and conditions\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing3\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing3\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms3\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms3\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Terms and conditions\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing4\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing4\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms4\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms4\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Terms and conditions\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing5\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing5\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms5\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms5\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Terms and conditions\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing6\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing6\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms6\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms6\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Terms and conditions\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentmarketing7\",\n        \"fieldUuid\": null,\n        \"name\": \"consentmarketing7\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Marketing agreement\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"consentterms7\",\n        \"fieldUuid\": null,\n        \"name\": \"consentterms7\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Terms and conditions\",\n        \"longDescription\": \"\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"zgodawymagana1\",\n        \"fieldUuid\": null,\n        \"name\": \"zgodawymagana1\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": true,\n        \"shortDescription\": \"Umowa prywatnosci i zasady uslugi\",\n        \"longDescription\": \"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"zgoda2\",\n        \"fieldUuid\": null,\n        \"name\": \"zgoda2\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Zgoda na przetwarzanie danych\",\n        \"longDescription\": \"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\",\n        \"locked\": false\n    },\n    {\n        \"fieldName\": \"termsofuse\",\n        \"fieldUuid\": null,\n        \"name\": \"termsofuse\",\n        \"type\": \"consent\",\n        \"value\": null,\n        \"required\": false,\n        \"shortDescription\": \"Terms of use\",\n        \"longDescription\": \"<p><strong>Polityka Prywatności</strong></p><p>Niniejsza Polityka Prywatności określa zasady przetwarzania i ochrony danych osobowych przekazywanych przez Użytkowników w związku z korzystaniem ze strony internetowej <strong>[Twoja strona]</strong> działającej pod adresem: <strong>[adres strony internetowej]</strong>.</p><h3>1. Administrator Danych Osobowych</h3><p>Administratorem danych osobowych zbieranych za pośrednictwem strony internetowej jest <strong>[nazwa firmy lub imię i nazwisko osoby fizycznej prowadzącej działalność]</strong>.</p><ul><li><strong>Adres:</strong> [adres]</li><li><strong>E-mail:</strong> [adres e-mail]</li><li><strong>Telefon:</strong> [numer telefonu]</li></ul><h3>2. Gromadzone Dane Osobowe</h3><p>W ramach korzystania z naszej strony internetowej mogą być przetwarzane następujące dane osobowe Użytkowników:</p><ul><li>Imię i nazwisko</li><li>Adres e-mail</li><li>Numer telefonu</li><li>Adres IP</li><li>Informacje o przeglądarce internetowej i systemie operacyjnym</li></ul><h3>3. Cel Przetwarzania Danych Osobowych</h3><p>Dane osobowe przetwarzane są w celu:</p><ul><li>Zapewnienia prawidłowego funkcjonowania strony internetowej.</li><li>Umożliwienia kontaktu z Administratorem.</li><li>Przesyłania informacji handlowych oraz marketingowych (w przypadku wyrażenia odpowiedniej zgody).</li><li>Poprawy jakości usług oraz personalizacji treści.</li></ul><h3>4. Podstawa Prawna Przetwarzania Danych</h3><p>Dane osobowe przetwarzane są na podstawie:</p><ul><li>Art. 6 ust. 1 lit. a) RODO – zgoda osoby, której dane dotyczą.</li><li>Art. 6 ust. 1 lit. b) RODO – niezbędność przetwarzania do wykonania umowy.</li><li>Art. 6 ust. 1 lit. f) RODO – prawnie uzasadniony interes Administratora, np. w celach marketingu bezpośredniego.</li></ul><p></p>\",\n        \"locked\": false\n    }\n]"}],"_postman_id":"ee1a97e3-1c98-4349-b75c-3909cf350c9d"}],"id":"293c1242-e153-4f06-9f5b-216319fc89fa","_postman_id":"293c1242-e153-4f06-9f5b-216319fc89fa","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Workplace","item":[{"name":"Get All Workplaces","id":"3fb2b179-8b45-428a-b423-0c028b382b9b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/workplace/all?search=string&page=0&size=20","description":"<h1 id=\"get-all-workplaces\">Get All Workplaces</h1>\n<h2 id=\"description\">Description</h2>\n<p>Retrieves a paginated list of all workplaces in the system. This endpoint returns workplace information including location details (city, street, ward, postal code) and metadata. The response supports pagination and sorting capabilities.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>{{token}}</code> variable should contain a valid JWT access token for your tenant.</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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Optional search term to filter workplaces by name or location</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>Page number for pagination (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>Number of items per page (max results per request)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\nconst token = 'your_access_token_here'; // Replace with your access token\n\nconst url = `https://${tenantDomain}/api/core/workplace/all?search=&amp;page=0&amp;size=20`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Total workplaces:', data.totalElements);\n    console.log('Total pages:', data.totalPages);\n    console.log('Workplaces:', data.content);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching workplaces:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"string\",\n      \"lastUpdated\": \"string (timestamp)\",\n      \"city\": \"string\",\n      \"street\": \"string\",\n      \"ward\": \"string\",\n      \"postalCode\": \"string | null\",\n      \"name\": \"string\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": \"boolean\",\n      \"sorted\": \"boolean\",\n      \"unsorted\": \"boolean\"\n    },\n    \"offset\": \"integer\",\n    \"pageNumber\": \"integer\",\n    \"pageSize\": \"integer\",\n    \"paged\": \"boolean\",\n    \"unpaged\": \"boolean\"\n  },\n  \"totalElements\": \"integer\",\n  \"totalPages\": \"integer\",\n  \"last\": \"boolean\",\n  \"size\": \"integer\",\n  \"number\": \"integer\",\n  \"sort\": {\n    \"empty\": \"boolean\",\n    \"sorted\": \"boolean\",\n    \"unsorted\": \"boolean\"\n  },\n  \"numberOfElements\": \"integer\",\n  \"first\": \"boolean\",\n  \"empty\": \"boolean\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"workplace-object-content-array\">Workplace Object (content array)</h4>\n<ul>\n<li><code>uuid</code> - Unique identifier for the workplace</li>\n<li><code>lastUpdated</code> - Unix timestamp of the last update</li>\n<li><code>city</code> - City where the workplace is located</li>\n<li><code>street</code> - Street address</li>\n<li><code>ward</code> - Ward or building number</li>\n<li><code>postalCode</code> - Postal/ZIP code (nullable)</li>\n<li><code>name</code> - Name of the workplace</li>\n</ul>\n<h4 id=\"pagination-metadata\">Pagination Metadata</h4>\n<ul>\n<li><code>totalElements</code> - Total number of workplaces across all pages</li>\n<li><code>totalPages</code> - Total number of pages available</li>\n<li><code>size</code> - Number of items per page</li>\n<li><code>number</code> - Current page number (zero-indexed)</li>\n<li><code>numberOfElements</code> - Number of elements in the current page</li>\n<li><code>first</code> - Boolean indicating if this is the first page</li>\n<li><code>last</code> - Boolean indicating if this is the last page</li>\n<li><code>empty</code> - Boolean indicating if the result set is empty</li>\n</ul>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"adc73521-8bbc-4e69-85c6-29e6fdcabb6c\",\n      \"lastUpdated\": \"1701774771\",\n      \"city\": \"Biłgoraj\",\n      \"street\": \"3 Maja\",\n      \"ward\": \"87A\",\n      \"postalCode\": null,\n      \"name\": \"01 APTEKA PRYWATNA\"\n    },\n    {\n      \"uuid\": \"5ec08204-bb34-4673-bf94-0861fb0d354c\",\n      \"lastUpdated\": \"1701774675\",\n      \"city\": \"Gostyń\",\n      \"street\": \"Olejniczaka\",\n      \"ward\": \"7A\",\n      \"postalCode\": null,\n      \"name\": \"01 APTEKA SALUS MALSCY S.J.\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 5175,\n  \"totalPages\": 259,\n  \"last\": false,\n  \"size\": 20,\n  \"number\": 0,\n  \"numberOfElements\": 20,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The endpoint uses the <code>{{tenant_domain}}</code> variable which should be set to your specific tenant domain (e.g., <code>your-company.highp.me</code>)</li>\n<li>Results are paginated with a default page size of 20 items</li>\n<li>The response follows Spring Data's Page interface structure</li>\n<li>Use the <code>search</code> parameter to filter results by workplace name or location details</li>\n</ul>\n","urlObject":{"path":["api","core","workplace","all"],"host":["testsandbox.highp.me"],"query":[{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"}],"variable":[]}},"response":[{"id":"9aef9e45-f963-4763-939e-8d9785dc2c4c","name":"Get All Workplaces","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/workplace/all?search=string&page=0&size=20","host":["testsandbox.highp.me"],"path":["api","core","workplace","all"],"query":[{"key":"search","value":"string"},{"key":"page","value":"0"},{"key":"size","value":"20"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:55:10 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:55:09 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-c7e1e1233a6eacdd5573a48609432e9b' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-c7e1e1233a6eacdd5573a48609432e9b' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"uuid\": \"03a0fd08-deef-4ea7-a6a2-9a11ee4997a8\",\n            \"lastUpdated\": \"1701775028\",\n            \"city\": \"\",\n            \"street\": \"\",\n            \"ward\": \"\",\n            \"postalCode\": null,\n            \"name\": \"\"\n        },\n        {\n            \"uuid\": \"adc73521-8bbc-4e69-85c6-29e6fdcabb6c\",\n            \"lastUpdated\": \"1701774771\",\n            \"city\": \"Biłgoraj\",\n            \"street\": \"3 Maja\",\n            \"ward\": \"87A\",\n            \"postalCode\": null,\n            \"name\": \"01 APTEKA PRYWATNA\"\n        },\n        {\n            \"uuid\": \"5ec08204-bb34-4673-bf94-0861fb0d354c\",\n            \"lastUpdated\": \"1701774675\",\n            \"city\": \"Gostyń\",\n            \"street\": \"Olejniczaka\",\n            \"ward\": \"7A\",\n            \"postalCode\": null,\n            \"name\": \"01 APTEKA SALUS MALSCY S.J.\"\n        },\n        {\n            \"uuid\": \"01c940ca-8c9c-4431-9eb5-b7cf7428a714\",\n            \"lastUpdated\": \"1701774713\",\n            \"city\": \"Gostyń\",\n            \"street\": \"Kolejowa\",\n            \"ward\": \"12\",\n            \"postalCode\": null,\n            \"name\": \"01 APTEKA Zdrowie\"\n        },\n        {\n            \"uuid\": \"c13a205a-bd0f-43fe-861f-4d3d1cf8834c\",\n            \"lastUpdated\": \"1701774629\",\n            \"city\": \"Gostyń\",\n            \"street\": \"Witosa\",\n            \"ward\": \"13\",\n            \"postalCode\": null,\n            \"name\": \"01 Apteki-Anna Kalisoras Sp. z o.o.\"\n        },\n        {\n            \"uuid\": \"6e8be105-425b-4b00-9c7a-53f28d2f3662\",\n            \"lastUpdated\": \"1701774792\",\n            \"city\": \"Jarocin\",\n            \"street\": \"Konstytucji 3 Maja\",\n            \"ward\": \"30\",\n            \"postalCode\": null,\n            \"name\": \"02 APTEKA BRATEK\"\n        },\n        {\n            \"uuid\": \"36a30c30-35b7-4df5-930b-edf423d48a24\",\n            \"lastUpdated\": \"1701774790\",\n            \"city\": \"Jarocin\",\n            \"street\": \"Ducha\",\n            \"ward\": \"30A\",\n            \"postalCode\": null,\n            \"name\": \"02 APTEKA BRATEK DWA\"\n        },\n        {\n            \"uuid\": \"60341344-ad34-4fd9-b347-7acaa000b288\",\n            \"lastUpdated\": \"1701774792\",\n            \"city\": \"Jarocin\",\n            \"street\": \"Wojska Polskiego\",\n            \"ward\": \"44\",\n            \"postalCode\": null,\n            \"name\": \"02 APTEKA CENTRUM\"\n        },\n        {\n            \"uuid\": \"ea10964a-0044-4ba8-a906-e00052b4f98f\",\n            \"lastUpdated\": \"1701774674\",\n            \"city\": \"Kotlin\",\n            \"street\": \"Dworcowa\",\n            \"ward\": \"19\",\n            \"postalCode\": null,\n            \"name\": \"02 APTEKA ESKULAP\"\n        },\n        {\n            \"uuid\": \"81ba95bc-35f4-4b1b-a084-480eee1bf24a\",\n            \"lastUpdated\": \"1701774709\",\n            \"city\": \"Kotlin\",\n            \"street\": \"Dworcowa\",\n            \"ward\": \"5\",\n            \"postalCode\": null,\n            \"name\": \"02 Apteka \\\"Medicor\\\"\"\n        },\n        {\n            \"uuid\": \"840e1cb4-a366-4231-9b04-b6fd900bb1be\",\n            \"lastUpdated\": \"1701774792\",\n            \"city\": \"Jarocin\",\n            \"street\": \"Wrocławska\",\n            \"ward\": \"9\",\n            \"postalCode\": null,\n            \"name\": \"02 APTEKA WITAMINKA\"\n        },\n        {\n            \"uuid\": \"237aec90-0d5c-451f-9324-e35edf2b871a\",\n            \"lastUpdated\": \"1701774674\",\n            \"city\": \"Żerków\",\n            \"street\": \"Jarocińska\",\n            \"ward\": \"15B\",\n            \"postalCode\": null,\n            \"name\": \"03 APTEKA NOVA\"\n        },\n        {\n            \"uuid\": \"aa9a9217-3a09-4ac6-a469-aed4bdfe367b\",\n            \"lastUpdated\": \"1701774907\",\n            \"city\": \"Stalowa Wola\",\n            \"street\": \"Okulickiego\",\n            \"ward\": \"94\",\n            \"postalCode\": null,\n            \"name\": \"03 APTEKA PREMIUM - LEK\"\n        },\n        {\n            \"uuid\": \"512eb366-9626-4b1a-9079-1f5f03f858e8\",\n            \"lastUpdated\": \"1701774711\",\n            \"city\": \"Jarocin\",\n            \"street\": \"Śródmiejska\",\n            \"ward\": \"32\",\n            \"postalCode\": null,\n            \"name\": \"03 APTEKA PRZYJAZNA\"\n        },\n        {\n            \"uuid\": \"18193929-ccbd-4b9c-8136-7bb711d1e014\",\n            \"lastUpdated\": \"1701774674\",\n            \"city\": \"Żerków\",\n            \"street\": \"Rynek\",\n            \"ward\": \"7G\",\n            \"postalCode\": null,\n            \"name\": \"03 APTEKA STROZYKOWIE\"\n        },\n        {\n            \"uuid\": \"1934fbdf-5f0d-4780-8789-b89c66798b58\",\n            \"lastUpdated\": \"1701774710\",\n            \"city\": \"Jaraczewo\",\n            \"street\": \"Kolejowa\",\n            \"ward\": \"18\",\n            \"postalCode\": null,\n            \"name\": \"03 APTEKA ZDROWIE\"\n        },\n        {\n            \"uuid\": \"d02901be-2976-46a7-81fb-30dbc524f1ca\",\n            \"lastUpdated\": \"1701774710\",\n            \"city\": \"GOLINA\",\n            \"street\": \"Dworcowa\",\n            \"ward\": \"25\",\n            \"postalCode\": null,\n            \"name\": \"03 PUNKT APTECZNY PANACEUM\"\n        },\n        {\n            \"uuid\": \"3eb04e43-429e-4612-800b-06b826e697a7\",\n            \"lastUpdated\": \"1701774629\",\n            \"city\": \"Rogalinek\",\n            \"street\": \"Mostowa\",\n            \"ward\": \"10\",\n            \"postalCode\": null,\n            \"name\": \"04 APTEKA MACIERZANKA\"\n        },\n        {\n            \"uuid\": \"d237f2d6-17a0-4ba6-9745-3ef60b5e6027\",\n            \"lastUpdated\": \"1701774790\",\n            \"city\": \"Mosina\",\n            \"street\": \"20 Października\",\n            \"ward\": \"25\",\n            \"postalCode\": null,\n            \"name\": \"04 APTEKA \\\"NATURA\\\"\"\n        },\n        {\n            \"uuid\": \"923474d1-55e0-485e-8800-eadd0703e8ad\",\n            \"lastUpdated\": \"1701774619\",\n            \"city\": \"Mosina\",\n            \"street\": \"Śremska\",\n            \"ward\": \"1\",\n            \"postalCode\": null,\n            \"name\": \"04 APTEKA POFARMA\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 5175,\n    \"totalPages\": 259,\n    \"last\": false,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 20,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"3fb2b179-8b45-428a-b423-0c028b382b9b"},{"name":"Create","id":"8d4631fb-647c-4edb-9c95-7909aa6eecfd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"city\": \"city1\",\n  \"street\": \"str2\",\n  \"ward\": \"test123\",\n  \"postalCode\": \"33-232\",\n  \"name\": \"postman test\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/workplace/create","description":"<h1 id=\"create-workplace\">Create Workplace</h1>\n<p>Creates a new workplace entity in the Highp platform with location and identification details.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/workplace/create</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a Bearer token. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>{{token}}</code> - Your API access token</li>\n<li><code>{{tenant_domain}}</code> - Your tenant's domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be in JSON format with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The name of the workplace</td>\n</tr>\n<tr>\n<td><code>city</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The city where the workplace is located</td>\n</tr>\n<tr>\n<td><code>street</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The street address of the workplace</td>\n</tr>\n<tr>\n<td><code>ward</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The ward or district of the workplace</td>\n</tr>\n<tr>\n<td><code>postalCode</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The postal/ZIP code of the workplace</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"city\": \"city1\",\n    \"street\": \"str2\",\n    \"ward\": \"test123\",\n    \"postalCode\": \"33-232\",\n    \"name\": \"postman test\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const createWorkplace = async () =&gt; {\n  const url = 'https://your-tenant-domain.highp.me/api/core/workplace/create';\n  \n  const requestBody = {\n    city: \"city1\",\n    street: \"str2\",\n    ward: \"test123\",\n    postalCode: \"33-232\",\n    name: \"postman test\"\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': 'Bearer YOUR_ACCESS_TOKEN',\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Workplace created:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating workplace:', error);\n    throw error;\n  }\n};\n\n// Usage\ncreateWorkplace();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The API returns the created workplace object with an auto-generated UUID and all submitted fields.</p>\n<p><strong>Response Schema:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the workplace (auto-generated)</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the workplace</td>\n</tr>\n<tr>\n<td><code>city</code></td>\n<td>string</td>\n<td>The city where the workplace is located</td>\n</tr>\n<tr>\n<td><code>street</code></td>\n<td>string</td>\n<td>The street address of the workplace</td>\n</tr>\n<tr>\n<td><code>ward</code></td>\n<td>string</td>\n<td>The ward or district of the workplace</td>\n</tr>\n<tr>\n<td><code>postalCode</code></td>\n<td>string</td>\n<td>The postal/ZIP code of the workplace</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string/null</td>\n<td>Timestamp of last update (null for new records)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"uuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n    \"lastUpdated\": null,\n    \"city\": \"city1\",\n    \"street\": \"str2\",\n    \"ward\": \"test123\",\n    \"postalCode\": \"33-232\",\n    \"name\": \"postman test\"\n}\n</code></pre>\n<h2 id=\"response-headers\">Response Headers</h2>\n<ul>\n<li><code>Content-Type</code>: <code>application/json</code></li>\n<li><code>Cache-Control</code>: <code>no-cache</code></li>\n<li><code>X-Content-Type-Options</code>: <code>nosniff</code></li>\n<li><code>X-Frame-Options</code>: <code>DENY</code></li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>uuid</code> field is automatically generated by the server and uniquely identifies the workplace</li>\n<li>The <code>lastUpdated</code> field will be <code>null</code> for newly created workplaces</li>\n<li>All request body fields are required for successful workplace creation</li>\n</ul>\n","urlObject":{"path":["api","core","workplace","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"117f0fbb-43fd-4796-93da-f3024566106b","name":"Create","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"city\": \"city1\",\n  \"street\": \"str2\",\n  \"ward\": \"test123\",\n  \"postalCode\": \"33-232\",\n  \"name\": \"postman test\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/workplace/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:55:43 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:55:42 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-1bfe53ec477a781892f44488bfd9de1d' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-1bfe53ec477a781892f44488bfd9de1d' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n    \"lastUpdated\": null,\n    \"city\": \"city1\",\n    \"street\": \"str2\",\n    \"ward\": \"test123\",\n    \"postalCode\": \"33-232\",\n    \"name\": \"postman test\"\n}"}],"_postman_id":"8d4631fb-647c-4edb-9c95-7909aa6eecfd"},{"name":"Update","id":"6a2732e7-417f-44d3-8432-191633232b08","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"city\": \"city1ed\",\n  \"street\": \"str2ed\",\n  \"ward\": \"test123ed\",\n  \"postalCode\": \"33-222\",\n  \"name\": \"postman tested\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/workplace/45556b2b-13bf-4544-a310-6ee9bf4fab93","description":"<h2 id=\"overview\">Overview</h2>\n<p>Updates an existing workplace resource by its UUID. This endpoint allows you to modify workplace details including location information (city, street, ward, postal code) and the workplace name.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>PUT</code></p>\n<p><strong>URL Structure:</strong> <code>https://{tenant_domain}/api/core/workplace/{workplace_uuid}</code></p>\n<h3 id=\"path-parameters\">Path 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>workplace_uuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the workplace to update</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"url-variables\">URL Variables</h3>\n<ul>\n<li><code>{tenant_domain}</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {token}\n</code></pre><h2 id=\"request-body\">Request Body</h2>\n<p>The request body should be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"city\": \"string\",\n  \"street\": \"string\",\n  \"ward\": \"string\",\n  \"postalCode\": \"string\",\n  \"name\": \"string\"\n}\n</code></pre>\n<h3 id=\"request-body-fields\">Request Body Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>city</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>The city where the workplace is located</td>\n</tr>\n<tr>\n<td><code>street</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>The street address of the workplace</td>\n</tr>\n<tr>\n<td><code>ward</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>The ward or district of the workplace</td>\n</tr>\n<tr>\n<td><code>postalCode</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>The postal/ZIP code of the workplace</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>The name of the workplace</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"city\": \"city1ed\",\n  \"street\": \"str2ed\",\n  \"ward\": \"test123ed\",\n  \"postalCode\": \"33-222\",\n  \"name\": \"postman tested\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst token = 'your_access_token_here'; // Replace with your access token\nconst workplaceUuid = '45556b2b-13bf-4544-a310-6ee9bf4fab93'; // Replace with workplace UUID\n\nconst updateWorkplace = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/workplace/${workplaceUuid}`;\n  \n  const requestBody = {\n    city: \"city1ed\",\n    street: \"str2ed\",\n    ward: \"test123ed\",\n    postalCode: \"33-222\",\n    name: \"postman tested\"\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'PUT',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Workplace updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating workplace:', error);\n    throw error;\n  }\n};\n\n// Call the function\nupdateWorkplace();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The API returns the updated workplace object with all fields including the UUID.</p>\n<p><strong>Response Schema:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"lastUpdated\": \"string | null\",\n  \"city\": \"string\",\n  \"street\": \"string\",\n  \"ward\": \"string\",\n  \"postalCode\": \"string\",\n  \"name\": \"string\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier of the workplace</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string | null</td>\n<td>Timestamp of the last update (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><code>city</code></td>\n<td>string</td>\n<td>The city where the workplace is located</td>\n</tr>\n<tr>\n<td><code>street</code></td>\n<td>string</td>\n<td>The street address of the workplace</td>\n</tr>\n<tr>\n<td><code>ward</code></td>\n<td>string</td>\n<td>The ward or district of the workplace</td>\n</tr>\n<tr>\n<td><code>postalCode</code></td>\n<td>string</td>\n<td>The postal/ZIP code of the workplace</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the workplace</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n  \"lastUpdated\": null,\n  \"city\": \"city1ed\",\n  \"street\": \"str2ed\",\n  \"ward\": \"test123ed\",\n  \"postalCode\": \"33-222\",\n  \"name\": \"postman tested\"\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request - Invalid request body or parameters</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized - Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden - Insufficient permissions to update the workplace</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found - Workplace with the specified UUID does not exist</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>All fields in the request body are optional. Only include the fields you want to update.</li>\n<li>The <code>uuid</code> field in the response will match the UUID provided in the URL path parameter.</li>\n<li>The <code>lastUpdated</code> field may be <code>null</code> if the timestamp is not tracked or not yet set.</li>\n<li>Ensure your Bearer token has the necessary permissions to update workplace resources.</li>\n</ul>\n","urlObject":{"path":["api","core","workplace","45556b2b-13bf-4544-a310-6ee9bf4fab93"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"2e294256-f7f3-4076-a868-16103c7a9398","name":"Update","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"city\": \"city1ed\",\n  \"street\": \"str2ed\",\n  \"ward\": \"test123ed\",\n  \"postalCode\": \"33-222\",\n  \"name\": \"postman tested\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/workplace/45556b2b-13bf-4544-a310-6ee9bf4fab93"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:56:37 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:56:36 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-aee46cebda9be5b3dcc5f0164b0992e3' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-aee46cebda9be5b3dcc5f0164b0992e3' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n    \"lastUpdated\": null,\n    \"city\": \"city1ed\",\n    \"street\": \"str2ed\",\n    \"ward\": \"test123ed\",\n    \"postalCode\": \"33-222\",\n    \"name\": \"postman tested\"\n}"}],"_postman_id":"6a2732e7-417f-44d3-8432-191633232b08"},{"name":"Delete","id":"8279d140-899e-477a-8c47-6b6152cec062","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/workplace/45556b2b-13bf-4544-a310-6ee9bf4fab93","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint deletes a specific workplace resource from the Highp platform. The workplace is identified by its unique UUID in the URL path.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>DELETE</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/workplace/{workplace_id}</code></p>\n<p><strong>Path Parameters:</strong></p>\n<ul>\n<li><code>workplace_id</code> (string, required) - The unique identifier (UUID) of the workplace to delete<ul>\n<li>Example: <code>45556b2b-13bf-4544-a310-6ee9bf4fab93</code></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>token</code> - Your API access token</li>\n<li><code>tenant_domain</code> - Your tenant's domain (e.g., <code>yourtenant.highp.me</code>)</li>\n</ul>\n<h2 id=\"request-example\">Request Example</h2>\n<h3 id=\"nodejs-fetch\">Node.js (fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'yourtenant.highp.me';\nconst workplaceId = '45556b2b-13bf-4544-a310-6ee9bf4fab93';\nconst token = 'your_access_token_here';\n\nconst url = `https://${tenantDomain}/api/core/workplace/${workplaceId}`;\n\nfetch(url, {\n  method: 'DELETE',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n})\n  .then(response =&gt; {\n    if (response.ok) {\n      console.log('Workplace deleted successfully');\n      return response;\n    }\n    throw new Error(`HTTP error! status: ${response.status}`);\n  })\n  .catch(error =&gt; {\n    console.error('Error deleting workplace:', error);\n  });\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the workplace is successfully deleted, the API returns a <code>200 OK</code> status with an empty response body.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Length: 0\nCache-Control: no-cache\nX-XSS-Protection: 1; mode=block\nX-Frame-Options: DENY\nX-Content-Type-Options: nosniff\n</code></pre><h3 id=\"response-model\">Response Model</h3>\n<p>The successful deletion returns no content. The absence of an error indicates the workplace was successfully removed from the system.</p>\n<h2 id=\"error-responses\">Error Responses</h2>\n<p>Possible error responses include:</p>\n<ul>\n<li><code>401 Unauthorized</code> - Invalid or missing authentication token</li>\n<li><code>403 Forbidden</code> - Insufficient permissions to delete the workplace</li>\n<li><code>404 Not Found</code> - Workplace with the specified ID does not exist</li>\n<li><code>500 Internal Server Error</code> - Server-side error occurred</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>This is a destructive operation and cannot be undone</li>\n<li>Ensure you have the necessary permissions before attempting to delete a workplace</li>\n<li>The workplace ID must be a valid UUID format</li>\n<li>After successful deletion, any references to this workplace will become invalid</li>\n</ul>\n","urlObject":{"path":["api","core","workplace","45556b2b-13bf-4544-a310-6ee9bf4fab93"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"500e8b1a-5106-484f-8638-a2ea93e47fa9","name":"Delete","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/workplace/45556b2b-13bf-4544-a310-6ee9bf4fab93"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:57:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:57:39 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-7d0ecd26d559b904ffd8fdb5f70ea93b' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-7d0ecd26d559b904ffd8fdb5f70ea93b' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"8279d140-899e-477a-8c47-6b6152cec062"},{"name":"Add Relation To Contact","id":"9b41140e-9bda-4bdd-b489-8b2530f1d6ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"workplaceUuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/workplace/add-relation","description":"<h1 id=\"add-relation-to-contact\">Add Relation To Contact</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates a relationship between a workplace and a contact in the Highp platform. It associates a specific contact with a workplace, enabling the contact to be linked to that workplace's activities and communications.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>POST</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/workplace/add-relation</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be a JSON object with the following fields:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"workplaceUuid\": \"string\",\n  \"contactUuid\": \"string\"\n}\n</code></pre>\n<h3 id=\"field-descriptions\">Field Descriptions</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>workplaceUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the workplace to which the contact will be related</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the contact to be associated with the workplace</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"workplaceUuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\nconst token = 'your_bearer_token_here'; // Replace with your access token\n\nconst addRelationToContact = async (workplaceUuid, contactUuid) =&gt; {\n  const url = `https://${tenantDomain}/api/core/workplace/add-relation`;\n  \n  const requestBody = {\n    workplaceUuid: workplaceUuid,\n    contactUuid: contactUuid\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    // Check if response has content\n    const contentLength = response.headers.get('content-length');\n    if (contentLength &amp;&amp; contentLength !== '0') {\n      const data = await response.json();\n      console.log('Success:', data);\n      return data;\n    } else {\n      console.log('Relation added successfully (no response body)');\n      return { success: true, status: response.status };\n    }\n  } catch (error) {\n    console.error('Error adding relation:', error);\n    throw error;\n  }\n};\n\n// Usage example\naddRelationToContact(\n  '45556b2b-13bf-4544-a310-6ee9bf4fab93',\n  '58caa5c6-6419-4ed6-b05a-3faae5134d4b'\n);\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p>The endpoint returns a successful HTTP 200 status code with an empty response body when the relation is successfully created. The absence of a response body indicates that the operation completed successfully without returning additional data.</p>\n<h3 id=\"response-headers\">Response Headers</h3>\n<p>The response includes standard security and caching headers:</p>\n<ul>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-XSS-Protection: 1; mode=block</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>Content-Security-Policy: [security policy details]</code></li>\n</ul>\n<h3 id=\"response-model\">Response Model</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">// Success response (HTTP 200)\n// Empty response body\n// Status: 200 OK\n// Content-Length: 0\n</code></pre>\n<h3 id=\"error-responses\">Error Responses</h3>\n<p>Common error responses you may encounter:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Invalid request body or missing required fields</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Insufficient permissions to create the relation</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Workplace or contact UUID not found</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Both <code>workplaceUuid</code> and <code>contactUuid</code> must be valid UUIDs that exist in the system</li>\n<li>The contact must not already be related to the workplace (duplicate relations may result in an error)</li>\n<li>Ensure you have the necessary permissions to modify workplace relations</li>\n<li>The <code>{{tenant_domain}}</code> and <code>{{token}}</code> variables should be configured in your Postman environment or replaced with actual values</li>\n</ul>\n","urlObject":{"path":["api","core","workplace","add-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"5d26bf41-f9a3-4fa2-ab39-97713c1a6965","name":"Add Relation To Contact","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"workplaceUuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/workplace/add-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:57:27 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:57:26 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-95369d390fd7ecc769504b38c5c22136' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-95369d390fd7ecc769504b38c5c22136' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"9b41140e-9bda-4bdd-b489-8b2530f1d6ea"},{"name":"Delete Relation To Contact","id":"9bccb9b6-2bff-4777-a581-61fc49e66b98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"workplaceUuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/workplace/remove-relation","description":"<h1 id=\"delete-relation-to-contact\">Delete Relation To Contact</h1>\n<h2 id=\"description\">Description</h2>\n<p>This endpoint removes a relation between a workplace and a contact in the Highp platform. When a contact is associated with a workplace, this endpoint allows you to delete that relationship.</p>\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>POST</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/workplace/remove-relation</code></p>\n<h3 id=\"required-variables\">Required Variables</h3>\n<ul>\n<li><code>tenant_domain</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>token</code> - Bearer authentication token for API access</li>\n</ul>\n<h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be sent as JSON with the following required fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>workplaceUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the workplace</td>\n</tr>\n<tr>\n<td><code>contactUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the contact to remove from the workplace</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"workplaceUuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n    \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst token = 'your_access_token_here'; // Replace with your access token\n\nconst requestBody = {\n    workplaceUuid: '45556b2b-13bf-4544-a310-6ee9bf4fab93',\n    contactUuid: '58caa5c6-6419-4ed6-b05a-3faae5134d4b'\n};\n\nfetch(`https://${tenantDomain}/api/core/workplace/remove-relation`, {\n    method: 'POST',\n    headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n    },\n    body: JSON.stringify(requestBody)\n})\n.then(response =&gt; {\n    if (response.ok) {\n        console.log('Relation deleted successfully');\n        return response;\n    }\n    throw new Error(`HTTP error! status: ${response.status}`);\n})\n.catch(error =&gt; {\n    console.error('Error deleting relation:', error);\n});\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the relation is successfully deleted, the endpoint returns an empty response body with HTTP status code 200.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Content-Length: 0</code></li>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n</ul>\n<h3 id=\"example-success-response\">Example Success Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP/1.1 200 OK\nContent-Length: 0\nCache-Control: no-cache\n</code></pre><p>The empty response indicates that the relation between the workplace and contact has been successfully removed from the system.</p>\n","urlObject":{"path":["api","core","workplace","remove-relation"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"8ec70ff0-9bec-4d48-b05c-35cce22daa2d","name":"Delete Relation To Contact","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"workplaceUuid\": \"45556b2b-13bf-4544-a310-6ee9bf4fab93\",\n  \"contactUuid\": \"58caa5c6-6419-4ed6-b05a-3faae5134d4b\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/workplace/remove-relation"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 13:57:34 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 13:57:33 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-956da3e407602d60e54bef6581cb749f' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-956da3e407602d60e54bef6581cb749f' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"9bccb9b6-2bff-4777-a581-61fc49e66b98"}],"id":"d51b7b59-e78c-4736-914e-da609869db26","_postman_id":"d51b7b59-e78c-4736-914e-da609869db26","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"WhatsApp Templates","item":[{"name":"Create Template","id":"ea342fc0-8b8c-4fd6-8fd8-b3b4dab3bf11","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"// request body is defined in official Infobip WhatsApp API documentation\n// https://www.infobip.com/docs/api/channels/whatsapp/whatsapp-service-management/whatsapp-template-management/create-whatsapp-template\n{\n    \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521221222\", // optional, if null - backeng generate it\n    \"name\": \"text_template_wb\",\n    \"sender\": \"48502344050\", //phone number registered for whats app sending (sender)\n    \"language\": \"en\",\n    \"category\": \"MARKETING\",\n    \"structure\": {\n        \"body\": {\n            \"text\": \"Hi \"{{1}}\"!\\nThanks for joining us!\",\n            \"examples\": [\n                \"name\"\n            ]\n        }\n    },\n    \"mappings\" : {\n        \"{{1}}\" : \"{{rep.firstname}}\"\n    }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/sms-sender/whatsapp/templates","description":"<h1 id=\"create-whatsapp-template\">Create WhatsApp Template</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Creates a new WhatsApp message template for your tenant. This endpoint allows you to define reusable message formats that can be sent via WhatsApp. Templates must be approved by WhatsApp before they can be used in production messaging. The template supports dynamic content through placeholders and variable mappings.</p>\n<hr />\n<h2 id=\"nodejs-code-examples\">Node.js Code Examples</h2>\n<h3 id=\"using-native-nodejs-https-module\">Using Native Node.js (https module)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const https = require('https');\n// Configuration\nconst tenantDomain = process.env.TENANT_DOMAIN || 'your-tenant.domain.com';\nconst token = process.env.TOKEN || 'your-auth-token';\n// Request body\nconst requestBody = JSON.stringify({\n  uuid: \"4d2bfe45-ada1-4b27-ab53-22952ae702d1\",\n  name: \"text_template\",\n  sender: \"48502344050\", // Phone number registered for WhatsApp sending\n  language: \"en\",\n  category: \"MARKETING\",\n  structure: {\n    body: {\n      text: \"body {{1}} content {{2}}. Best regards.\",\n      examples: [\"example\", \"test\"]\n    }\n  },\n  mappings: {\n    \"{{1}}\": \"value1\",\n    \"{{2}}\": \"value2\"\n  }\n});\n// Request options\nconst options = {\n  hostname: tenantDomain,\n  port: 443,\n  path: '/api/sms-sender/whatsapp/templates',\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n    'Content-Length': Buffer.byteLength(requestBody),\n    'Authorization': `Bearer ${token}` // Adjust based on your auth scheme\n  }\n};\n// Make the request\nconst req = https.request(options, (res) =&gt; {\n  let data = '';\n  // Collect response data\n  res.on('data', (chunk) =&gt; {\n    data += chunk;\n  });\n  // Handle complete response\n  res.on('end', () =&gt; {\n    if (res.statusCode &gt;= 200 &amp;&amp; res.statusCode &lt; 300) {\n      const template = JSON.parse(data);\n      console.log('Template created successfully:', template);\n    } else {\n      console.error(`Error: ${res.statusCode}`, data);\n    }\n  });\n});\n// Handle request errors\nreq.on('error', (error) =&gt; {\n  console.error('Request failed:', error.message);\n});\n// Send the request\nreq.write(requestBody);\nreq.end();\n\n</code></pre>\n<h3 id=\"using-axios\">Using Axios</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const axios = require('axios');\n// Configuration\nconst tenantDomain = process.env.TENANT_DOMAIN || 'your-tenant.domain.com';\nconst token = process.env.TOKEN || 'your-auth-token';\n// Request payload\nconst templateData = {\n  uuid: \"4d2bfe45-ada1-4b27-ab53-22952ae702d1\",\n  name: \"text_template\",\n  sender: \"48502344050\", // Phone number registered for WhatsApp sending\n  language: \"en\",\n  category: \"MARKETING\",\n  structure: {\n    body: {\n      text: \"body {{1}} content {{2}}. Best regards.\",\n      examples: [\"example\", \"test\"]\n    }\n  },\n  mappings: {\n    \"{{1}}\": \"value1\",\n    \"{{2}}\": \"value2\"\n  }\n};\n// Make the request\nasync function createWhatsAppTemplate() {\n  try {\n    const response = await axios.post(\n      `https://${tenantDomain}/api/sms-sender/whatsapp/templates`,\n      templateData,\n      {\n        headers: {\n          'Content-Type': 'application/json',\n          'Authorization': `Bearer ${token}` // Adjust based on your auth scheme\n        }\n      }\n    );\n    console.log('Template created successfully:', response.data);\n    return response.data;\n  } catch (error) {\n    if (error.response) {\n      // Server responded with error status\n      console.error('Error response:', error.response.status, error.response.data);\n    } else if (error.request) {\n      // Request made but no response received\n      console.error('No response received:', error.request);\n    } else {\n      // Error setting up the request\n      console.error('Request setup error:', error.message);\n    }\n    throw error;\n  }\n}\n// Execute the function\ncreateWhatsAppTemplate();\n\n</code></pre>\n<h3 id=\"using-fetch-api-nodejs-18\">Using Fetch API (Node.js 18+)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Configuration\nconst tenantDomain = process.env.TENANT_DOMAIN || 'your-tenant.domain.com';\nconst token = process.env.TOKEN || 'your-auth-token';\n// Request payload\nconst templateData = {\n  uuid: \"4d2bfe45-ada1-4b27-ab53-22952ae702d1\",\n  name: \"text_template\",\n  sender: \"48502344050\", // Phone number registered for WhatsApp sending\n  language: \"en\",\n  category: \"MARKETING\",\n  structure: {\n    body: {\n      text: \"body {{1}} content {{2}}. Best regards.\",\n      examples: [\"example\", \"test\"]\n    }\n  },\n  mappings: {\n    \"{{1}}\": \"value1\",\n    \"{{2}}\": \"value2\"\n  }\n};\n// Make the request\nasync function createWhatsAppTemplate() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/sms-sender/whatsapp/templates`,\n      {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json',\n          'Authorization': `Bearer ${token}` // Adjust based on your auth scheme\n        },\n        body: JSON.stringify(templateData)\n      }\n    );\n    // Check if response is successful\n    if (!response.ok) {\n      const errorData = await response.text();\n      throw new Error(`HTTP ${response.status}: ${errorData}`);\n    }\n    // Parse and return the response\n    const result = await response.json();\n    console.log('Template created successfully:', result);\n    return result;\n  } catch (error) {\n    console.error('Failed to create template:', error.message);\n    throw error;\n  }\n}\n// Execute the function\ncreateWhatsAppTemplate();\n\n</code></pre>\n<hr />\n<h2 id=\"request-model\">Request Model</h2>\n<h3 id=\"request-body-structure\">Request Body Structure</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">{\n  uuid: string;              // Unique identifier for the template (UUID v4 format)\n  name: string;              // Template name (must be unique within your tenant)\n  sender: string;            // Phone number registered for WhatsApp sending (E.164 format)\n  language: string;          // Language code (ISO 639-1, e.g., \"en\", \"es\", \"fr\")\n  category: string;          // Template category: \"MARKETING\", \"UTILITY\", or \"AUTHENTICATION\"\n  structure: {               // Template structure definition\n    body: {\n      text: string;          // Message body with placeholders (e.g., {{1}}, {{2}})\n      examples: string[];    // Example values for placeholders (for WhatsApp approval)\n    }\n  };\n  mappings: {                // Optional: Map placeholders to variable names\n    [key: string]: string;   // Key format: \"{{1}}\", \"{{2}}\", etc.\n  }\n}\n\n</code></pre>\n<h3 id=\"field-descriptions\">Field Descriptions</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>Unique identifier for the template (UUID v4 format)</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Template name, must be unique within your tenant</td>\n</tr>\n<tr>\n<td><code>sender</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Phone number registered for WhatsApp sending (E.164 format, e.g., \"48502344050\")</td>\n</tr>\n<tr>\n<td><code>language</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Language code following ISO 639-1 standard (e.g., \"en\", \"es\", \"fr\", \"de\")</td>\n</tr>\n<tr>\n<td><code>category</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Template category: <code>MARKETING</code>, <code>UTILITY</code>, or <code>AUTHENTICATION</code></td>\n</tr>\n<tr>\n<td><code>structure.body.text</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Message body text with placeholders in format <code>{{1}}</code>, <code>{{2}}</code>, etc.</td>\n</tr>\n<tr>\n<td><code>structure.body.examples</code></td>\n<td>string[]</td>\n<td>Yes</td>\n<td>Example values for placeholders, required for WhatsApp template approval</td>\n</tr>\n<tr>\n<td><code>mappings</code></td>\n<td>object</td>\n<td>No</td>\n<td>Maps placeholder keys to descriptive variable names for easier reference</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"category-guidelines\">Category Guidelines</h3>\n<ul>\n<li><p><strong>MARKETING</strong>: Promotional messages, offers, announcements</p>\n</li>\n<li><p><strong>UTILITY</strong>: Account updates, order notifications, appointment reminders</p>\n</li>\n<li><p><strong>AUTHENTICATION</strong>: OTP codes, verification messages, security alerts</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">{\n  uuid: string;              // Template UUID\n  name: string;              // Template name\n  sender: string;            // Sender phone number\n  language: string;          // Language code\n  category: string;          // Template category\n  status: string;            // Template status: \"PENDING\", \"APPROVED\", \"REJECTED\"\n  structure: {\n    body: {\n      text: string;\n      examples: string[];\n    }\n  };\n  mappings: {\n    [key: string]: string;\n  };\n  createdAt: string;         // ISO 8601 timestamp\n  updatedAt: string;         // ISO 8601 timestamp\n}\n\n</code></pre>\n<h3 id=\"example-success-response\">Example Success Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"4d2bfe45-ada1-4b27-ab53-22952ae702d1\",\n  \"name\": \"text_template\",\n  \"sender\": \"48502344050\",\n  \"language\": \"en\",\n  \"category\": \"MARKETING\",\n  \"status\": \"PENDING\",\n  \"structure\": {\n    \"body\": {\n      \"text\": \"body {{1}} content {{2}}. Best regards.\",\n      \"examples\": [\"example\", \"test\"]\n    }\n  },\n  \"mappings\": {\n    \"{{1}}\": \"value1\",\n    \"{{2}}\": \"value2\"\n  },\n  \"createdAt\": \"2024-01-15T10:30:00Z\",\n  \"updatedAt\": \"2024-01-15T10:30:00Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-handling\">Error Handling</h2>\n<h3 id=\"common-error-responses\">Common Error Responses</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Comprehensive error handling example\nasync function createTemplateWithErrorHandling() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/sms-sender/whatsapp/templates`,\n      {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json',\n          'Authorization': `Bearer ${token}`\n        },\n        body: JSON.stringify(templateData)\n      }\n    );\n    const data = await response.json();\n    // Handle different status codes\n    switch (response.status) {\n      case 200:\n      case 201:\n        console.log('Template created successfully:', data);\n        return data;\n      case 400:\n        console.error('Bad Request - Invalid template data:', data.message);\n        // Handle validation errors\n        if (data.errors) {\n          data.errors.forEach(err =&gt; {\n            console.error(`  - ${err.field}: ${err.message}`);\n          });\n        }\n        break;\n      case 401:\n        console.error('Unauthorized - Invalid or expired token');\n        // Refresh token or re-authenticate\n        break;\n      case 403:\n        console.error('Forbidden - Insufficient permissions');\n        break;\n      case 409:\n        console.error('Conflict - Template with this name already exists');\n        break;\n      case 422:\n        console.error('Unprocessable Entity - Invalid template structure:', data.message);\n        break;\n      case 429:\n        console.error('Rate Limit Exceeded - Too many requests');\n        // Implement retry with exponential backoff\n        const retryAfter = response.headers.get('Retry-After');\n        console.log(`Retry after ${retryAfter} seconds`);\n        break;\n      case 500:\n        console.error('Internal Server Error - Please try again later');\n        break;\n      default:\n        console.error(`Unexpected error (${response.status}):`, data);\n    }\n    throw new Error(`Request failed with status ${response.status}`);\n  } catch (error) {\n    if (error.name === 'TypeError' &amp;&amp; error.message.includes('fetch')) {\n      console.error('Network error - Check your internet connection');\n    } else {\n      console.error('Error creating template:', error.message);\n    }\n    throw error;\n  }\n}\n\n</code></pre>\n<h3 id=\"error-response-structure\">Error Response Structure</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">{\n  error: string;             // Error type\n  message: string;           // Human-readable error message\n  statusCode: number;        // HTTP status code\n  errors?: Array&lt;{           // Validation errors (for 400/422 responses)\n    field: string;\n    message: string;\n  }&gt;;\n}\n\n</code></pre>\n<h3 id=\"common-error-codes\">Common Error Codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Error Type</th>\n<th>Description</th>\n<th>Solution</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request</td>\n<td>Invalid request body or missing required fields</td>\n<td>Validate request payload against schema</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Missing or invalid authentication token</td>\n<td>Check token validity and refresh if needed</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Insufficient permissions</td>\n<td>Verify user has WhatsApp template creation permissions</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Conflict</td>\n<td>Template name already exists</td>\n<td>Use a unique template name</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity</td>\n<td>Invalid template structure or placeholder format</td>\n<td>Review template structure and placeholder syntax</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Rate Limit Exceeded</td>\n<td>Too many requests</td>\n<td>Implement retry logic with exponential backoff</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error</td>\n<td>Server-side error</td>\n<td>Retry request or contact support</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"authentication\">Authentication</h2>\n<h3 id=\"using-the-token-variable\">Using the Token Variable</h3>\n<p>The API uses bearer token authentication. The token should be included in the <code>Authorization</code> header of each request.</p>\n<h4 id=\"setting-up-environment-variables\">Setting Up Environment Variables</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Load environment variables from .env file\nrequire('dotenv').config();\nconst tenantDomain = process.env.TENANT_DOMAIN;\nconst token = process.env.TOKEN;\n// Validate required variables\nif (!tenantDomain || !token) {\n  throw new Error('Missing required environment variables: TENANT_DOMAIN and TOKEN');\n}\n\n</code></pre>\n<h4 id=\"example-env-file\">Example .env File</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">TENANT_DOMAIN=your-tenant.highp.me\nTOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n\n</code></pre>\n<h4 id=\"token-management-best-practices\">Token Management Best Practices</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">class WhatsAppTemplateClient {\n  constructor(tenantDomain, token) {\n    this.tenantDomain = tenantDomain;\n    this.token = token;\n    this.baseUrl = `https://${tenantDomain}/api/sms-sender/whatsapp`;\n  }\n  // Get authorization headers\n  getHeaders() {\n    return {\n      'Content-Type': 'application/json',\n      'Authorization': `Bearer ${this.token}`\n    };\n  }\n  // Create template with automatic token handling\n  async createTemplate(templateData) {\n    try {\n      const response = await fetch(`${this.baseUrl}/templates`, {\n        method: 'POST',\n        headers: this.getHeaders(),\n        body: JSON.stringify(templateData)\n      });\n      if (response.status === 401) {\n        // Token expired - implement refresh logic here\n        console.error('Token expired. Please refresh your authentication token.');\n        throw new Error('Authentication token expired');\n      }\n      if (!response.ok) {\n        throw new Error(`HTTP ${response.status}: ${await response.text()}`);\n      }\n      return await response.json();\n    } catch (error) {\n      console.error('Failed to create template:', error.message);\n      throw error;\n    }\n  }\n  // Update token (e.g., after refresh)\n  updateToken(newToken) {\n    this.token = newToken;\n  }\n}\n// Usage\nconst client = new WhatsAppTemplateClient(\n  process.env.TENANT_DOMAIN,\n  process.env.TOKEN\n);\n// Create template\nconst template = await client.createTemplate({\n  uuid: \"4d2bfe45-ada1-4b27-ab53-22952ae702d1\",\n  name: \"text_template\",\n  sender: \"48502344050\",\n  language: \"en\",\n  category: \"MARKETING\",\n  structure: {\n    body: {\n      text: \"body {{1}} content {{2}}. Best regards.\",\n      examples: [\"example\", \"test\"]\n    }\n  },\n  mappings: {\n    \"{{1}}\": \"value1\",\n    \"{{2}}\": \"value2\"\n  }\n});\n\n</code></pre>\n<h4 id=\"security-considerations\">Security Considerations</h4>\n<ol>\n<li><p><strong>Never hardcode tokens</strong> in your source code</p>\n</li>\n<li><p><strong>Use environment variables</strong> or secure secret management systems</p>\n</li>\n<li><p><strong>Rotate tokens regularly</strong> to minimize security risks</p>\n</li>\n<li><p><strong>Store tokens securely</strong> with appropriate encryption</p>\n</li>\n<li><p><strong>Implement token refresh logic</strong> to handle expiration gracefully</p>\n</li>\n<li><p><strong>Use HTTPS only</strong> to prevent token interception</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"additional-notes\">Additional Notes</h2>\n<ul>\n<li><p>Templates must be approved by WhatsApp before they can be used in production</p>\n</li>\n<li><p>Approval typically takes 24-48 hours</p>\n</li>\n<li><p>Test your templates thoroughly before submitting for approval</p>\n</li>\n<li><p>Follow WhatsApp's template guidelines to avoid rejection</p>\n</li>\n<li><p>Use descriptive template names for easier management</p>\n</li>\n<li><p>Keep placeholder examples relevant to your actual use case</p>\n</li>\n</ul>\n<p>For more information, refer to the <a href=\"https://www.infobip.com/docs/api/channels/whatsapp/whatsapp-service-management/whatsapp-template-management/create-whatsapp-template\">official Infobip WhatsApp API documentation</a>.</p>\n","urlObject":{"path":["api","sms-sender","whatsapp","templates"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"bd4f0c4b-5530-4ddf-bbab-a1db9867ec37","name":"Create Template","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"// request body is defined in official Infobip WhatsApp API documentation\n// https://www.infobip.com/docs/api/channels/whatsapp/whatsapp-service-management/whatsapp-template-management/create-whatsapp-template\n{\n    \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521221222\", // optional, if null - backeng generate it\n    \"name\": \"text_template_wb\",\n    \"sender\": \"48502344050\", //phone number registered for whats app sending (sender)\n    \"language\": \"en\",\n    \"category\": \"MARKETING\",\n    \"structure\": {\n        \"body\": {\n            \"text\": \"Hi \"{{1}}\"!\\nThanks for joining us!\",\n            \"examples\": [\n                \"name\"\n            ]\n        }\n    },\n    \"mappings\" : {\n        \"{{1}}\" : \"{{rep.firstname}}\"\n    }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/sms-sender/whatsapp/templates"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Thu, 04 Dec 2025 09:22:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Thu, 04 Dec 2025 09:22:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"smssender"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-66b91bf631a8db9051d03e93641fac31' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-66b91bf631a8db9051d03e93641fac31' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521111111\",\n    \"provider\": \"INFOBIP\",\n    \"tenantUuid\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n    \"sender\": \"48502344050\",\n    \"templateId\": \"2895581377299360\",\n    \"name\": \"text_template_wb\",\n    \"templateBody\": \"{\\\"id\\\":\\\"2895581377299360\\\",\\\"businessAccountId\\\":440926379114112,\\\"name\\\":\\\"3951e123_0c02_4b4b_86d5_c1823d2bbf4b__4d2bfe45_ada1_4b27_ab53_229521111111\\\",\\\"language\\\":\\\"en\\\",\\\"status\\\":\\\"PENDING\\\",\\\"category\\\":\\\"MARKETING\\\",\\\"structure\\\":{\\\"body\\\":{\\\"text\\\":\\\"Hi {{1}}! Thanks for joining us!\\\",\\\"examples\\\":[\\\"name\\\"]},\\\"type\\\":\\\"TEXT\\\"},\\\"quality\\\":\\\"UNKNOWN\\\",\\\"createdAt\\\":\\\"2025-12-04T09:22:41.329+0000\\\",\\\"lastUpdatedAt\\\":\\\"2025-12-04T09:22:41.385+0000\\\"}\",\n    \"status\": \"PENDING\",\n    \"lastUpdated\": \"2025-12-04T09:22:41.536438\",\n    \"mappings\": \"{\\\"{{1}}\\\":\\\"{{rep.firstname}}\\\"}\"\n}"}],"_postman_id":"ea342fc0-8b8c-4fd6-8fd8-b3b4dab3bf11"},{"name":"Edit Template","id":"44bfa942-5fde-42dc-8659-3c72c432c10e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"// request body is defined in official Infobip WhatsApp API documentation\n// https://www.infobip.com/docs/api/channels/whatsapp/whatsapp-service-management/whatsapp-template-management/edit-whatsapp-template\n{\n    \"name\": \"text_template_wb2_ed2\",\n    \"structure\": {\n        \"body\": {\n            \"text\": \"Hi \"{{1}}\"!\\nWe’ve got some exciting updates and exclusive offers coming your way soon.\\nHave a great day!\",\n            \"examples\": [\n                \"name\"\n            ]\n        }\n    },\n    \"mappings\" : {\n        \"{{1}}\" : \"{{rep.firstname}}\"\n    }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/sms-sender/whatsapp/templates/:TemplateUuid","description":"<h1 id=\"edit-whatsapp-template\">Edit WhatsApp Template</h1>\n<ul>\n<li><p>Only templates with an approved, rejected, or paused status can be edited.</p>\n</li>\n<li><p>Category of an approved template cannot be edited.</p>\n</li>\n<li><p>Approved templates can be edited up to 10 times in a 30-day window, or 1 time in a 24-hour window. Rejected or paused templates can be edited an unlimited number of times.</p>\n</li>\n</ul>\n<p>Updates an existing WhatsApp message template identified by its sender and UUID. Use this endpoint to modify the template's name, language, category, or message content.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PATCH https://{{tenant_domain}}/api/sms-sender/whatsapp/templates/{{TemplateUuid}}\n\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n\n</code></pre><h2 id=\"path-variables\">Path Variables</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Your tenant's domain (e.g., <code>testsandbox.highp.me</code>)</td>\n</tr>\n<tr>\n<td><code>TemplateUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The UUID of the template to edit (e.g., <code>4d2bfe45-ada1-4b27-ab53-229521221222</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>The request body should be in JSON format with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"name\": \"text_template_wb2_ed2\",\n    \"structure\": {\n        \"body\": {\n            \"text\": \"Hi {{1}}!\\nWe've got some exciting updates and exclusive offers coming your way soon.\\nHave a great day!\",\n            \"examples\": [\n                \"name\"\n            ]\n        }\n    },\n    \"mappings\": {\n        \"{{1}}\": \"{{rep.firstname}}\"\n    }\n}\n\n</code></pre>\n<h3 id=\"request-body-schema\">Request Body Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The name/identifier for the template</td>\n</tr>\n<tr>\n<td><code>structure</code></td>\n<td>object</td>\n<td>Yes</td>\n<td>The template structure definition</td>\n</tr>\n<tr>\n<td><code>structure.body</code></td>\n<td>object</td>\n<td>Yes</td>\n<td>The body content of the template</td>\n</tr>\n<tr>\n<td><code>structure.body.text</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The template text with placeholders (e.g., <code>{{1}}</code>)</td>\n</tr>\n<tr>\n<td><code>structure.body.examples</code></td>\n<td>array</td>\n<td>No</td>\n<td>Example values for placeholders</td>\n</tr>\n<tr>\n<td><code>mappings</code></td>\n<td>object</td>\n<td>No</td>\n<td>Maps template placeholders to variable names</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"1916877828891698\",\n    \"businessAccountId\": 440926379114112,\n    \"name\": \"3951e123_0c02_4b4b_86d5_c1823d2bbf4b__4d2bfe45_ada1_4b27_ab53_229521221222\",\n    \"language\": \"en\",\n    \"status\": \"PENDING\",\n    \"category\": \"MARKETING\",\n    \"structure\": {\n        \"body\": {\n            \"text\": \"Hi {{1}}!\\nWe've got some exciting updates and exclusive offers coming your way soon.\\nHave a great day!\",\n            \"examples\": [\n                \"name\"\n            ]\n        },\n        \"type\": \"TEXT\"\n    },\n    \"quality\": \"UNKNOWN\",\n    \"createdAt\": \"2025-12-04T13:13:25.004+0000\",\n    \"lastUpdatedAt\": \"2025-12-04T13:13:25.004+0000\"\n}\n\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>The unique identifier for the template</td>\n</tr>\n<tr>\n<td><code>businessAccountId</code></td>\n<td>number</td>\n<td>The business account ID associated with the template</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The internal name of the template</td>\n</tr>\n<tr>\n<td><code>language</code></td>\n<td>string</td>\n<td>The language code of the template (e.g., <code>en</code>)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>The current status of the template (<code>PENDING</code>, <code>APPROVED</code>, <code>REJECTED</code>, <code>DRAFT</code>)</td>\n</tr>\n<tr>\n<td><code>category</code></td>\n<td>string</td>\n<td>The template category (e.g., <code>MARKETING</code>, <code>UTILITY</code>, <code>AUTHENTICATION</code>)</td>\n</tr>\n<tr>\n<td><code>structure</code></td>\n<td>object</td>\n<td>The template structure</td>\n</tr>\n<tr>\n<td><code>structure.body</code></td>\n<td>object</td>\n<td>The body content</td>\n</tr>\n<tr>\n<td><code>structure.body.text</code></td>\n<td>string</td>\n<td>The template text with placeholders</td>\n</tr>\n<tr>\n<td><code>structure.body.examples</code></td>\n<td>array</td>\n<td>Example values for placeholders</td>\n</tr>\n<tr>\n<td><code>structure.type</code></td>\n<td>string</td>\n<td>The template type (e.g., <code>TEXT</code>)</td>\n</tr>\n<tr>\n<td><code>quality</code></td>\n<td>string</td>\n<td>The quality rating of the template</td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>string</td>\n<td>ISO 8601 timestamp of template creation</td>\n</tr>\n<tr>\n<td><code>lastUpdatedAt</code></td>\n<td>string</td>\n<td>ISO 8601 timestamp of last update</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me';\nconst templateUuid = '4d2bfe45-ada1-4b27-ab53-229521221222';\nconst token = 'your_bearer_token_here';\nconst url = `https://${tenantDomain}/api/sms-sender/whatsapp/templates/${templateUuid}`;\nconst requestBody = {\n    name: \"text_template_wb2_ed2\",\n    structure: {\n        body: {\n            text: \"Hi {{1}}!\\nWe've got some exciting updates and exclusive offers coming your way soon.\\nHave a great day!\",\n            examples: [\n                \"name\"\n            ]\n        }\n    },\n    mappings: {\n        \"{{1}}\": \"{{rep.firstname}}\"\n    }\n};\nfetch(url, {\n    method: 'PATCH',\n    headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n    },\n    body: JSON.stringify(requestBody)\n})\n.then(response =&gt; {\n    if (!response.ok) {\n        throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n})\n.then(data =&gt; {\n    console.log('Template updated successfully:', data);\n    console.log('Template ID:', data.id);\n    console.log('Status:', data.status);\n})\n.catch(error =&gt; {\n    console.error('Error updating template:', error);\n});\n\n</code></pre>\n<h2 id=\"important-notes\">Important Notes</h2>\n<p>⚠️ <strong>Template Editing Restrictions:</strong></p>\n<ul>\n<li><p>Only templates in <strong>DRAFT</strong> or <strong>REJECTED</strong> state can be edited</p>\n</li>\n<li><p>Templates with <strong>APPROVED</strong> or <strong>PENDING</strong> status cannot be modified</p>\n</li>\n<li><p>After editing, the template status will typically change to <strong>PENDING</strong> for review</p>\n</li>\n<li><p>Changes to approved templates require creating a new template version</p>\n</li>\n</ul>\n<p>📝 <strong>Best Practices:</strong></p>\n<ul>\n<li><p>Use descriptive template names for easy identification</p>\n</li>\n<li><p>Include example values to help reviewers understand placeholder usage</p>\n</li>\n<li><p>Use the <code>mappings</code> field to document variable relationships</p>\n</li>\n<li><p>Follow WhatsApp's template guidelines to avoid rejection</p>\n</li>\n</ul>\n<p>🔗 <strong>Reference:</strong><br />For more details, see the <a href=\"https://www.infobip.com/docs/api/channels/whatsapp/whatsapp-service-management/whatsapp-template-management/edit-whatsapp-template\">official Infobip WhatsApp API documentation</a></p>\n","urlObject":{"path":["api","sms-sender","whatsapp","templates",":TemplateUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{TemplateUuid}}","key":"TemplateUuid"}]}},"response":[{"id":"7f2a1298-691e-49c3-90d3-92a0cc29467b","name":"Edit Template","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"// request body is defined in official Infobip WhatsApp API documentation\n// https://www.infobip.com/docs/api/channels/whatsapp/whatsapp-service-management/whatsapp-template-management/edit-whatsapp-template\n{\n    \"name\": \"text_template_wb2_ed2\",\n    \"structure\": {\n        \"body\": {\n            \"text\": \"Hi \"{{1}}\"!\\nWe’ve got some exciting updates and exclusive offers coming your way soon.\\nHave a great day!\",\n            \"examples\": [\n                \"name\"\n            ]\n        }\n    },\n    \"mappings\" : {\n        \"{{1}}\" : \"{{rep.firstname}}\"\n    }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"testsandbox.highp.me/api/sms-sender/whatsapp/templates/:TemplateUuid","host":["testsandbox.highp.me"],"path":["api","sms-sender","whatsapp","templates",":TemplateUuid"],"variable":[{"key":"TemplateUuid","value":"{{TemplateUuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Thu, 04 Dec 2025 13:13:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Thu, 04 Dec 2025 13:13:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"smssender"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-4cfd2a58bffe687602473aef661e2cca' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-4cfd2a58bffe687602473aef661e2cca' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"1916877828891698\",\n    \"businessAccountId\": 440926379114112,\n    \"name\": \"3951e123_0c02_4b4b_86d5_c1823d2bbf4b__4d2bfe45_ada1_4b27_ab53_229521221222\",\n    \"language\": \"en\",\n    \"status\": \"PENDING\",\n    \"category\": \"MARKETING\",\n    \"structure\": {\n        \"body\": {\n            \"text\": \"Hi {{1}}!\\nWe’ve got some exciting updates and exclusive offers coming your way soon.\\nHave a great day!\",\n            \"examples\": [\n                \"name\"\n            ]\n        },\n        \"type\": \"TEXT\"\n    },\n    \"quality\": \"UNKNOWN\",\n    \"createdAt\": \"2025-12-04T13:13:25.004+0000\",\n    \"lastUpdatedAt\": \"2025-12-04T13:13:25.004+0000\"\n}"}],"_postman_id":"44bfa942-5fde-42dc-8659-3c72c432c10e"},{"name":"Get All Templates","id":"fdfdb9eb-4cbd-4f5e-ab17-0b736b1d8141","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/sms-sender/whatsapp/templates/all?size=20&page=0&sortBy=uuid&sortDirection=asc&search=np. name","description":"<h1 id=\"get-all-whatsapp-templates\">Get All WhatsApp Templates</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Retrieves a paginated list of all WhatsApp message templates for your tenant. This endpoint supports advanced filtering, sorting, and pagination capabilities, allowing you to efficiently browse and manage your WhatsApp templates. Use this endpoint to view templates by name, status, provider, or other attributes.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><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>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>-</td>\n<td>Search filter to find templates by name or other attributes. Example: <code>\"np. name\"</code></td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>20</td>\n<td>Number of templates to return per page. Controls pagination size.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>Page number to retrieve (zero-indexed). Use for pagination through results.</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>uuid</td>\n<td>Field to sort results by. Common values: <code>uuid</code>, <code>name</code>, <code>status</code>, <code>lastUpdated</code></td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>asc</td>\n<td>Sort direction. Valid values: <code>asc</code> (ascending) or <code>desc</code> (descending)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your_bearer_token_here';\n\nconst url = `https://${tenantDomain}/api/sms-sender/whatsapp/templates/all?size=20&amp;page=0&amp;sortBy=uuid&amp;sortDirection=asc`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    console.log('Templates retrieved:', data.totalElements);\n    console.log('Templates:', data.content);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching templates:', error);\n  });\n</code></pre>\n<h2 id=\"response-schema\">Response Schema</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The endpoint returns a paginated response with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [Template],\n  \"pageable\": Pageable,\n  \"last\": boolean,\n  \"totalPages\": integer,\n  \"totalElements\": integer,\n  \"first\": boolean,\n  \"number\": integer,\n  \"sort\": Sort,\n  \"numberOfElements\": integer,\n  \"size\": integer,\n  \"empty\": boolean\n}\n</code></pre>\n<h3 id=\"template-object\">Template Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the template</td>\n</tr>\n<tr>\n<td><code>provider</code></td>\n<td>string</td>\n<td>WhatsApp provider (e.g., \"INFOBIP\")</td>\n</tr>\n<tr>\n<td><code>tenantUuid</code></td>\n<td>string</td>\n<td>Your tenant's unique identifier</td>\n</tr>\n<tr>\n<td><code>sender</code></td>\n<td>string</td>\n<td>Sender phone number associated with the template</td>\n</tr>\n<tr>\n<td><code>templateId</code></td>\n<td>string</td>\n<td>Provider-specific template ID</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Template name/identifier</td>\n</tr>\n<tr>\n<td><code>templateBody</code></td>\n<td>string</td>\n<td>JSON string containing template structure and content</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Template status: <code>APPROVED</code>, <code>PENDING</code>, <code>REJECTED</code></td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string (ISO 8601)</td>\n<td>Timestamp of last template update</td>\n</tr>\n<tr>\n<td><code>mappings</code></td>\n<td>string</td>\n<td>JSON string defining variable mappings (e.g., <code>{\"{{1}}\":\"{{rep.firstname}}\"}</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pageable-object\">Pageable Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pageNumber</code></td>\n<td>integer</td>\n<td>Current page number (zero-indexed)</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>offset</code></td>\n<td>integer</td>\n<td>Offset from the start of the dataset</td>\n</tr>\n<tr>\n<td><code>paged</code></td>\n<td>boolean</td>\n<td>Whether pagination is enabled</td>\n</tr>\n<tr>\n<td><code>sort</code></td>\n<td>object</td>\n<td>Sort configuration</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sort-object\">Sort Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sorted</code></td>\n<td>boolean</td>\n<td>Whether results are sorted</td>\n</tr>\n<tr>\n<td><code>unsorted</code></td>\n<td>boolean</td>\n<td>Whether results are unsorted</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Whether sort is empty</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-example\">Response Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521111111\",\n      \"provider\": \"INFOBIP\",\n      \"tenantUuid\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n      \"sender\": \"48502344050\",\n      \"templateId\": \"2895581377299360\",\n      \"name\": \"text_template_wb\",\n      \"templateBody\": \"\",\n      \"status\": \"APPROVED\",\n      \"lastUpdated\": \"2025-12-04T09:22:41.536438\",\n      \"mappings\": \"{\\\"{{1}}\\\":\\\"{{rep.firstname}}\\\"}\"\n    },\n    {\n      \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521111112\",\n      \"provider\": \"INFOBIP\",\n      \"tenantUuid\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n      \"sender\": \"48502344050\",\n      \"templateId\": \"1481137383541542\",\n      \"name\": \"text_template_wb2\",\n      \"templateBody\": \"{\\\"id\\\":\\\"1481137383541542\\\",\\\"businessAccountId\\\":440926379114112,\\\"name\\\":\\\"3951e123_0c02_4b4b_86d5_c1823d2bbf4b__4d2bfe45_ada1_4b27_ab53_229521111112\\\",\\\"language\\\":\\\"en\\\",\\\"status\\\":\\\"PENDING\\\",\\\"category\\\":\\\"MARKETING\\\",\\\"structure\\\":{\\\"body\\\":{\\\"text\\\":\\\"Hi {{1}}!\\\\nThanks for joining us! Have a great day!\\\",\\\"examples\\\":[\\\"name\\\"]},\\\"type\\\":\\\"TEXT\\\"},\\\"quality\\\":\\\"UNKNOWN\\\",\\\"createdAt\\\":\\\"2025-12-04T09:37:51.696+0000\\\",\\\"lastUpdatedAt\\\":\\\"2025-12-04T09:37:51.779+0000\\\"}\",\n      \"status\": \"PENDING\",\n      \"lastUpdated\": \"2025-12-04T09:37:51.91624\",\n      \"mappings\": \"{\\\"{{1}}\\\":\\\"{{rep.firstname}}\\\"}\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"unsorted\": false,\n      \"sorted\": true,\n      \"empty\": false\n    },\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"offset\": 0,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"last\": true,\n  \"totalPages\": 1,\n  \"totalElements\": 3,\n  \"first\": true,\n  \"number\": 0,\n  \"sort\": {\n    \"unsorted\": false,\n    \"sorted\": true,\n    \"empty\": false\n  },\n  \"numberOfElements\": 3,\n  \"size\": 20,\n  \"empty\": false\n}\n</code></pre>\n<h2 id=\"template-status-values\">Template Status Values</h2>\n<ul>\n<li><strong>APPROVED</strong>: Template has been approved by WhatsApp and is ready to use</li>\n<li><strong>PENDING</strong>: Template is awaiting approval from WhatsApp</li>\n<li><strong>REJECTED</strong>: Template was rejected by WhatsApp and cannot be used</li>\n</ul>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li>Use the <code>search</code> parameter to filter templates by name or other searchable fields</li>\n<li>Pagination is zero-indexed (first page is <code>page=0</code>)</li>\n<li>The <code>totalElements</code> field indicates the total number of templates matching your query</li>\n<li>The <code>last</code> field indicates whether you're on the last page of results</li>\n<li>Template mappings define how dynamic variables are populated when sending messages</li>\n</ul>\n","urlObject":{"path":["api","sms-sender","whatsapp","templates","all"],"host":["testsandbox.highp.me"],"query":[{"key":"size","value":"20"},{"key":"page","value":"0"},{"key":"sortBy","value":"uuid"},{"key":"sortDirection","value":"asc"},{"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"search","value":"np. name"}],"variable":[]}},"response":[{"id":"96aaaa2b-78b7-40e7-ab65-7916a6ff2285","name":"Get All Templates","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/sms-sender/whatsapp/templates/all?size=20&page=0&sortBy=uuid&sortDirection=asc&search=np. name","host":["testsandbox.highp.me"],"path":["api","sms-sender","whatsapp","templates","all"],"query":[{"key":"size","value":"20"},{"key":"page","value":"0"},{"key":"sortBy","value":"uuid"},{"key":"sortDirection","value":"asc"},{"description":"optional","key":"search","value":"np. name"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Thu, 04 Dec 2025 09:46:16 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Thu, 04 Dec 2025 09:46:15 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"smssender"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-8b73c37fee6b50a25115b0aa49625fc9' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-8b73c37fee6b50a25115b0aa49625fc9' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521111111\",\n            \"provider\": \"INFOBIP\",\n            \"tenantUuid\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n            \"sender\": \"48502344050\",\n            \"templateId\": \"2895581377299360\",\n            \"name\": \"text_template_wb\",\n            \"templateBody\": \"\",\n            \"status\": \"APPROVED\",\n            \"lastUpdated\": \"2025-12-04T09:22:41.536438\",\n            \"mappings\": \"{\\\"{{1}}\\\":\\\"{{rep.firstname}}\\\"}\"\n        },\n        {\n            \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521111112\",\n            \"provider\": \"INFOBIP\",\n            \"tenantUuid\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n            \"sender\": \"48502344050\",\n            \"templateId\": \"1481137383541542\",\n            \"name\": \"text_template_wb2\",\n            \"templateBody\": \"{\\\"id\\\":\\\"1481137383541542\\\",\\\"businessAccountId\\\":440926379114112,\\\"name\\\":\\\"3951e123_0c02_4b4b_86d5_c1823d2bbf4b__4d2bfe45_ada1_4b27_ab53_229521111112\\\",\\\"language\\\":\\\"en\\\",\\\"status\\\":\\\"PENDING\\\",\\\"category\\\":\\\"MARKETING\\\",\\\"structure\\\":{\\\"body\\\":{\\\"text\\\":\\\"Hi {{1}}!\\\\nThanks for joining us! Have a great day!\\\",\\\"examples\\\":[\\\"name\\\"]},\\\"type\\\":\\\"TEXT\\\"},\\\"quality\\\":\\\"UNKNOWN\\\",\\\"createdAt\\\":\\\"2025-12-04T09:37:51.696+0000\\\",\\\"lastUpdatedAt\\\":\\\"2025-12-04T09:37:51.779+0000\\\"}\",\n            \"status\": \"PENDING\",\n            \"lastUpdated\": \"2025-12-04T09:37:51.91624\",\n            \"mappings\": \"{\\\"{{1}}\\\":\\\"{{rep.firstname}}\\\"}\"\n        },\n        {\n            \"uuid\": \"4d2bfe45-ada1-4b27-ab53-22952ae702d1\",\n            \"provider\": \"INFOBIP\",\n            \"tenantUuid\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n            \"sender\": \"48502344050\",\n            \"templateId\": \"1701837733836607\",\n            \"name\": \"text_template\",\n            \"templateBody\": \"\",\n            \"status\": \"REJECTED\",\n            \"lastUpdated\": \"2025-09-25T11:08:16.28689\",\n            \"mappings\": \"{\\\"{{1}}\\\":\\\"value1\\\",\\\"{{2}}\\\":\\\"value2\\\"}\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"unsorted\": false,\n            \"sorted\": true,\n            \"empty\": false\n        },\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"offset\": 0,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"last\": true,\n    \"totalPages\": 1,\n    \"totalElements\": 3,\n    \"first\": true,\n    \"number\": 0,\n    \"sort\": {\n        \"unsorted\": false,\n        \"sorted\": true,\n        \"empty\": false\n    },\n    \"numberOfElements\": 3,\n    \"size\": 20,\n    \"empty\": false\n}"}],"_postman_id":"fdfdb9eb-4cbd-4f5e-ab17-0b736b1d8141"},{"name":"Get Template","id":"a4b279a6-7d4f-4812-8c56-1725af99b6f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/sms-sender/whatsapp/templates/:TemplateUuid","description":"<h1 id=\"get-whatsapp-template-by-uuid\">Get WhatsApp Template by UUID</h1>\n<p>Retrieves the details of a specific WhatsApp message template by its UUID. Use this endpoint to view the template's configuration, including its name, language, category, message content, provider information, and variable mappings.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/sms-sender/whatsapp/templates/{{TemplateUuid}}\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"path-variables\">Path Variables</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Your tenant's domain (e.g., <code>yourtenant.highp.me</code>)</td>\n</tr>\n<tr>\n<td><code>TemplateUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the WhatsApp template to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'yourtenant.highp.me';\nconst templateUuid = '4d2bfe45-ada1-4b27-ab53-229521111111';\nconst accessToken = 'your_access_token_here';\n\nconst url = `https://${tenantDomain}/api/sms-sender/whatsapp/templates/${templateUuid}`;\n\nfetch(url, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${accessToken}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Template details:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching template:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"string\",\n  \"provider\": \"string\",\n  \"tenantUuid\": \"string\",\n  \"sender\": \"string\",\n  \"templateId\": \"string\",\n  \"name\": \"string\",\n  \"templateBody\": \"string (JSON)\",\n  \"status\": \"string\",\n  \"lastUpdated\": \"string (ISO 8601 datetime)\",\n  \"mappings\": \"string (JSON)\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for this template in the Highp system</td>\n</tr>\n<tr>\n<td><code>provider</code></td>\n<td>string</td>\n<td>WhatsApp provider name (e.g., \"INFOBIP\")</td>\n</tr>\n<tr>\n<td><code>tenantUuid</code></td>\n<td>string</td>\n<td>UUID of the tenant that owns this template</td>\n</tr>\n<tr>\n<td><code>sender</code></td>\n<td>string</td>\n<td>Phone number or sender ID associated with the template</td>\n</tr>\n<tr>\n<td><code>templateId</code></td>\n<td>string</td>\n<td>Provider-specific template identifier</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Human-readable name of the template</td>\n</tr>\n<tr>\n<td><code>templateBody</code></td>\n<td>string</td>\n<td>JSON string containing the full template structure from the provider, including language, category, message body, and examples</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Current status of the template (e.g., \"PENDING\", \"APPROVED\", \"REJECTED\")</td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string</td>\n<td>ISO 8601 timestamp of the last update to this template</td>\n</tr>\n<tr>\n<td><code>mappings</code></td>\n<td>string</td>\n<td>JSON string defining variable mappings (e.g., <code>{\"{{1}}\":\"{{rep.firstname}}\"}</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"template-body-structure\">Template Body Structure</h3>\n<p>The <code>templateBody</code> field contains a JSON string with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"string\",\n  \"businessAccountId\": number,\n  \"name\": \"string\",\n  \"language\": \"string\",\n  \"status\": \"string\",\n  \"category\": \"string\",\n  \"structure\": {\n    \"body\": {\n      \"text\": \"string\",\n      \"examples\": [\"string\"]\n    },\n    \"type\": \"string\"\n  },\n  \"quality\": \"string\",\n  \"createdAt\": \"string\",\n  \"lastUpdatedAt\": \"string\"\n}\n</code></pre>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521111111\",\n  \"provider\": \"INFOBIP\",\n  \"tenantUuid\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n  \"sender\": \"48502344050\",\n  \"templateId\": \"2895581377299360\",\n  \"name\": \"text_template_wb\",\n  \"templateBody\": \"{\\\"id\\\":\\\"2895581377299360\\\",\\\"businessAccountId\\\":440926379114112,\\\"name\\\":\\\"3951e123_0c02_4b4b_86d5_c1823d2bbf4b__4d2bfe45_ada1_4b27_ab53_229521111111\\\",\\\"language\\\":\\\"en\\\",\\\"status\\\":\\\"PENDING\\\",\\\"category\\\":\\\"MARKETING\\\",\\\"structure\\\":{\\\"body\\\":{\\\"text\\\":\\\"Hi {{1}}! Thanks for joining us!\\\",\\\"examples\\\":[\\\"name\\\"]},\\\"type\\\":\\\"TEXT\\\"},\\\"quality\\\":\\\"UNKNOWN\\\",\\\"createdAt\\\":\\\"2025-12-04T09:22:41.329+0000\\\",\\\"lastUpdatedAt\\\":\\\"2025-12-04T09:22:41.385+0000\\\"}\",\n  \"status\": \"PENDING\",\n  \"lastUpdated\": \"2025-12-04T09:22:41.536438\",\n  \"mappings\": \"{\\\"{{1}}\\\":\\\"{{rep.firstname}}\\\"}\"\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li>Retrieve template details for display in your application</li>\n<li>Verify template status before sending messages</li>\n<li>Check variable mappings and message structure</li>\n<li>Audit template configurations</li>\n<li>Validate template approval status before campaign execution</li>\n</ul>\n","urlObject":{"path":["api","sms-sender","whatsapp","templates",":TemplateUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{TemplateUuid}}","key":"TemplateUuid"}]}},"response":[{"id":"0663b43c-76af-4f85-97b6-e0853eeac2fc","name":"Get Template","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/sms-sender/whatsapp/templates/:TemplateUuid","host":["testsandbox.highp.me"],"path":["api","sms-sender","whatsapp","templates",":TemplateUuid"],"variable":[{"key":"TemplateUuid","value":"{{TemplateUuid}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Thu, 04 Dec 2025 09:34:37 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Thu, 04 Dec 2025 09:34:36 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"smssender"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-819653dc8ea74cc67f44b27a4d9fe817' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-819653dc8ea74cc67f44b27a4d9fe817' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"4d2bfe45-ada1-4b27-ab53-229521111111\",\n    \"provider\": \"INFOBIP\",\n    \"tenantUuid\": \"3951e123-0c02-4b4b-86d5-c1823d2bbf4b\",\n    \"sender\": \"48502344050\",\n    \"templateId\": \"2895581377299360\",\n    \"name\": \"text_template_wb\",\n    \"templateBody\": \"{\\\"id\\\":\\\"2895581377299360\\\",\\\"businessAccountId\\\":440926379114112,\\\"name\\\":\\\"3951e123_0c02_4b4b_86d5_c1823d2bbf4b__4d2bfe45_ada1_4b27_ab53_229521111111\\\",\\\"language\\\":\\\"en\\\",\\\"status\\\":\\\"PENDING\\\",\\\"category\\\":\\\"MARKETING\\\",\\\"structure\\\":{\\\"body\\\":{\\\"text\\\":\\\"Hi {{1}}! Thanks for joining us!\\\",\\\"examples\\\":[\\\"name\\\"]},\\\"type\\\":\\\"TEXT\\\"},\\\"quality\\\":\\\"UNKNOWN\\\",\\\"createdAt\\\":\\\"2025-12-04T09:22:41.329+0000\\\",\\\"lastUpdatedAt\\\":\\\"2025-12-04T09:22:41.385+0000\\\"}\",\n    \"status\": \"PENDING\",\n    \"lastUpdated\": \"2025-12-04T09:22:41.536438\",\n    \"mappings\": \"{\\\"{{1}}\\\":\\\"{{rep.firstname}}\\\"}\"\n}"}],"_postman_id":"a4b279a6-7d4f-4812-8c56-1725af99b6f3"},{"name":"Delete Template","id":"8332b7c0-f797-491a-9968-253f1adf8ea8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/sms-sender/whatsapp/templates/delete/4d2bfe45-ada1-4b27-ab53-229521111222","description":"<h1 id=\"delete-whatsapp-template\">Delete WhatsApp Template</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint permanently deletes a WhatsApp message template from your tenant by its unique identifier (UUID). Template deletion is typically restricted to templates in <strong>draft</strong> or <strong>rejected</strong> states. Once deleted, the template cannot be recovered and will no longer be available for use in WhatsApp messaging campaigns.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {token}\n</code></pre><p>The <code>token</code> variable should contain a valid access token for your tenant.</p>\n<hr />\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE https://{tenant_domain}/api/sms-sender/whatsapp/templates/delete/{templateUuid}\n</code></pre><hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>templateUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the WhatsApp template to delete. Example: <code>4d2bfe45-ada1-4b27-ab53-229521111222</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"required-variables\">Required Variables</h2>\n<p>Before making this request, ensure the following variables are configured:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>Your Highp tenant domain</td>\n<td><code>testsandbox.highp.me</code></td>\n</tr>\n<tr>\n<td><code>token</code></td>\n<td>Bearer authentication token</td>\n<td><code>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"request-example-nodejs\">Request Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me';\nconst token = 'your_bearer_token_here';\nconst templateUuid = '4d2bfe45-ada1-4b27-ab53-229521111222';\n\nconst deleteTemplate = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/sms-sender/whatsapp/templates/delete/${templateUuid}`,\n      {\n        method: 'DELETE',\n        headers: {\n          'Authorization': `Bearer ${token}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n\n    if (response.ok) {\n      console.log('Template deleted successfully');\n      console.log('Status:', response.status, response.statusText);\n    } else {\n      const errorText = await response.text();\n      console.error('Failed to delete template:', response.status, errorText);\n    }\n  } catch (error) {\n    console.error('Error deleting template:', error.message);\n  }\n};\n\ndeleteTemplate();\n</code></pre>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the template is successfully deleted, the API returns an empty response with status code <code>200 OK</code>.</p>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p><strong>Response Body:</strong> Empty (Content-Length: 0)</p>\n<p><strong>Response Headers:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Length: 0\nCache-Control: no-cache\nX-Application-Context: smssender\nX-Frame-Options: DENY\nX-Content-Type-Options: nosniff\nX-XSS-Protection: 1; mode=block\n</code></pre><hr />\n<h2 id=\"error-handling\">Error Handling</h2>\n<h3 id=\"common-error-responses\">Common Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n<th>Possible Cause</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Invalid request format</td>\n<td>Malformed UUID or missing parameters</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Authentication failed</td>\n<td>Invalid or expired token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Access denied</td>\n<td>Insufficient permissions or template cannot be deleted (e.g., approved/active status)</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Template not found</td>\n<td>The specified UUID does not exist in your tenant</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server error</td>\n<td>Unexpected server-side issue</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"error-response-example\">Error Response Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Forbidden\",\n  \"message\": \"Cannot delete template in approved status\",\n  \"status\": 403\n}\n</code></pre>\n<hr />\n<h2 id=\"important-notes\">Important Notes</h2>\n<ul>\n<li><strong>Irreversible Action:</strong> Template deletion is permanent and cannot be undone</li>\n<li><strong>Status Restrictions:</strong> Only templates in <strong>draft</strong> or <strong>rejected</strong> states can typically be deleted</li>\n<li><strong>Active Templates:</strong> Approved or active templates may be protected from deletion to prevent disruption to ongoing campaigns</li>\n<li><strong>UUID Format:</strong> Ensure the template UUID follows the standard UUID v4 format (e.g., <code>4d2bfe45-ada1-4b27-ab53-229521111222</code>)</li>\n</ul>\n<hr />\n<h2 id=\"best-practices\">Best Practices</h2>\n<ol>\n<li><strong>Verify Template Status:</strong> Check the template status before attempting deletion</li>\n<li><strong>Backup Important Templates:</strong> Export or document template content before deletion if needed for future reference</li>\n<li><strong>Error Handling:</strong> Implement proper error handling to manage different response scenarios</li>\n<li><strong>Audit Trail:</strong> Log deletion operations for compliance and tracking purposes</li>\n</ol>\n","urlObject":{"path":["api","sms-sender","whatsapp","templates","delete","4d2bfe45-ada1-4b27-ab53-229521111222"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"f0030faf-ba39-45b1-8510-837a4020e286","name":"Delete Template","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/sms-sender/whatsapp/templates/delete/4d2bfe45-ada1-4b27-ab53-229521111222"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Thu, 04 Dec 2025 12:47:58 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Length","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Thu, 04 Dec 2025 12:47:57 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"smssender"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-fd4f08ea41b52a2909dc8c418d852041' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-fd4f08ea41b52a2909dc8c418d852041' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"8332b7c0-f797-491a-9968-253f1adf8ea8"}],"id":"291b07ec-abad-4fad-86f1-37ce9c19139b","_postman_id":"291b07ec-abad-4fad-86f1-37ce9c19139b","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Label","item":[{"name":"Get Label Definitions","id":"09b28d7e-35bf-4a56-aaed-de2ea8c52ced","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/label/definitions?search=string&userUuid=string&page=string&size=string&sortBy=string&sortDirection=string","description":"<h1 id=\"get-label-definitions\">Get Label Definitions</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Retrieves a paginated list of label definitions from the Highp platform. Label definitions are organizational structures that contain multiple labels, which can be used to categorize and organize content. Each label definition has an access level (PUBLIC or PRIVATE) and is associated with an owner.</p>\n<p>This endpoint supports filtering, pagination, and sorting to help you efficiently retrieve the label definitions you need.</p>\n<hr />\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>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter label definitions by name. Performs a partial match search.</td>\n</tr>\n<tr>\n<td><code>userUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>Filter to show only PUBLIC label definitions and those where <code>ownerUuid</code> matches the provided <code>userUuid</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>No</td>\n<td>The page number to retrieve (zero-based). Default: 0</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>No</td>\n<td>The number of items per page. Default: 20</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td>string</td>\n<td>No</td>\n<td>The field to sort by (e.g., <code>name</code>, <code>createdDate</code>).</td>\n</tr>\n<tr>\n<td><code>sortDirection</code></td>\n<td>string</td>\n<td>No</td>\n<td>Sort direction: <code>ASC</code> (ascending) or <code>DESC</code> (descending).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>{{token}}</code> variable should contain a valid JWT access token obtained through the authentication flow.</p>\n<hr />\n<h2 id=\"nodejs-example\">Node.js Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your-access-token';\n\nasync function getLabelDefinitions() {\n  const url = new URL(`https://${tenantDomain}/api/core/label/definitions`);\n  \n  // Add query parameters\n  url.searchParams.append('page', '0');\n  url.searchParams.append('size', '20');\n  url.searchParams.append('sortBy', 'createdDate');\n  url.searchParams.append('sortDirection', 'DESC');\n  \n  // Optional: Add search filter\n  // url.searchParams.append('search', 'folder');\n  \n  // Optional: Filter by user\n  // url.searchParams.append('userUuid', '123e4567-e89b-12d3-a456-426614174000');\n\n  try {\n    const response = await fetch(url.toString(), {\n      method: 'GET',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      }\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Label Definitions:', data);\n    return data;\n  } catch (error) {\n    console.error('Error fetching label definitions:', error);\n    throw error;\n  }\n}\n\n// Execute the function\ngetLabelDefinitions();\n</code></pre>\n<hr />\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": 17,\n      \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n      \"name\": \"folder23\",\n      \"createdDate\": \"2025-11-24T14:11:50Z\",\n      \"access\": \"PUBLIC\",\n      \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n      \"labels\": [\n        {\n          \"id\": 52,\n          \"uuid\": \"1d6d0bfe-ee44-4793-a3e4-aae41c20a664\",\n          \"name\": \"label1\",\n          \"createdDate\": \"2025-11-24T14:11:50Z\",\n          \"labelDefinition\": {\n            \"id\": 17,\n            \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n            \"name\": \"folder23\",\n            \"createdDate\": \"2025-11-24T14:11:50Z\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n            \"labels\": null\n          },\n          \"priority\": 1\n        }\n      ]\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"unsorted\": false,\n      \"sorted\": true\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 3,\n  \"totalPages\": 1,\n  \"last\": true,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": false,\n    \"unsorted\": false,\n    \"sorted\": true\n  },\n  \"numberOfElements\": 3,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<h4 id=\"labeldefinition-object\">LabelDefinition Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the label definition</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the label definition</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Name of the label definition</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string (ISO 8601)</td>\n<td>Timestamp when the label definition was created</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Access level: <code>PUBLIC</code> or <code>PRIVATE</code></td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string</td>\n<td>UUID of the user who owns this label definition</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Array of Label objects contained within this definition</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"label-object\">Label Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the label</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the label</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Name of the label</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string (ISO 8601)</td>\n<td>Timestamp when the label was created</td>\n</tr>\n<tr>\n<td><code>labelDefinition</code></td>\n<td>object</td>\n<td>Reference back to the parent label definition (circular reference)</td>\n</tr>\n<tr>\n<td><code>priority</code></td>\n<td>integer/null</td>\n<td>Optional priority value for ordering labels</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"pagination-object\">Pagination Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>totalElements</code></td>\n<td>integer</td>\n<td>Total number of label definitions across all pages</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td><code>size</code></td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Current page number (zero-based)</td>\n</tr>\n<tr>\n<td><code>numberOfElements</code></td>\n<td>integer</td>\n<td>Number of elements in the current page</td>\n</tr>\n<tr>\n<td><code>first</code></td>\n<td>boolean</td>\n<td>Whether this is the first page</td>\n</tr>\n<tr>\n<td><code>last</code></td>\n<td>boolean</td>\n<td>Whether this is the last page</td>\n</tr>\n<tr>\n<td><code>empty</code></td>\n<td>boolean</td>\n<td>Whether the result set is empty</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li><strong>Pagination</strong>: The response follows Spring Data's Page structure. Use <code>totalPages</code> and <code>totalElements</code> to implement pagination controls in your UI.</li>\n<li><strong>Access Control</strong>: When using the <code>userUuid</code> parameter, only PUBLIC label definitions and those owned by the specified user will be returned.</li>\n<li><strong>Circular References</strong>: The <code>labelDefinition</code> field within each label object creates a circular reference. When processing the response, be aware that <code>labels</code> within the nested <code>labelDefinition</code> will be <code>null</code> to prevent infinite recursion.</li>\n<li><strong>Sorting</strong>: Common sort fields include <code>name</code>, <code>createdDate</code>, <code>id</code>. Combine with <code>sortDirection</code> for ascending or descending order.</li>\n<li><strong>Empty Results</strong>: If no label definitions match your criteria, the <code>content</code> array will be empty and <code>empty</code> will be <code>true</code>.</li>\n</ul>\n<hr />\n<h2 id=\"common-use-cases\">Common Use Cases</h2>\n<ol>\n<li><strong>List all public label definitions</strong>: Omit the <code>userUuid</code> parameter to see all public definitions</li>\n<li><strong>Search by name</strong>: Use the <code>search</code> parameter to find specific label definitions</li>\n<li><strong>User-specific labels</strong>: Provide <code>userUuid</code> to see labels owned by a specific user plus all public labels</li>\n<li><strong>Paginated browsing</strong>: Use <code>page</code> and <code>size</code> parameters to implement pagination in your application</li>\n</ol>\n","urlObject":{"path":["api","core","label","definitions"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>optional - filter by name</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>optional - shows only PUBLIC &amp; ownerUuid=userUuid</p>\n","type":"text/plain"},"key":"userUuid","value":"string"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortBy","value":"string"},{"key":"sortDirection","value":"string"}],"variable":[]}},"response":[{"id":"ef10e245-9794-4150-92be-a98fdc682ac9","name":"Get Label Definitions","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/label/definitions?search=string&userUuid=string&page=string&size=string&sortBy=string&sortDirection=string","host":["testsandbox.highp.me"],"path":["api","core","label","definitions"],"query":[{"description":"optional - filter by name","key":"search","value":"string"},{"description":"optional - shows only PUBLIC & ownerUuid=userUuid","key":"userUuid","value":"string"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortBy","value":"string"},{"key":"sortDirection","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:14:07 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:14:06 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-022284440fc9d143f48848e0760a25db' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-022284440fc9d143f48848e0760a25db' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 17,\n            \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n            \"name\": \"folder23\",\n            \"createdDate\": \"2025-11-24T14:11:50Z\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n            \"labels\": [\n                {\n                    \"id\": 52,\n                    \"uuid\": \"1d6d0bfe-ee44-4793-a3e4-aae41c20a664\",\n                    \"name\": \"label1\",\n                    \"createdDate\": \"2025-11-24T14:11:50Z\",\n                    \"labelDefinition\": {\n                        \"id\": 17,\n                        \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                        \"name\": \"folder23\",\n                        \"createdDate\": \"2025-11-24T14:11:50Z\",\n                        \"access\": \"PUBLIC\",\n                        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                        \"labels\": null\n                    },\n                    \"priority\": 1\n                },\n                {\n                    \"id\": 53,\n                    \"uuid\": \"0009dc92-04a5-4619-8a3f-51771886b195\",\n                    \"name\": \"label2\",\n                    \"createdDate\": \"2025-11-24T14:11:50Z\",\n                    \"labelDefinition\": {\n                        \"id\": 17,\n                        \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                        \"name\": \"folder23\",\n                        \"createdDate\": \"2025-11-24T14:11:50Z\",\n                        \"access\": \"PUBLIC\",\n                        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                        \"labels\": null\n                    },\n                    \"priority\": null\n                },\n                {\n                    \"id\": 54,\n                    \"uuid\": \"7c97c4ee-b55d-4426-8116-7065807c4e08\",\n                    \"name\": \"black3\",\n                    \"createdDate\": \"2025-11-24T14:13:20Z\",\n                    \"labelDefinition\": {\n                        \"id\": 17,\n                        \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                        \"name\": \"folder23\",\n                        \"createdDate\": \"2025-11-24T14:11:50Z\",\n                        \"access\": \"PUBLIC\",\n                        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                        \"labels\": null\n                    },\n                    \"priority\": 3\n                },\n                {\n                    \"id\": 55,\n                    \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n                    \"name\": \"black4\",\n                    \"createdDate\": \"2025-11-24T14:13:49Z\",\n                    \"labelDefinition\": {\n                        \"id\": 17,\n                        \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                        \"name\": \"folder23\",\n                        \"createdDate\": \"2025-11-24T14:11:50Z\",\n                        \"access\": \"PUBLIC\",\n                        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                        \"labels\": null\n                    },\n                    \"priority\": 4\n                }\n            ]\n        },\n        {\n            \"id\": 16,\n            \"uuid\": \"ea6da8e6-aa8e-47ee-b1bf-6670c42f040f\",\n            \"name\": \"New folder\",\n            \"createdDate\": \"2025-10-17T10:51:54Z\",\n            \"access\": \"PRIVATE\",\n            \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n            \"labels\": [\n                {\n                    \"id\": 50,\n                    \"uuid\": \"d2dfe7f7-8430-44bb-bf58-d1a3d8c6fb5b\",\n                    \"name\": \"label2\",\n                    \"createdDate\": \"2025-10-17T10:51:54Z\",\n                    \"labelDefinition\": {\n                        \"id\": 16,\n                        \"uuid\": \"ea6da8e6-aa8e-47ee-b1bf-6670c42f040f\",\n                        \"name\": \"New folder\",\n                        \"createdDate\": \"2025-10-17T10:51:54Z\",\n                        \"access\": \"PRIVATE\",\n                        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                        \"labels\": null\n                    },\n                    \"priority\": null\n                },\n                {\n                    \"id\": 51,\n                    \"uuid\": \"01f66d25-6dca-4431-ae5a-7e54f9e18aae\",\n                    \"name\": \"new name\",\n                    \"createdDate\": \"2025-10-17T10:54:24Z\",\n                    \"labelDefinition\": {\n                        \"id\": 16,\n                        \"uuid\": \"ea6da8e6-aa8e-47ee-b1bf-6670c42f040f\",\n                        \"name\": \"New folder\",\n                        \"createdDate\": \"2025-10-17T10:51:54Z\",\n                        \"access\": \"PRIVATE\",\n                        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                        \"labels\": null\n                    },\n                    \"priority\": null\n                }\n            ]\n        },\n        {\n            \"id\": 13,\n            \"uuid\": \"033335b9-e613-43be-abca-07ea10b84075\",\n            \"name\": \"Test label423\",\n            \"createdDate\": \"2025-10-15T09:09:37Z\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\",\n            \"labels\": [\n                {\n                    \"id\": 48,\n                    \"uuid\": \"4c476653-bd9c-47f4-8229-68eca6906d42\",\n                    \"name\": \"Medical Specialties\",\n                    \"createdDate\": \"2025-10-16T12:11:30Z\",\n                    \"labelDefinition\": {\n                        \"id\": 13,\n                        \"uuid\": \"033335b9-e613-43be-abca-07ea10b84075\",\n                        \"name\": \"Test label423\",\n                        \"createdDate\": \"2025-10-15T09:09:37Z\",\n                        \"access\": \"PUBLIC\",\n                        \"ownerUuid\": \"0bbb266d-7c15-4fca-882b-225c31ace8ca\",\n                        \"labels\": null\n                    },\n                    \"priority\": null\n                }\n            ]\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 3,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"unsorted\": false,\n        \"sorted\": true\n    },\n    \"numberOfElements\": 3,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"09b28d7e-35bf-4a56-aaed-de2ea8c52ced"},{"name":"Get Label Definitions By Uuid","id":"52332e18-f674-46ab-ada0-ca7c6841df38","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/label/definitions/1dd9ce4f-4c99-490d-905b-d154b54d0779","description":"<h1 id=\"get-label-definitions-by-uuid\">Get Label Definitions By UUID</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>Retrieves a label definition and its associated labels by UUID. Label definitions are organizational containers that group related labels together. Each label definition can contain multiple labels with optional priority settings.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET https://{{tenant_domain}}/api/core/label/definitions/{uuid}\n</code></pre><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>uuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the label definition to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me';\nconst token = 'your_access_token';\nconst labelDefinitionUuid = '1dd9ce4f-4c99-490d-905b-d154b54d0779';\n\nconst options = {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n};\n\nfetch(`https://${tenantDomain}/api/core/label/definitions/${labelDefinitionUuid}`, options)\n  .then(response =&gt; response.json())\n  .then(data =&gt; console.log(data))\n  .catch(error =&gt; console.error('Error:', error));\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 17,\n  \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n  \"name\": \"folder23\",\n  \"createdDate\": \"2025-11-24T14:11:50Z\",\n  \"access\": \"PUBLIC\",\n  \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"labels\": [\n    {\n      \"id\": 52,\n      \"uuid\": \"1d6d0bfe-ee44-4793-a3e4-aae41c20a664\",\n      \"name\": \"label1\",\n      \"createdDate\": \"2025-11-24T14:11:50Z\",\n      \"labelDefinition\": {\n        \"id\": 17,\n        \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n        \"name\": \"folder23\",\n        \"createdDate\": \"2025-11-24T14:11:50Z\",\n        \"access\": \"PUBLIC\",\n        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n        \"labels\": null\n      },\n      \"priority\": 1\n    }\n  ]\n}\n</code></pre>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the label definition</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) of the label definition</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Name of the label definition</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string (ISO 8601)</td>\n<td>Timestamp when the label definition was created</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Access level (e.g., \"PUBLIC\", \"PRIVATE\")</td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string</td>\n<td>UUID of the user who owns this label definition</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Array of label objects associated with this definition</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"label-object-schema\">Label Object Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the label</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) of the label</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Name of the label</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string (ISO 8601)</td>\n<td>Timestamp when the label was created</td>\n</tr>\n<tr>\n<td><code>labelDefinition</code></td>\n<td>object</td>\n<td>Reference back to the parent label definition (with <code>labels</code> set to null to avoid circular reference)</td>\n</tr>\n<tr>\n<td><code>priority</code></td>\n<td>integer or null</td>\n<td>Optional priority value for ordering labels</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The response includes nested <code>labelDefinition</code> objects within each label, but these nested objects have their <code>labels</code> field set to <code>null</code> to prevent circular references.</li>\n<li>Labels can have optional priority values for custom ordering.</li>\n<li>The <code>access</code> field determines visibility and permissions for the label definition.</li>\n</ul>\n","urlObject":{"path":["api","core","label","definitions","1dd9ce4f-4c99-490d-905b-d154b54d0779"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"69bee55a-2810-4d8e-9b8a-700521d84a94","name":"Get Label Definitions By Uuid","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/label/definitions/1dd9ce4f-4c99-490d-905b-d154b54d0779"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:25:59 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:25:58 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-d528f97962ca7d3fd3a669862e235738' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-d528f97962ca7d3fd3a669862e235738' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 17,\n    \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n    \"name\": \"folder23\",\n    \"createdDate\": \"2025-11-24T14:11:50Z\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"labels\": [\n        {\n            \"id\": 52,\n            \"uuid\": \"1d6d0bfe-ee44-4793-a3e4-aae41c20a664\",\n            \"name\": \"label1\",\n            \"createdDate\": \"2025-11-24T14:11:50Z\",\n            \"labelDefinition\": {\n                \"id\": 17,\n                \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                \"name\": \"folder23\",\n                \"createdDate\": \"2025-11-24T14:11:50Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": 1\n        },\n        {\n            \"id\": 53,\n            \"uuid\": \"0009dc92-04a5-4619-8a3f-51771886b195\",\n            \"name\": \"label2\",\n            \"createdDate\": \"2025-11-24T14:11:50Z\",\n            \"labelDefinition\": {\n                \"id\": 17,\n                \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                \"name\": \"folder23\",\n                \"createdDate\": \"2025-11-24T14:11:50Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": null\n        },\n        {\n            \"id\": 54,\n            \"uuid\": \"7c97c4ee-b55d-4426-8116-7065807c4e08\",\n            \"name\": \"black3\",\n            \"createdDate\": \"2025-11-24T14:13:20Z\",\n            \"labelDefinition\": {\n                \"id\": 17,\n                \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                \"name\": \"folder23\",\n                \"createdDate\": \"2025-11-24T14:11:50Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": 3\n        },\n        {\n            \"id\": 55,\n            \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n            \"name\": \"black4\",\n            \"createdDate\": \"2025-11-24T14:13:49Z\",\n            \"labelDefinition\": {\n                \"id\": 17,\n                \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                \"name\": \"folder23\",\n                \"createdDate\": \"2025-11-24T14:11:50Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": 4\n        }\n    ]\n}"}],"_postman_id":"52332e18-f674-46ab-ada0-ca7c6841df38"},{"name":"Create Label Definition","id":"cd05e683-f513-4934-9499-706b3c2925b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"folder2355\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\", //if not specified - backend set automatically to logged user\n    \"labels\": [\n        {\n            \"name\": \"label1\",\n            \"priority\" : 1\n        },\n        {\n            \"name\": \"label2\"\n        }\n    ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/definitions","description":"<h1 id=\"create-label-definition\">Create Label Definition</h1>\n<p>Creates a new label definition with associated labels in the Highp platform. Label definitions are used to organize and categorize content with customizable labels that can have priorities.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/label/definitions</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be a JSON object with the following structure:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The name of the label definition (e.g., \"folder2355\")</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Access level for the label definition. Possible values: <code>PUBLIC</code>, <code>PRIVATE</code></td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string</td>\n<td>No</td>\n<td>UUID of the owner. If not specified, the backend automatically sets it to the logged-in user</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Yes</td>\n<td>Array of label objects to be created within this definition</td>\n</tr>\n<tr>\n<td><code>labels[].name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Name of the individual label</td>\n</tr>\n<tr>\n<td><code>labels[].priority</code></td>\n<td>integer</td>\n<td>No</td>\n<td>Priority level for the label (optional)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"name\": \"folder2355\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"labels\": [\n        {\n            \"name\": \"label1\",\n            \"priority\": 1\n        },\n        {\n            \"name\": \"label2\"\n        }\n    ]\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me'; // Replace with your tenant domain\nconst token = 'your-bearer-token'; // Replace with your authentication token\n\nconst createLabelDefinition = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/label/definitions`;\n  \n  const requestBody = {\n    name: \"folder2355\",\n    access: \"PUBLIC\",\n    ownerUuid: \"123e4567-e89b-12d3-a456-426614174000\",\n    labels: [\n      {\n        name: \"label1\",\n        priority: 1\n      },\n      {\n        name: \"label2\"\n      }\n    ]\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Label Definition Created:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating label definition:', error);\n    throw error;\n  }\n};\n\n// Execute the function\ncreateLabelDefinition();\n</code></pre>\n<h2 id=\"response-schema\">Response Schema</h2>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p>The response returns the created label definition with generated IDs and timestamps:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the label definition</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the label definition</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Name of the label definition</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string</td>\n<td>ISO 8601 timestamp of creation</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Access level (PUBLIC/PRIVATE)</td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string</td>\n<td>UUID of the owner</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Array of created label objects</td>\n</tr>\n<tr>\n<td><code>labels[].id</code></td>\n<td>integer</td>\n<td>Internal database ID of the label</td>\n</tr>\n<tr>\n<td><code>labels[].uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the label</td>\n</tr>\n<tr>\n<td><code>labels[].name</code></td>\n<td>string</td>\n<td>Name of the label</td>\n</tr>\n<tr>\n<td><code>labels[].createdDate</code></td>\n<td>string</td>\n<td>ISO 8601 timestamp of label creation</td>\n</tr>\n<tr>\n<td><code>labels[].priority</code></td>\n<td>integer/null</td>\n<td>Priority level of the label (null if not specified)</td>\n</tr>\n<tr>\n<td><code>labels[].labelDefinition</code></td>\n<td>object</td>\n<td>Reference back to the parent label definition</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": 18,\n    \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n    \"name\": \"folder2355\",\n    \"createdDate\": \"2025-11-24T14:26:25Z\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"labels\": [\n        {\n            \"id\": 56,\n            \"uuid\": \"99b6e7da-c936-4c6e-a6da-d0dd324f2552\",\n            \"name\": \"label1\",\n            \"createdDate\": \"2025-11-24T14:26:25Z\",\n            \"labelDefinition\": {\n                \"id\": 18,\n                \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n                \"name\": \"folder2355\",\n                \"createdDate\": \"2025-11-24T14:26:25Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": 1\n        },\n        {\n            \"id\": 57,\n            \"uuid\": \"53756ef7-c01d-4dee-9c50-90b81d901bd7\",\n            \"name\": \"label2\",\n            \"createdDate\": \"2025-11-24T14:26:25Z\",\n            \"labelDefinition\": {\n                \"id\": 18,\n                \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n                \"name\": \"folder2355\",\n                \"createdDate\": \"2025-11-24T14:26:25Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": null\n        }\n    ]\n}\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>ownerUuid</code> field is optional. If omitted, the system automatically assigns the UUID of the currently authenticated user.</li>\n<li>Labels within a definition can have optional priority values to establish ordering or importance.</li>\n<li>Each created label includes a reference back to its parent label definition.</li>\n</ul>\n","urlObject":{"path":["api","core","label","definitions"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"1bcb5f40-f1e4-4e99-b0f1-0d4d0db64e32","name":"Create Label Definition","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"folder2355\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\", //if not specified - backend set automatically to logged user\n    \"labels\": [\n        {\n            \"name\": \"label1\",\n            \"priority\" : 1\n        },\n        {\n            \"name\": \"label2\"\n        }\n    ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/definitions"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:26:25 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:26:24 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-5b6b23cef914f19cf83d5b64dc796bc7' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-5b6b23cef914f19cf83d5b64dc796bc7' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 18,\n    \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n    \"name\": \"folder2355\",\n    \"createdDate\": \"2025-11-24T14:26:25Z\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"labels\": [\n        {\n            \"id\": 56,\n            \"uuid\": \"99b6e7da-c936-4c6e-a6da-d0dd324f2552\",\n            \"name\": \"label1\",\n            \"createdDate\": \"2025-11-24T14:26:25Z\",\n            \"labelDefinition\": {\n                \"id\": 18,\n                \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n                \"name\": \"folder2355\",\n                \"createdDate\": \"2025-11-24T14:26:25Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": 1\n        },\n        {\n            \"id\": 57,\n            \"uuid\": \"53756ef7-c01d-4dee-9c50-90b81d901bd7\",\n            \"name\": \"label2\",\n            \"createdDate\": \"2025-11-24T14:26:25Z\",\n            \"labelDefinition\": {\n                \"id\": 18,\n                \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n                \"name\": \"folder2355\",\n                \"createdDate\": \"2025-11-24T14:26:25Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": null\n        }\n    ]\n}"}],"_postman_id":"cd05e683-f513-4934-9499-706b3c2925b8"},{"name":"Edit Label Definition","id":"7459c61c-727a-4b66-a5ea-2e7f108f7bdf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"folder2355ed\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\", //if not specified - backend set automatically to logged user\n    \"labels\": [\n        {\n            \"name\": \"label1\",\n            \"priority\" : 1\n        },\n        {\n            \"name\": \"label2\"\n        }\n    ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/definitions/89dbe0af-ad61-4ace-b984-9132cfd9fded","description":"<h1 id=\"edit-label-definition\">Edit Label Definition</h1>\n<p>Updates an existing label definition by its UUID. This endpoint allows you to modify the name, access level, owner, and the labels within a label definition.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>PUT</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/label/definitions/{labelDefinitionUuid}</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>labelDefinitionUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the label definition to edit</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>The request body should be a JSON object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"name\": \"string\",\n    \"access\": \"PUBLIC | PRIVATE\",\n    \"ownerUuid\": \"string (UUID)\",\n    \"labels\": [\n        {\n            \"name\": \"string\",\n            \"priority\": number\n        }\n    ]\n}\n</code></pre>\n<h3 id=\"request-body-parameters\">Request 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>name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the label definition</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Access level for the label definition. Possible values: <code>PUBLIC</code>, <code>PRIVATE</code></td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string (UUID)</td>\n<td>No</td>\n<td>The UUID of the owner. If not specified, the backend automatically sets it to the logged-in user</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Yes</td>\n<td>Array of label objects within this definition</td>\n</tr>\n<tr>\n<td><code>labels[].name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The name of the individual label</td>\n</tr>\n<tr>\n<td><code>labels[].priority</code></td>\n<td>number</td>\n<td>No</td>\n<td>Priority of the label (optional)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me';\nconst token = 'your_access_token';\nconst labelDefinitionUuid = '89dbe0af-ad61-4ace-b984-9132cfd9fded';\n\nconst updateLabelDefinition = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/label/definitions/${labelDefinitionUuid}`;\n  \n  const requestBody = {\n    name: \"folder2355ed\",\n    access: \"PUBLIC\",\n    ownerUuid: \"123e4567-e89b-12d3-a456-426614174000\",\n    labels: [\n      {\n        name: \"label1\",\n        priority: 1\n      },\n      {\n        name: \"label2\"\n      }\n    ]\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'PUT',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Label definition updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating label definition:', error);\n    throw error;\n  }\n};\n\nupdateLabelDefinition();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the label definition is successfully updated, the API returns the complete label definition object with all nested label details.</p>\n<p><strong>Response Schema:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": number,\n  \"uuid\": \"string (UUID)\",\n  \"name\": \"string\",\n  \"createdDate\": \"string (ISO 8601 datetime)\",\n  \"access\": \"PUBLIC | PRIVATE\",\n  \"ownerUuid\": \"string (UUID)\",\n  \"labels\": [\n    {\n      \"id\": number,\n      \"uuid\": \"string (UUID)\",\n      \"name\": \"string\",\n      \"createdDate\": \"string (ISO 8601 datetime)\",\n      \"labelDefinition\": {\n        \"id\": number,\n        \"uuid\": \"string (UUID)\",\n        \"name\": \"string\",\n        \"createdDate\": \"string (ISO 8601 datetime)\",\n        \"access\": \"PUBLIC | PRIVATE\",\n        \"ownerUuid\": \"string (UUID)\",\n        \"labels\": null\n      },\n      \"priority\": number | null\n    }\n  ]\n}\n</code></pre>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": 18,\n    \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n    \"name\": \"folder2355ed\",\n    \"createdDate\": \"2025-11-24T14:26:25Z\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"labels\": [\n        {\n            \"id\": 56,\n            \"uuid\": \"99b6e7da-c936-4c6e-a6da-d0dd324f2552\",\n            \"name\": \"label1\",\n            \"createdDate\": \"2025-11-24T14:26:25Z\",\n            \"labelDefinition\": {\n                \"id\": 18,\n                \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n                \"name\": \"folder2355ed\",\n                \"createdDate\": \"2025-11-24T14:26:25Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": 1\n        },\n        {\n            \"id\": 57,\n            \"uuid\": \"53756ef7-c01d-4dee-9c50-90b81d901bd7\",\n            \"name\": \"label2\",\n            \"createdDate\": \"2025-11-24T14:26:25Z\",\n            \"labelDefinition\": {\n                \"id\": 18,\n                \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n                \"name\": \"folder2355ed\",\n                \"createdDate\": \"2025-11-24T14:26:25Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": null\n        }\n    ]\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>number</td>\n<td>Internal database ID of the label definition</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) of the label definition</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Name of the label definition</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string</td>\n<td>ISO 8601 formatted creation timestamp</td>\n</tr>\n<tr>\n<td><code>access</code></td>\n<td>string</td>\n<td>Access level (<code>PUBLIC</code> or <code>PRIVATE</code>)</td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string</td>\n<td>UUID of the owner</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>array</td>\n<td>Array of label objects with full details including nested labelDefinition references</td>\n</tr>\n<tr>\n<td><code>labels[].id</code></td>\n<td>number</td>\n<td>Internal database ID of the label</td>\n</tr>\n<tr>\n<td><code>labels[].uuid</code></td>\n<td>string</td>\n<td>Unique identifier of the label</td>\n</tr>\n<tr>\n<td><code>labels[].name</code></td>\n<td>string</td>\n<td>Name of the label</td>\n</tr>\n<tr>\n<td><code>labels[].priority</code></td>\n<td>number/null</td>\n<td>Priority value if specified, otherwise null</td>\n</tr>\n<tr>\n<td><code>labels[].createdDate</code></td>\n<td>string</td>\n<td>ISO 8601 formatted creation timestamp</td>\n</tr>\n<tr>\n<td><code>labels[].labelDefinition</code></td>\n<td>object</td>\n<td>Reference back to the parent label definition (with labels set to null to avoid circular reference)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-responses\">Error Responses</h2>\n<ul>\n<li><strong>400 Bad Request</strong> - Invalid request body or parameters</li>\n<li><strong>401 Unauthorized</strong> - Missing or invalid authentication token</li>\n<li><strong>403 Forbidden</strong> - Insufficient permissions to edit this label definition</li>\n<li><strong>404 Not Found</strong> - Label definition with the specified UUID does not exist</li>\n<li><strong>500 Internal Server Error</strong> - Server-side error occurred</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>ownerUuid</code> field is optional. If not provided, the system automatically assigns the currently authenticated user as the owner.</li>\n<li>Labels within the definition can have optional priority values for ordering or categorization.</li>\n<li>The response includes nested <code>labelDefinition</code> objects within each label for reference, but the nested <code>labels</code> array is set to <code>null</code> to prevent circular references.</li>\n</ul>\n","urlObject":{"path":["api","core","label","definitions","89dbe0af-ad61-4ace-b984-9132cfd9fded"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"ee2acd3a-9fb8-474b-984b-0d1b662bff1b","name":"Edit Label Definition","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"folder2355ed\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\", //if not specified - backend set automatically to logged user\n    \"labels\": [\n        {\n            \"name\": \"label1\",\n            \"priority\" : 1\n        },\n        {\n            \"name\": \"label2\"\n        }\n    ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/definitions/89dbe0af-ad61-4ace-b984-9132cfd9fded"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:27:15 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:27:14 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-3eb069b4fe86e7b81b4095332d8ba1a6' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-3eb069b4fe86e7b81b4095332d8ba1a6' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 18,\n    \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n    \"name\": \"folder2355ed\",\n    \"createdDate\": \"2025-11-24T14:26:25Z\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"labels\": [\n        {\n            \"id\": 56,\n            \"uuid\": \"99b6e7da-c936-4c6e-a6da-d0dd324f2552\",\n            \"name\": \"label1\",\n            \"createdDate\": \"2025-11-24T14:26:25Z\",\n            \"labelDefinition\": {\n                \"id\": 18,\n                \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n                \"name\": \"folder2355ed\",\n                \"createdDate\": \"2025-11-24T14:26:25Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": 1\n        },\n        {\n            \"id\": 57,\n            \"uuid\": \"53756ef7-c01d-4dee-9c50-90b81d901bd7\",\n            \"name\": \"label2\",\n            \"createdDate\": \"2025-11-24T14:26:25Z\",\n            \"labelDefinition\": {\n                \"id\": 18,\n                \"uuid\": \"89dbe0af-ad61-4ace-b984-9132cfd9fded\",\n                \"name\": \"folder2355ed\",\n                \"createdDate\": \"2025-11-24T14:26:25Z\",\n                \"access\": \"PUBLIC\",\n                \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                \"labels\": null\n            },\n            \"priority\": null\n        }\n    ]\n}"}],"_postman_id":"7459c61c-727a-4b66-a5ea-2e7f108f7bdf"},{"name":"Delete Label Definition","id":"7ad131d0-8a43-478e-b877-586a65c2f73c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/label/definitions/89dbe0af-ad61-4ace-b984-9132cfd9fded","description":"<h1 id=\"delete-label-definition\">Delete Label Definition</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint permanently deletes a label definition from the Highp platform. Once deleted, the label definition and all its associated configurations will be removed from the system.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>Method:</strong> <code>DELETE</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/label/definitions/{labelDefinitionId}</code></li>\n</ul>\n<h2 id=\"path-parameters\">Path Parameters</h2>\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>labelDefinitionId</code></td>\n<td>UUID</td>\n<td>Yes</td>\n<td>The unique identifier of the label definition to delete. Example: <code>89dbe0af-ad61-4ace-b984-9132cfd9fded</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<h3 id=\"success-response\">Success Response</h3>\n<p><strong>Status Code:</strong> <code>204 No Content</code></p>\n<p>A successful deletion returns no response body. The <code>204 No Content</code> status code indicates that the label definition was successfully deleted.</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Cache-Control: no-cache</code></li>\n<li><code>X-Content-Type-Options: nosniff</code></li>\n<li><code>X-Frame-Options: DENY</code></li>\n<li><code>X-XSS-Protection: 1; mode=block</code></li>\n</ul>\n<h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your_access_token_here';\nconst labelDefinitionId = '89dbe0af-ad61-4ace-b984-9132cfd9fded';\n\nconst deleteLabelDefinition = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/label/definitions/${labelDefinitionId}`,\n      {\n        method: 'DELETE',\n        headers: {\n          'Authorization': `Bearer ${token}`\n        }\n      }\n    );\n\n    if (response.status === 204) {\n      console.log('Label definition deleted successfully');\n    } else {\n      console.error('Failed to delete label definition:', response.status);\n      const errorText = await response.text();\n      console.error('Error details:', errorText);\n    }\n  } catch (error) {\n    console.error('Error deleting label definition:', error);\n  }\n};\n\ndeleteLabelDefinition();\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Insufficient permissions to delete the label definition</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Label definition with the specified ID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>This operation is <strong>irreversible</strong>. Once a label definition is deleted, it cannot be recovered.</li>\n<li>Ensure you have the necessary permissions to delete label definitions in your tenant.</li>\n<li>The <code>labelDefinitionId</code> must be a valid UUID format.</li>\n<li>Replace <code>{{tenant_domain}}</code> with your actual Highp tenant domain (e.g., <code>your-company.highp.me</code>).</li>\n<li>Replace <code>{{token}}</code> with your valid Bearer authentication token.</li>\n</ul>\n","urlObject":{"path":["api","core","label","definitions","89dbe0af-ad61-4ace-b984-9132cfd9fded"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"b9f573eb-08a9-446f-889b-476feadb3b97","name":"Delete Label Definition","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/label/definitions/89dbe0af-ad61-4ace-b984-9132cfd9fded"},"status":"No Content","code":204,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:27:31 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:27:30 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9c17650cc6d92de6ca3ab1dcdfcd02e5' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9c17650cc6d92de6ca3ab1dcdfcd02e5' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"7ad131d0-8a43-478e-b877-586a65c2f73c"},{"name":"Create Label","id":"af85e874-de8b-4f1a-86ac-b577ba6e3ad0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":" {\n    \"name\": \"black4\",\n    \"priority\" : 4, // optional\n    \"labelDefinitionUuid\" : \"1dd9ce4f-4c99-490d-905b-d154b54d0779\"\n }\n","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/labels","description":"<h1 id=\"create-label\">Create Label</h1>\n<p>Creates a new label within a specified label definition in the Highp platform. Labels are used to organize and categorize content, and each label must be associated with an existing label definition.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/label/labels</code></p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"required-variables\">Required Variables</h2>\n<ul>\n<li><code>tenant_domain</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><code>token</code> - Your API access token for authentication</li>\n</ul>\n<h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be in JSON format with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</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>The name of the label to create</td>\n</tr>\n<tr>\n<td><code>priority</code></td>\n<td>integer</td>\n<td>No</td>\n<td>The priority level of the label (used for sorting/ordering)</td>\n</tr>\n<tr>\n<td><code>labelDefinitionUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The UUID of the label definition this label belongs to</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"name\": \"black4\",\n    \"priority\": 4,\n    \"labelDefinitionUuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\"\n}\n</code></pre>\n<h2 id=\"nodejs-code-example\">Node.js Code Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'testsandbox.highp.me';\nconst token = 'your_access_token_here';\n\nconst createLabel = async () =&gt; {\n  const url = `https://${tenantDomain}/api/core/label/labels`;\n  \n  const requestBody = {\n    name: 'black4',\n    priority: 4,\n    labelDefinitionUuid: '1dd9ce4f-4c99-490d-905b-d154b54d0779'\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Label created successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error creating label:', error);\n    throw error;\n  }\n};\n\ncreateLabel();\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When a label is successfully created, the API returns the complete label object including its generated ID and UUID.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": 55,\n    \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n    \"name\": \"black4\",\n    \"createdDate\": \"2025-11-24T14:13:49Z\",\n    \"labelDefinition\": {\n        \"id\": 17,\n        \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n        \"name\": \"folder23\",\n        \"createdDate\": \"2025-11-24T14:11:50Z\",\n        \"access\": \"PUBLIC\",\n        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n        \"labels\": null\n    },\n    \"priority\": 4\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>The unique numeric identifier for the label</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The universally unique identifier (UUID) for the label</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the created label</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string (ISO 8601)</td>\n<td>The timestamp when the label was created</td>\n</tr>\n<tr>\n<td><code>labelDefinition</code></td>\n<td>object</td>\n<td>The complete label definition object this label belongs to</td>\n</tr>\n<tr>\n<td><code>labelDefinition.id</code></td>\n<td>integer</td>\n<td>The numeric ID of the label definition</td>\n</tr>\n<tr>\n<td><code>labelDefinition.uuid</code></td>\n<td>string</td>\n<td>The UUID of the label definition</td>\n</tr>\n<tr>\n<td><code>labelDefinition.name</code></td>\n<td>string</td>\n<td>The name of the label definition</td>\n</tr>\n<tr>\n<td><code>labelDefinition.createdDate</code></td>\n<td>string (ISO 8601)</td>\n<td>When the label definition was created</td>\n</tr>\n<tr>\n<td><code>labelDefinition.access</code></td>\n<td>string</td>\n<td>Access level of the label definition (e.g., \"PUBLIC\")</td>\n</tr>\n<tr>\n<td><code>labelDefinition.ownerUuid</code></td>\n<td>string</td>\n<td>UUID of the label definition owner</td>\n</tr>\n<tr>\n<td><code>labelDefinition.labels</code></td>\n<td>array/null</td>\n<td>Associated labels (null in this response)</td>\n</tr>\n<tr>\n<td><code>priority</code></td>\n<td>integer</td>\n<td>The priority level assigned to the label</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Ensure the <code>labelDefinitionUuid</code> corresponds to an existing label definition in your tenant</li>\n<li>The <code>priority</code> field is optional but useful for maintaining label ordering</li>\n<li>The response includes the complete label definition object for reference</li>\n</ul>\n","urlObject":{"path":["api","core","label","labels"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"2713dfb1-0322-436d-bcce-8cd63f1257c0","name":"Create Label","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":" {\n    \"name\": \"black4\",\n    \"priority\" : 4, // optional\n    \"labelDefinitionUuid\" : \"1dd9ce4f-4c99-490d-905b-d154b54d0779\"\n }\n","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/labels"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:13:49 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:13:48 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-af12abb74dcc88d9267108f9cf0b72e2' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-af12abb74dcc88d9267108f9cf0b72e2' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 55,\n    \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n    \"name\": \"black4\",\n    \"createdDate\": \"2025-11-24T14:13:49Z\",\n    \"labelDefinition\": {\n        \"id\": 17,\n        \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n        \"name\": \"folder23\",\n        \"createdDate\": \"2025-11-24T14:11:50Z\",\n        \"access\": \"PUBLIC\",\n        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n        \"labels\": null\n    },\n    \"priority\": 4\n}"}],"_postman_id":"af85e874-de8b-4f1a-86ac-b577ba6e3ad0"},{"name":"Edit Label","id":"85197d24-45bc-4d52-ab45-019e2f4efd7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"new nameed\",\n  \"labelDefinitionUuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/labels/88b6f14b-1887-42ab-a3d1-f5e42fd1e276","description":"<h1 id=\"edit-label\">Edit Label</h1>\n<p>Updates an existing label's properties within the Highp platform. This endpoint allows you to modify the name and label definition association of a specific label identified by its UUID.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>PUT</code><br /><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/label/labels/{labelUuid}</code></p>\n<h3 id=\"path-parameters\">Path 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>labelUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the label to edit</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>token</code> - Your API access token</li>\n<li><code>tenant_domain</code> - Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be in JSON format with the following schema:</p>\n<h3 id=\"schema\">Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\",\n  \"labelDefinitionUuid\": \"string (UUID)\"\n}\n</code></pre>\n<h3 id=\"properties\">Properties</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Property</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>The new name for the label</td>\n</tr>\n<tr>\n<td><code>labelDefinitionUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The UUID of the label definition to associate with this label</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"new nameed\",\n  \"labelDefinitionUuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me'; // Replace with your tenant domain\nconst token = 'your_access_token_here'; // Replace with your access token\nconst labelUuid = '88b6f14b-1887-42ab-a3d1-f5e42fd1e276'; // Replace with the label UUID\n\nconst url = `https://${tenantDomain}/api/core/label/labels/${labelUuid}`;\n\nconst requestBody = {\n  name: \"new nameed\",\n  labelDefinitionUuid: \"1dd9ce4f-4c99-490d-905b-d154b54d0779\"\n};\n\nfetch(url, {\n  method: 'PUT',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify(requestBody)\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Label updated successfully:', data);\n  })\n  .catch(error =&gt; {\n    console.error('Error updating label:', error);\n  });\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>When the label is successfully updated, the API returns the complete label object with its associated label definition.</p>\n<h4 id=\"response-schema\">Response Schema</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"uuid\": \"string (UUID)\",\n  \"name\": \"string\",\n  \"createdDate\": \"string (ISO 8601 datetime)\",\n  \"labelDefinition\": {\n    \"id\": \"integer\",\n    \"uuid\": \"string (UUID)\",\n    \"name\": \"string\",\n    \"createdDate\": \"string (ISO 8601 datetime)\",\n    \"access\": \"string\",\n    \"ownerUuid\": \"string (UUID)\",\n    \"labels\": \"null or array\"\n  },\n  \"priority\": \"null or integer\"\n}\n</code></pre>\n<h4 id=\"response-properties\">Response Properties</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Property</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the label</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string (UUID)</td>\n<td>Unique identifier of the label</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The updated name of the label</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string</td>\n<td>ISO 8601 formatted creation timestamp</td>\n</tr>\n<tr>\n<td><code>labelDefinition</code></td>\n<td>object</td>\n<td>The associated label definition object</td>\n</tr>\n<tr>\n<td><code>labelDefinition.id</code></td>\n<td>integer</td>\n<td>Internal ID of the label definition</td>\n</tr>\n<tr>\n<td><code>labelDefinition.uuid</code></td>\n<td>string (UUID)</td>\n<td>UUID of the label definition</td>\n</tr>\n<tr>\n<td><code>labelDefinition.name</code></td>\n<td>string</td>\n<td>Name of the label definition</td>\n</tr>\n<tr>\n<td><code>labelDefinition.createdDate</code></td>\n<td>string</td>\n<td>Creation timestamp of the label definition</td>\n</tr>\n<tr>\n<td><code>labelDefinition.access</code></td>\n<td>string</td>\n<td>Access level (e.g., \"PUBLIC\")</td>\n</tr>\n<tr>\n<td><code>labelDefinition.ownerUuid</code></td>\n<td>string (UUID)</td>\n<td>UUID of the label definition owner</td>\n</tr>\n<tr>\n<td><code>labelDefinition.labels</code></td>\n<td>null/array</td>\n<td>Associated labels (null if none)</td>\n</tr>\n<tr>\n<td><code>priority</code></td>\n<td>null/integer</td>\n<td>Priority value for the label (null if not set)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 55,\n  \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n  \"name\": \"new nameed\",\n  \"createdDate\": \"2025-11-24T14:13:49Z\",\n  \"labelDefinition\": {\n    \"id\": 17,\n    \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n    \"name\": \"folder23\",\n    \"createdDate\": \"2025-11-24T14:11:50Z\",\n    \"access\": \"PUBLIC\",\n    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"labels\": null\n  },\n  \"priority\": null\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<p>The API may return the following error responses:</p>\n<ul>\n<li><strong>400 Bad Request</strong> - Invalid request body or parameters</li>\n<li><strong>401 Unauthorized</strong> - Missing or invalid authentication token</li>\n<li><strong>403 Forbidden</strong> - Insufficient permissions to edit the label</li>\n<li><strong>404 Not Found</strong> - Label with the specified UUID does not exist</li>\n<li><strong>500 Internal Server Error</strong> - Server-side error occurred</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The label UUID in the URL path must match an existing label in your tenant</li>\n<li>The <code>labelDefinitionUuid</code> in the request body must reference a valid label definition</li>\n<li>All timestamps are returned in ISO 8601 format (UTC)</li>\n<li>The response includes the complete label object with nested label definition details</li>\n</ul>\n","urlObject":{"path":["api","core","label","labels","88b6f14b-1887-42ab-a3d1-f5e42fd1e276"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"7eeae337-9aa7-49c7-a60e-8bc978a7c7d6","name":"Edit Label","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"new nameed\",\n  \"labelDefinitionUuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/labels/88b6f14b-1887-42ab-a3d1-f5e42fd1e276"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:28:30 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:28:29 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-e46288f367557888fd251f177bc9fcf8' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-e46288f367557888fd251f177bc9fcf8' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 55,\n    \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n    \"name\": \"new nameed\",\n    \"createdDate\": \"2025-11-24T14:13:49Z\",\n    \"labelDefinition\": {\n        \"id\": 17,\n        \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n        \"name\": \"folder23\",\n        \"createdDate\": \"2025-11-24T14:11:50Z\",\n        \"access\": \"PUBLIC\",\n        \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n        \"labels\": null\n    },\n    \"priority\": null\n}"}],"_postman_id":"85197d24-45bc-4d52-ab45-019e2f4efd7c"},{"name":"Delete Label","id":"ed2c0543-713e-42d8-9651-55855274af3f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/label/labels/88b6f14b-1887-42ab-a3d1-f5e42fd1e276","description":"<h2 id=\"overview\">Overview</h2>\n<p>This endpoint permanently deletes a label from the system by its unique identifier. Once deleted, the label cannot be recovered and will be removed from all associated resources.</p>\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>DELETE</code></p>\n<p><strong>URL Structure:</strong> <code>https://{{tenant_domain}}/api/core/label/labels/{labelId}</code></p>\n<h3 id=\"path-parameters\">Path 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>labelId</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the label to delete</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p>The <code>token</code> variable should contain a valid access token obtained through the authentication flow.</p>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me';\nconst labelId = '88b6f14b-1887-42ab-a3d1-f5e42fd1e276';\nconst token = 'your_access_token_here';\n\nconst deleteLabel = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/label/labels/${labelId}`,\n      {\n        method: 'DELETE',\n        headers: {\n          'Authorization': `Bearer ${token}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n\n    if (response.status === 204) {\n      console.log('Label deleted successfully');\n      return { success: true };\n    } else {\n      const errorData = await response.text();\n      console.error('Failed to delete label:', errorData);\n      return { success: false, error: errorData };\n    }\n  } catch (error) {\n    console.error('Error deleting label:', error);\n    return { success: false, error: error.message };\n  }\n};\n\n// Execute the function\ndeleteLabel();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response\">Success Response</h3>\n<p><strong>Status Code:</strong> <code>204 No Content</code></p>\n<p>A successful deletion returns no response body. The <code>204 No Content</code> status code indicates that the label was successfully deleted.</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Cache-Control</code>: <code>no-cache</code></li>\n<li><code>X-Content-Type-Options</code>: <code>nosniff</code></li>\n<li><code>X-Frame-Options</code>: <code>DENY</code></li>\n<li><code>X-XSS-Protection</code>: <code>1; mode=block</code></li>\n</ul>\n<h3 id=\"error-responses\">Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Invalid label ID format</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Insufficient permissions to delete the label</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Label with the specified ID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li><strong>Irreversible Action:</strong> Deleting a label is permanent and cannot be undone. Ensure you have the correct label ID before making the request.</li>\n<li><strong>Associated Resources:</strong> Deleting a label may affect resources that reference it. Check your application logic to handle label removal appropriately.</li>\n<li><strong>Rate Limiting:</strong> This endpoint may be subject to rate limiting. Refer to the API rate limit documentation for details.</li>\n<li><strong>Audit Trail:</strong> Label deletion events may be logged for audit purposes depending on your tenant configuration.</li>\n</ul>\n","urlObject":{"path":["api","core","label","labels","88b6f14b-1887-42ab-a3d1-f5e42fd1e276"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"06171b8f-e3e6-4a54-9a4d-3d7df0802148","name":"Delete Label","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/label/labels/88b6f14b-1887-42ab-a3d1-f5e42fd1e276"},"status":"No Content","code":204,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:29:55 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:29:54 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-8b1b9be69ae407247c9e5242494963be' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-8b1b9be69ae407247c9e5242494963be' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"ed2c0543-713e-42d8-9651-55855274af3f"},{"name":"Get Object Labels","id":"ef8ec152-2ba8-4d25-8bce-835d81a6d5a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/label/object-labels?search=string&relatedObjectType=string&relatedObjectUuid=string&labelUuids=&userUuid=&page=string&size=string&sortBy=string&sortDirection=string","urlObject":{"path":["api","core","label","object-labels"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>optional - label name</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>optional - np. MEDIAASSET</p>\n","type":"text/plain"},"key":"relatedObjectType","value":"string"},{"description":{"content":"<p>optional - uuid</p>\n","type":"text/plain"},"key":"relatedObjectUuid","value":"string"},{"description":{"content":"<p>optional - np. \"red\" uuid</p>\n","type":"text/plain"},"key":"labelUuids","value":""},{"description":{"content":"<p>optional - shows only public and private for this user</p>\n","type":"text/plain"},"key":"userUuid","value":""},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortBy","value":"string"},{"key":"sortDirection","value":"string"}],"variable":[]}},"response":[],"_postman_id":"ef8ec152-2ba8-4d25-8bce-835d81a6d5a7"},{"name":"Create Object Label","id":"aac2f67c-f849-481f-98b2-d8175ef8b4f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15\",\n  \"labelUuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/object-labels","description":"<h1 id=\"create-object-label\">Create Object Label</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates a label association for a media asset or other object types within the Highp platform. Labels are used to organize and categorize objects, making it easier to manage and retrieve content.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>URL</strong>: <code>https://{{tenant_domain}}/api/core/label/object-labels</code></li>\n<li><strong>Method</strong>: <code>POST</code></li>\n<li><strong>Authentication</strong>: Bearer Token (required)</li>\n</ul>\n<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>The request body must be a JSON object with the following fields:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"relatedObjectType\": \"string\",\n  \"relatedObjectUuid\": \"string\",\n  \"labelUuid\": \"string\"\n}\n</code></pre>\n<h3 id=\"field-descriptions\">Field Descriptions</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>relatedObjectType</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The type of object being labeled. Currently supports: <code>MEDIAASSET</code></td>\n</tr>\n<tr>\n<td><code>relatedObjectUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the object to attach the label to</td>\n</tr>\n<tr>\n<td><code>labelUuid</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the label to attach to the object</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 12,\n  \"uuid\": \"408d8ce4-929e-4474-b11d-7f2332eed9fd\",\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15\",\n  \"createdDate\": \"2025-11-24T14:18:05Z\",\n  \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n  \"label\": {\n    \"id\": 55,\n    \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n    \"name\": \"black4\",\n    \"createdDate\": \"2025-11-24T14:13:49Z\",\n    \"labelDefinition\": {\n      \"id\": 17,\n      \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n      \"name\": \"folder23\",\n      \"createdDate\": \"2025-11-24T14:11:50Z\",\n      \"access\": \"PUBLIC\",\n      \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n      \"labels\": null\n    },\n    \"priority\": 4\n  },\n  \"object\": {\n    \"uuid\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15\",\n    \"filename\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4\",\n    \"mediaAssetId\": 1940,\n    \"lastUpdated\": \"1763558656\",\n    \"name\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4\",\n    \"type\": \"video\",\n    \"project\": \"highp\",\n    \"personal\": false,\n    \"mediaAssetUrl\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4\",\n    \"thumbnailUrl\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4.jpg\",\n    \"gifUrl\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4.gif\",\n    \"metadata\": \"{\\\"zoomRange\\\": {\\\"end\\\": 30.528, \\\"start\\\": 0}, \\\"editorMode\\\": \\\"video\\\"}\",\n    \"labels\": [...]\n  }\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>Internal database ID of the object label association</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for this label association</td>\n</tr>\n<tr>\n<td><code>relatedObjectType</code></td>\n<td>string</td>\n<td>Type of the labeled object</td>\n</tr>\n<tr>\n<td><code>relatedObjectUuid</code></td>\n<td>string</td>\n<td>UUID of the labeled object</td>\n</tr>\n<tr>\n<td><code>createdDate</code></td>\n<td>string (ISO 8601)</td>\n<td>Timestamp when the label was attached</td>\n</tr>\n<tr>\n<td><code>ownerUuid</code></td>\n<td>string</td>\n<td>UUID of the user who created the association</td>\n</tr>\n<tr>\n<td><code>label</code></td>\n<td>object</td>\n<td>Complete label information including definition and priority</td>\n</tr>\n<tr>\n<td><code>object</code></td>\n<td>object</td>\n<td>Complete object information including metadata and existing labels</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nasync function createObjectLabel() {\n  const tenantDomain = 'your-tenant.highp.me';\n  const token = 'your-bearer-token';\n  \n  const url = `https://${tenantDomain}/api/core/label/object-labels`;\n  \n  const requestBody = {\n    relatedObjectType: 'MEDIAASSET',\n    relatedObjectUuid: 'ffb5af9d-b4c4-4aee-b148-edc64ef46d15',\n    labelUuid: '88b6f14b-1887-42ab-a3d1-f5e42fd1e276'\n  };\n  \n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    \n    const data = await response.json();\n    console.log('Label created successfully:', data);\n    return data;\n    \n  } catch (error) {\n    console.error('Error creating object label:', error);\n    throw error;\n  }\n}\n\n// Usage\ncreateObjectLabel();\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>Ensure that both the object (media asset) and the label exist before creating the association</li>\n<li>The label must belong to a label definition that the user has access to</li>\n<li>The response includes the complete object information with all its existing labels</li>\n<li>The <code>priority</code> field in the label determines the display order when multiple labels are present</li>\n</ul>\n","urlObject":{"path":["api","core","label","object-labels"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"dcaf1b7d-5f40-4f4f-9b64-66e614e721dd","name":"Create Object Label","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15\",\n  \"labelUuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/label/object-labels"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:18:06 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:18:05 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-428a5d850da8ecf6a1c4b96422aa9efe' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-428a5d850da8ecf6a1c4b96422aa9efe' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 12,\n    \"uuid\": \"408d8ce4-929e-4474-b11d-7f2332eed9fd\",\n    \"relatedObjectType\": \"MEDIAASSET\",\n    \"relatedObjectUuid\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15\",\n    \"createdDate\": \"2025-11-24T14:18:05Z\",\n    \"ownerUuid\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"label\": {\n        \"id\": 55,\n        \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n        \"name\": \"black4\",\n        \"createdDate\": \"2025-11-24T14:13:49Z\",\n        \"labelDefinition\": {\n            \"id\": 17,\n            \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n            \"name\": \"folder23\",\n            \"createdDate\": \"2025-11-24T14:11:50Z\",\n            \"access\": \"PUBLIC\",\n            \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n            \"labels\": null\n        },\n        \"priority\": 4\n    },\n    \"object\": {\n        \"uuid\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15\",\n        \"filename\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4\",\n        \"mediaAssetId\": 1940,\n        \"lastUpdated\": \"1763558656\",\n        \"name\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4\",\n        \"type\": \"video\",\n        \"project\": \"highp\",\n        \"createdBy\": null,\n        \"personal\": false,\n        \"mediaAssetUrl\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4\",\n        \"thumbnailUrl\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4.jpg\",\n        \"gifUrl\": \"ffb5af9d-b4c4-4aee-b148-edc64ef46d15.mp4.gif\",\n        \"metadata\": \"{\\\"zoomRange\\\": {\\\"end\\\": 30.528, \\\"start\\\": 0}, \\\"editorMode\\\": \\\"video\\\"}\",\n        \"labels\": [\n            {\n                \"id\": 55,\n                \"uuid\": \"88b6f14b-1887-42ab-a3d1-f5e42fd1e276\",\n                \"name\": \"black4\",\n                \"createdDate\": \"2025-11-24T14:13:49Z\",\n                \"labelDefinition\": {\n                    \"id\": 17,\n                    \"uuid\": \"1dd9ce4f-4c99-490d-905b-d154b54d0779\",\n                    \"name\": \"folder23\",\n                    \"createdDate\": \"2025-11-24T14:11:50Z\",\n                    \"access\": \"PUBLIC\",\n                    \"ownerUuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n                    \"labels\": null\n                },\n                \"priority\": 4\n            }\n        ]\n    }\n}"}],"_postman_id":"aac2f67c-f849-481f-98b2-d8175ef8b4f3"},{"name":"Delete Object Label","id":"c180826e-1a25-49a8-8eed-dfd0d194a508","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/label/object-labels/408d8ce4-929e-4474-b11d-7f2332eed9fd","description":"<h2 id=\"delete-object-label\">Delete Object Label</h2>\n<p>This endpoint permanently removes a label association from an object in the Highp platform. Once deleted, the label will no longer be associated with the specified object.</p>\n<h3 id=\"request-details\">Request Details</h3>\n<p><strong>Method:</strong> <code>DELETE</code></p>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/label/object-labels/{objectLabelId}</code></p>\n<p><strong>Authentication:</strong> Bearer Token (required)</p>\n<h3 id=\"path-parameters\">Path 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>objectLabelId</code></td>\n<td>UUID</td>\n<td>Yes</td>\n<td>The unique identifier of the object label association to delete (e.g., <code>408d8ce4-929e-4474-b11d-7f2332eed9fd</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"required-variables\">Required Variables</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tenant_domain</code></td>\n<td>Your Highp tenant domain</td>\n<td><code>testsandbox.highp.me</code></td>\n</tr>\n<tr>\n<td><code>token</code></td>\n<td>Bearer authentication token</td>\n<td>Your API access token</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"headers\">Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h3 id=\"nodejs-fetch-example\">Node.js Fetch Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'testsandbox.highp.me';\nconst objectLabelId = '408d8ce4-929e-4474-b11d-7f2332eed9fd';\nconst token = 'your_access_token_here';\n\nconst deleteObjectLabel = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/label/object-labels/${objectLabelId}`,\n      {\n        method: 'DELETE',\n        headers: {\n          'Authorization': `Bearer ${token}`\n        }\n      }\n    );\n\n    if (response.status === 204) {\n      console.log('Object label deleted successfully');\n      return { success: true };\n    } else {\n      const errorData = await response.text();\n      console.error('Failed to delete object label:', errorData);\n      return { success: false, error: errorData };\n    }\n  } catch (error) {\n    console.error('Error deleting object label:', error);\n    throw error;\n  }\n};\n\n// Usage\ndeleteObjectLabel()\n  .then(result =&gt; console.log(result))\n  .catch(error =&gt; console.error(error));\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p><strong>Success Response:</strong></p>\n<ul>\n<li><strong>Status Code:</strong> <code>204 No Content</code></li>\n<li><strong>Body:</strong> Empty (no response body)</li>\n</ul>\n<p>The successful deletion returns a <code>204 No Content</code> status code with no response body, indicating that the object label association has been successfully removed.</p>\n<p><strong>Response Headers:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Cache-Control: no-cache\nX-Content-Type-Options: nosniff\nX-Frame-Options: DENY\nX-XSS-Protection: 1; mode=block\n</code></pre><h3 id=\"response-schema\">Response Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 204,\n  \"statusMessage\": \"No Content\",\n  \"body\": null\n}\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><strong>Authentication Required:</strong> This endpoint requires a valid Bearer token in the Authorization header</li>\n<li><strong>Idempotent Operation:</strong> Deleting a non-existent object label may return a 404 error</li>\n<li><strong>No Response Body:</strong> Successful deletions return status 204 with an empty response body</li>\n<li><strong>Permanent Action:</strong> This operation cannot be undone. Ensure you have the correct <code>objectLabelId</code> before deletion</li>\n<li><strong>Security:</strong> The endpoint includes security headers (X-Frame-Options, X-XSS-Protection, Content-Security-Policy) to protect against common web vulnerabilities</li>\n</ul>\n<h3 id=\"error-responses\">Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Unauthorized - Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Forbidden - Insufficient permissions to delete the object label</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Not Found - Object label with the specified ID does not exist</td>\n</tr>\n<tr>\n<td><code>500</code></td>\n<td>Internal Server Error - Server-side error occurred</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","core","label","object-labels","408d8ce4-929e-4474-b11d-7f2332eed9fd"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"5972acc9-5fcd-4913-83ed-8e0b14b2f2d9","name":"Delete Object Label","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/label/object-labels/408d8ce4-929e-4474-b11d-7f2332eed9fd"},"status":"No Content","code":204,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:30:41 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:30:40 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-d2b3e737ffeea9a6b57173dc966528a3' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-d2b3e737ffeea9a6b57173dc966528a3' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"c180826e-1a25-49a8-8eed-dfd0d194a508"}],"id":"c95daf32-6719-4764-8a99-ae4b5a71318e","_postman_id":"c95daf32-6719-4764-8a99-ae4b5a71318e","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"History","item":[{"name":"Get Objects History","id":"2d6f8000-6366-48d7-bd6e-08794a24f4c5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/history/all?relatedObjectType=object np. MEDIAASSET&relatedObjectUuid=uuid&createdBy=uuid&page=&size=&sortBy=&sortDirection=","description":"<h1 id=\"get-objects-history\">Get Objects History</h1>\n<p>Retrieves the complete history of changes and actions performed on objects within the system. This endpoint returns a paginated list of historical entries for various object types, including media assets and other tracked entities.</p>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint provides audit trail functionality, allowing you to track modifications, creations, and other actions performed on objects. Each history entry contains a snapshot of the object state at the time of the action, along with metadata about who performed the action and when.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires Bearer token authentication. Include your access token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"query-parameters\">Query Parameters</h2>\n<h3 id=\"pagination--sorting\">Pagination &amp; Sorting</h3>\n<ul>\n<li><strong>page</strong> (integer, optional): The page number to retrieve (zero-indexed). Default: 0</li>\n<li><strong>size</strong> (integer, optional): Number of items per page. Default: 20</li>\n<li><strong>sortBy</strong> (string, optional): Field name to sort by (e.g., \"createdAt\", \"id\")</li>\n<li><strong>sortDirection</strong> (string, optional): Sort direction. Values: \"ASC\" or \"DESC\"</li>\n</ul>\n<h3 id=\"filtering\">Filtering</h3>\n<ul>\n<li><strong>relatedObjectType</strong> (string, optional): Filter by object type. Possible values:<ul>\n<li><code>MEDIAASSET</code> - Media asset objects (videos, images, etc.)</li>\n<li><code>object np. MEDIAASSET</code> - Alternative format for media assets</li>\n</ul>\n</li>\n<li><strong>relatedObjectUuid</strong> (string, optional): Filter by specific object UUID. Format: UUID (e.g., <code>d56c4658-09d4-4d28-bb9e-7b9d5b545ed2</code>)</li>\n<li><strong>createdBy</strong> (string, optional): Filter by user who created the history entry. Format: UUID (e.g., <code>6bbce507-aca9-441f-87a5-64b947c580a0</code>)</li>\n</ul>\n<h2 id=\"response-model\">Response Model</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": 5,\n      \"uuid\": \"d743f1af-8317-4c44-9b72-2bf3df9607a3\",\n      \"entry\": \"{...}\",\n      \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n      \"createdAt\": \"2025-10-17T11:00:06Z\",\n      \"relatedObjectType\": \"MEDIAASSET\",\n      \"relatedObjectUuid\": \"3136cd74-631c-4bd5-aff7-7b22cfd64338\"\n    }\n  ],\n  \"pageable\": {\n    \"sort\": {\n      \"empty\": false,\n      \"sorted\": true,\n      \"unsorted\": false\n    },\n    \"offset\": 0,\n    \"pageNumber\": 0,\n    \"pageSize\": 20,\n    \"paged\": true,\n    \"unpaged\": false\n  },\n  \"totalElements\": 3,\n  \"totalPages\": 1,\n  \"last\": true,\n  \"size\": 20,\n  \"number\": 0,\n  \"sort\": {\n    \"empty\": false,\n    \"sorted\": true,\n    \"unsorted\": false\n  },\n  \"numberOfElements\": 3,\n  \"first\": true,\n  \"empty\": false\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<h4 id=\"history-entry-object\">History Entry Object</h4>\n<ul>\n<li><strong>id</strong> (integer): Unique identifier for the history entry</li>\n<li><strong>uuid</strong> (string): UUID of the history entry</li>\n<li><strong>entry</strong> (string): JSON string containing the complete object state snapshot at the time of the action</li>\n<li><strong>createdBy</strong> (string): UUID of the user who performed the action</li>\n<li><strong>createdAt</strong> (string): ISO 8601 timestamp when the action occurred</li>\n<li><strong>relatedObjectType</strong> (string): Type of object this history entry relates to</li>\n<li><strong>relatedObjectUuid</strong> (string): UUID of the related object</li>\n</ul>\n<h4 id=\"pagination-object\">Pagination Object</h4>\n<ul>\n<li><strong>content</strong> (array): Array of history entry objects</li>\n<li><strong>pageable</strong> (object): Pagination metadata</li>\n<li><strong>totalElements</strong> (integer): Total number of history entries matching the query</li>\n<li><strong>totalPages</strong> (integer): Total number of pages available</li>\n<li><strong>last</strong> (boolean): Whether this is the last page</li>\n<li><strong>first</strong> (boolean): Whether this is the first page</li>\n<li><strong>size</strong> (integer): Page size</li>\n<li><strong>number</strong> (integer): Current page number (zero-indexed)</li>\n<li><strong>numberOfElements</strong> (integer): Number of elements in the current page</li>\n<li><strong>empty</strong> (boolean): Whether the result set is empty</li>\n</ul>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\n// Configuration\nconst tenantDomain = process.env.TENANT_DOMAIN || 'your-tenant.highp.me';\nconst token = process.env.TOKEN || 'your-access-token';\n\n// Optional query parameters\nconst params = new URLSearchParams({\n  page: '0',\n  size: '20',\n  sortBy: 'createdAt',\n  sortDirection: 'DESC',\n  // Uncomment to filter by specific criteria:\n  // relatedObjectType: 'MEDIAASSET',\n  // relatedObjectUuid: 'd56c4658-09d4-4d28-bb9e-7b9d5b545ed2',\n  // createdBy: '6bbce507-aca9-441f-87a5-64b947c580a0'\n});\n\n// Make the request\nasync function getObjectsHistory() {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/history/all?${params.toString()}`,\n      {\n        method: 'GET',\n        headers: {\n          'Authorization': `Bearer ${token}`,\n          'Content-Type': 'application/json'\n        }\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    \n    console.log(`Total history entries: ${data.totalElements}`);\n    console.log(`Current page: ${data.number + 1} of ${data.totalPages}`);\n    \n    // Process history entries\n    data.content.forEach(entry =&gt; {\n      console.log(`Entry ${entry.id}:`);\n      console.log(`  Type: ${entry.relatedObjectType}`);\n      console.log(`  Created: ${entry.createdAt}`);\n      console.log(`  Created By: ${entry.createdBy}`);\n      \n      // Parse the entry JSON to access object details\n      const entryData = JSON.parse(entry.entry);\n      console.log(`  Entry Data:`, entryData);\n    });\n    \n    return data;\n  } catch (error) {\n    console.error('Error fetching objects history:', error);\n    throw error;\n  }\n}\n\n// Execute the function\ngetObjectsHistory()\n  .then(data =&gt; console.log('Success:', data))\n  .catch(error =&gt; console.error('Failed:', error));\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ul>\n<li><strong>Audit Trail</strong>: Track all changes made to objects for compliance and security purposes</li>\n<li><strong>Change History</strong>: View the complete history of modifications to specific objects</li>\n<li><strong>User Activity</strong>: Monitor actions performed by specific users</li>\n<li><strong>Debugging</strong>: Investigate issues by reviewing historical object states</li>\n<li><strong>Reporting</strong>: Generate reports on object lifecycle and modifications</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>entry</code> field contains a JSON string that must be parsed to access the detailed object state</li>\n<li>History entries are immutable and represent point-in-time snapshots</li>\n<li>Use pagination for large result sets to optimize performance</li>\n<li>Combine filters to narrow down results to specific objects or time periods</li>\n</ul>\n","urlObject":{"path":["api","core","history","all"],"host":["testsandbox.highp.me"],"query":[{"key":"relatedObjectType","value":"object np. MEDIAASSET"},{"key":"relatedObjectUuid","value":"uuid"},{"key":"createdBy","value":"uuid"},{"key":"page","value":""},{"key":"size","value":""},{"key":"sortBy","value":""},{"key":"sortDirection","value":""}],"variable":[]}},"response":[{"id":"d8213da3-7de9-445e-9201-c29bf4c1297c","name":"Get Objects History","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/history/all?relatedObjectType=object np. MEDIAASSET&relatedObjectUuid=uuid&createdBy=uuid&page=&size=&sortBy=&sortDirection=","host":["testsandbox.highp.me"],"path":["api","core","history","all"],"query":[{"key":"relatedObjectType","value":"object np. MEDIAASSET"},{"key":"relatedObjectUuid","value":"uuid"},{"key":"createdBy","value":"uuid"},{"key":"page","value":""},{"key":"size","value":""},{"key":"sortBy","value":""},{"key":"sortDirection","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:30:56 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:30:55 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-7b8a6a8d26aac00977598c36b815d809' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-7b8a6a8d26aac00977598c36b815d809' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 5,\n            \"uuid\": \"d743f1af-8317-4c44-9b72-2bf3df9607a3\",\n            \"entry\": \"{\\\"id\\\": 8, \\\"uuid\\\": \\\"c1cd5650-0b2f-4683-a52e-f23e190c504a\\\", \\\"label\\\": {\\\"id\\\": 35, \\\"name\\\": \\\"blue\\\", \\\"uuid\\\": \\\"e630d28e-1704-4b7e-97bc-a01cffb438a0\\\", \\\"createdDate\\\": \\\"2025-10-15T09:09:18Z\\\", \\\"labelDefinition\\\": {\\\"id\\\": 12, \\\"name\\\": \\\"Test label43\\\", \\\"uuid\\\": \\\"a8901b0e-3c74-4a60-817a-d61060944198\\\", \\\"access\\\": \\\"PRIVATE\\\", \\\"labels\\\": null, \\\"ownerUuid\\\": \\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\", \\\"createdDate\\\": \\\"2025-10-15T09:09:18Z\\\"}}, \\\"object\\\": {\\\"name\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\", \\\"type\\\": \\\"video\\\", \\\"uuid\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\", \\\"gifUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.gif\\\", \\\"txtUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.txt\\\", \\\"vttUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.vtt\\\", \\\"project\\\": \\\"highp\\\", \\\"filename\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\", \\\"metadata\\\": null, \\\"personal\\\": false, \\\"createdBy\\\": null, \\\"lastUpdated\\\": \\\"1759747588\\\", \\\"mediaAssetId\\\": 1748, \\\"thumbnailUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.jpg\\\", \\\"mediaAssetUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\"}, \\\"ownerUuid\\\": \\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\", \\\"createdDate\\\": \\\"2025-10-16T12:19:35Z\\\", \\\"relatedObjectType\\\": \\\"MEDIAASSET\\\", \\\"relatedObjectUuid\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\"}\",\n            \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n            \"createdAt\": \"2025-10-17T11:00:06Z\",\n            \"relatedObjectType\": \"MEDIAASSET\",\n            \"relatedObjectUuid\": \"3136cd74-631c-4bd5-aff7-7b22cfd64338\"\n        },\n        {\n            \"id\": 4,\n            \"uuid\": \"3136cd74-631c-4bd5-aff7-7b22cfd64338\",\n            \"entry\": \"{\\\"id\\\": 11, \\\"uuid\\\": \\\"c1cd5650-0b2f-4683-a52e-f23e190c504a\\\", \\\"label\\\": {\\\"id\\\": 35, \\\"name\\\": \\\"blue\\\", \\\"uuid\\\": \\\"e630d28e-1704-4b7e-97bc-a01cffb438a0\\\", \\\"createdDate\\\": \\\"2025-10-15T09:09:18Z\\\", \\\"labelDefinition\\\": {\\\"id\\\": 12, \\\"name\\\": \\\"Test label43\\\", \\\"uuid\\\": \\\"a8901b0e-3c74-4a60-817a-d61060944198\\\", \\\"access\\\": \\\"PRIVATE\\\", \\\"labels\\\": null, \\\"ownerUuid\\\": \\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\", \\\"createdDate\\\": \\\"2025-10-15T09:09:18Z\\\"}}, \\\"object\\\": {\\\"name\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\", \\\"type\\\": \\\"video\\\", \\\"uuid\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\", \\\"gifUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.gif\\\", \\\"txtUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.txt\\\", \\\"vttUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.vtt\\\", \\\"project\\\": \\\"highp\\\", \\\"filename\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\", \\\"metadata\\\": null, \\\"personal\\\": false, \\\"createdBy\\\": null, \\\"lastUpdated\\\": \\\"1759747588\\\", \\\"mediaAssetId\\\": 1748, \\\"thumbnailUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.jpg\\\", \\\"mediaAssetUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\"}, \\\"ownerUuid\\\": \\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\", \\\"createdDate\\\": \\\"2025-10-16T12:19:35Z\\\", \\\"relatedObjectType\\\": \\\"MEDIAASSET\\\", \\\"relatedObjectUuid\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\"}\",\n            \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n            \"createdAt\": \"2025-10-17T09:45:26Z\",\n            \"relatedObjectType\": \"MEDIAASSET\",\n            \"relatedObjectUuid\": \"d56c4658-09d4-4d28-bb9e-7b9d5b545ed2\"\n        },\n        {\n            \"id\": 1,\n            \"uuid\": \"75ad5c41-6f7f-4f4b-aee7-45a321ec541b\",\n            \"entry\": \"{\\\"id\\\": 8, \\\"uuid\\\": \\\"c1cd5650-0b2f-4683-a52e-f23e190c504a\\\", \\\"label\\\": {\\\"id\\\": 35, \\\"name\\\": \\\"blue\\\", \\\"uuid\\\": \\\"e630d28e-1704-4b7e-97bc-a01cffb438a0\\\", \\\"createdDate\\\": \\\"2025-10-15T09:09:18Z\\\", \\\"labelDefinition\\\": {\\\"id\\\": 12, \\\"name\\\": \\\"Test label43\\\", \\\"uuid\\\": \\\"a8901b0e-3c74-4a60-817a-d61060944198\\\", \\\"access\\\": \\\"PRIVATE\\\", \\\"labels\\\": null, \\\"ownerUuid\\\": \\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\", \\\"createdDate\\\": \\\"2025-10-15T09:09:18Z\\\"}}, \\\"object\\\": {\\\"name\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\", \\\"type\\\": \\\"video\\\", \\\"uuid\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\", \\\"gifUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.gif\\\", \\\"txtUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.txt\\\", \\\"vttUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.vtt\\\", \\\"project\\\": \\\"highp\\\", \\\"filename\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\", \\\"metadata\\\": null, \\\"personal\\\": false, \\\"createdBy\\\": null, \\\"lastUpdated\\\": \\\"1759747588\\\", \\\"mediaAssetId\\\": 1748, \\\"thumbnailUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.jpg\\\", \\\"mediaAssetUrl\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\"}, \\\"ownerUuid\\\": \\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\", \\\"createdDate\\\": \\\"2025-10-16T12:19:35Z\\\", \\\"relatedObjectType\\\": \\\"MEDIAASSET\\\", \\\"relatedObjectUuid\\\": \\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\"}\",\n            \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n            \"createdAt\": \"2025-10-17T09:43:37Z\",\n            \"relatedObjectType\": \"MEDIAASSET\",\n            \"relatedObjectUuid\": \"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalElements\": 3,\n    \"totalPages\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"numberOfElements\": 3,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"2d6f8000-6366-48d7-bd6e-08794a24f4c5"},{"name":"Create Object History","id":"c8d56178-4e92-4482-aaf2-f1f1f8babd87","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"entry\": \"{\\\"id\\\":8,\\\"uuid\\\":\\\"c1cd5650-0b2f-4683-a52e-f23e190c504a\\\",\\\"relatedObjectType\\\":\\\"MEDIAASSET\\\",\\\"relatedObjectUuid\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\",\\\"createdDate\\\":\\\"2025-10-16T12:19:35Z\\\",\\\"ownerUuid\\\":\\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\",\\\"label\\\":{\\\"id\\\":35,\\\"uuid\\\":\\\"e630d28e-1704-4b7e-97bc-a01cffb438a0\\\",\\\"name\\\":\\\"blue\\\",\\\"createdDate\\\":\\\"2025-10-15T09:09:18Z\\\",\\\"labelDefinition\\\":{\\\"id\\\":12,\\\"uuid\\\":\\\"a8901b0e-3c74-4a60-817a-d61060944198\\\",\\\"name\\\":\\\"Test label43\\\",\\\"createdDate\\\":\\\"2025-10-15T09:09:18Z\\\",\\\"access\\\":\\\"PRIVATE\\\",\\\"ownerUuid\\\":\\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\",\\\"labels\\\":null}},\\\"object\\\":{\\\"uuid\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\",\\\"filename\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"mediaAssetId\\\":1748,\\\"lastUpdated\\\":\\\"1759747588\\\",\\\"name\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"type\\\":\\\"video\\\",\\\"project\\\":\\\"highp\\\",\\\"createdBy\\\":null,\\\"personal\\\":false,\\\"mediaAssetUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"thumbnailUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.jpg\\\",\\\"gifUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.gif\\\",\\\"vttUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.vtt\\\",\\\"txtUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.txt\\\",\\\"metadata\\\":null}}\",\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"3136cd74-631c-4bd5-aff7-7b22cfd64338\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/history/create","description":"<h1 id=\"create-object-history\">Create Object History</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint creates a new history entry for a related object in the Highp platform. It allows you to track and store historical records associated with media assets or other objects, including metadata such as labels, timestamps, and object details.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<ul>\n<li><strong>URL</strong>: <code>https://{{tenant_domain}}/api/core/history/create</code></li>\n<li><strong>Method</strong>: <code>POST</code></li>\n<li><strong>Authentication</strong>: Bearer Token (required)</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a Bearer token. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><p><strong>Required Variables:</strong></p>\n<ul>\n<li><code>{{token}}</code> - Your API authentication token</li>\n<li><code>{{tenant_domain}}</code> - Your tenant's domain (e.g., <code>testsandbox.highp.me</code>)</li>\n</ul>\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be in JSON format with the following structure:</p>\n<h3 id=\"parameters\">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>entry</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>A JSON-stringified object containing the complete history entry details including labels, object metadata, and timestamps</td>\n</tr>\n<tr>\n<td><code>relatedObjectType</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The type of object this history entry relates to (e.g., <code>MEDIAASSET</code>)</td>\n</tr>\n<tr>\n<td><code>relatedObjectUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The UUID of the related object</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-schema\">Request Body Schema</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"entry\": \"{\\\"id\\\":8,\\\"uuid\\\":\\\"c1cd5650-0b2f-4683-a52e-...\\\",\\\"relatedObjectType\\\":\\\"MEDIAASSET\\\",\\\"relatedObjectUuid\\\":\\\"fcb47b0c-cb5d-45b0-...\\\",\\\"createdDate\\\":\\\"2025-10-16T12:19:35Z\\\",\\\"ownerUuid\\\":\\\"0bbb266d-7c15-4fca-...\\\",\\\"label\\\":{...},\\\"object\\\":{...}}\",\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"3136cd74-631c-4bd5-aff7-7b22cfd64338\"\n}\n</code></pre>\n<h3 id=\"entry-object-structure-json-stringified\">Entry Object Structure (JSON-stringified)</h3>\n<p>The <code>entry</code> parameter contains a stringified JSON object with the following properties:</p>\n<ul>\n<li><code>id</code> (number) - Internal ID of the history entry</li>\n<li><code>uuid</code> (string) - Unique identifier for the history entry</li>\n<li><code>relatedObjectType</code> (string) - Type of the related object</li>\n<li><code>relatedObjectUuid</code> (string) - UUID of the related object</li>\n<li><code>createdDate</code> (string) - ISO 8601 timestamp of creation</li>\n<li><code>ownerUuid</code> (string) - UUID of the owner</li>\n<li><code>label</code> (object) - Label information including:<ul>\n<li><code>id</code>, <code>uuid</code>, <code>name</code>, <code>createdDate</code></li>\n<li><code>labelDefinition</code> - Definition details with access level and owner</li>\n</ul>\n</li>\n<li><code>object</code> (object) - Media asset details including:<ul>\n<li><code>uuid</code>, <code>filename</code>, <code>mediaAssetId</code>, <code>name</code>, <code>type</code></li>\n<li>URLs for media, thumbnail, GIF, VTT, and text files</li>\n<li>Metadata and project information</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 6,\n  \"uuid\": \"8eed9444-59cb-4f6a-a554-23e8d93704d1\",\n  \"entry\": \"{\\\"id\\\":8,\\\"uuid\\\":\\\"c1cd5650-0b2f-4683-a52e-f23e190c504a\\\",\\\"relatedObjectType\\\":\\\"MEDIAASSET\\\",\\\"relatedObjectUuid\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\",\\\"createdDate\\\":\\\"2025-10-16T12:19:35Z\\\",\\\"ownerUuid\\\":\\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\",\\\"label\\\":{...},\\\"object\\\":{...}}\",\n  \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n  \"createdAt\": \"2025-11-24T14:31:07Z\",\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"3136cd74-631c-4bd5-aff7-7b22cfd64338\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>number</td>\n<td>The database ID of the created history entry</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>Unique identifier for the history entry</td>\n</tr>\n<tr>\n<td><code>entry</code></td>\n<td>string</td>\n<td>The complete history entry data (JSON-stringified)</td>\n</tr>\n<tr>\n<td><code>createdBy</code></td>\n<td>string</td>\n<td>UUID of the user who created the entry</td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>string</td>\n<td>ISO 8601 timestamp when the entry was created</td>\n</tr>\n<tr>\n<td><code>relatedObjectType</code></td>\n<td>string</td>\n<td>Type of the related object</td>\n</tr>\n<tr>\n<td><code>relatedObjectUuid</code></td>\n<td>string</td>\n<td>UUID of the related object</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"code-example-nodejs\">Code Example (Node.js)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nasync function createObjectHistory(tenantDomain, token, historyData) {\n  const url = `https://${tenantDomain}/api/core/history/create`;\n  \n  const requestBody = {\n    entry: JSON.stringify(historyData.entry),\n    relatedObjectType: historyData.relatedObjectType,\n    relatedObjectUuid: historyData.relatedObjectUuid\n  };\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${token}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(requestBody)\n    });\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('History entry created successfully:', data);\n    return data;\n    \n  } catch (error) {\n    console.error('Error creating history entry:', error);\n    throw error;\n  }\n}\n\n// Example usage\nconst historyData = {\n  entry: {\n    id: 8,\n    uuid: \"c1cd5650-0b2f-4683-a52e-f23e190c504a\",\n    relatedObjectType: \"MEDIAASSET\",\n    relatedObjectUuid: \"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\",\n    createdDate: \"2025-10-16T12:19:35Z\",\n    ownerUuid: \"0bbb266d-7c15-4fca-882b-225c31ace8ca\",\n    label: {\n      id: 35,\n      uuid: \"e630d28e-1704-4b7e-97bc-a01cffb438a0\",\n      name: \"blue\",\n      createdDate: \"2025-10-15T09:09:18Z\",\n      labelDefinition: {\n        id: 12,\n        uuid: \"a8901b0e-3c74-4a60-817a-d61060944198\",\n        name: \"Test label43\",\n        createdDate: \"2025-10-15T09:09:18Z\",\n        access: \"PRIVATE\",\n        ownerUuid: \"0bbb266d-7c15-4fca-882b-225c31ace8ca\"\n      }\n    },\n    object: {\n      uuid: \"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\",\n      filename: \"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\",\n      mediaAssetId: 1748,\n      name: \"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\",\n      type: \"video\",\n      project: \"highp\"\n    }\n  },\n  relatedObjectType: \"MEDIAASSET\",\n  relatedObjectUuid: \"3136cd74-631c-4bd5-aff7-7b22cfd64338\"\n};\n\ncreateObjectHistory('testsandbox.highp.me', 'your-token-here', historyData);\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The <code>entry</code> field must be a JSON-stringified object, not a plain JSON object</li>\n<li>Ensure your Bearer token has the necessary permissions to create history entries</li>\n<li>The <code>tenant_domain</code> variable should match your Highp tenant domain</li>\n<li>History entries are immutable once created and track changes over time</li>\n<li>The response includes server-generated fields like <code>id</code>, <code>createdBy</code>, and <code>createdAt</code></li>\n</ul>\n","urlObject":{"path":["api","core","history","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"cb2194ca-cbf6-4b38-a04e-d0dd438afdc8","name":"Create Object History","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"entry\": \"{\\\"id\\\":8,\\\"uuid\\\":\\\"c1cd5650-0b2f-4683-a52e-f23e190c504a\\\",\\\"relatedObjectType\\\":\\\"MEDIAASSET\\\",\\\"relatedObjectUuid\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\",\\\"createdDate\\\":\\\"2025-10-16T12:19:35Z\\\",\\\"ownerUuid\\\":\\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\",\\\"label\\\":{\\\"id\\\":35,\\\"uuid\\\":\\\"e630d28e-1704-4b7e-97bc-a01cffb438a0\\\",\\\"name\\\":\\\"blue\\\",\\\"createdDate\\\":\\\"2025-10-15T09:09:18Z\\\",\\\"labelDefinition\\\":{\\\"id\\\":12,\\\"uuid\\\":\\\"a8901b0e-3c74-4a60-817a-d61060944198\\\",\\\"name\\\":\\\"Test label43\\\",\\\"createdDate\\\":\\\"2025-10-15T09:09:18Z\\\",\\\"access\\\":\\\"PRIVATE\\\",\\\"ownerUuid\\\":\\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\",\\\"labels\\\":null}},\\\"object\\\":{\\\"uuid\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\",\\\"filename\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"mediaAssetId\\\":1748,\\\"lastUpdated\\\":\\\"1759747588\\\",\\\"name\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"type\\\":\\\"video\\\",\\\"project\\\":\\\"highp\\\",\\\"createdBy\\\":null,\\\"personal\\\":false,\\\"mediaAssetUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"thumbnailUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.jpg\\\",\\\"gifUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.gif\\\",\\\"vttUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.vtt\\\",\\\"txtUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.txt\\\",\\\"metadata\\\":null}}\",\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"3136cd74-631c-4bd5-aff7-7b22cfd64338\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/history/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:31:07 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:31:06 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-9696c6727f4e5cde82a8058a5cb533ef' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-9696c6727f4e5cde82a8058a5cb533ef' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 6,\n    \"uuid\": \"8eed9444-59cb-4f6a-a554-23e8d93704d1\",\n    \"entry\": \"{\\\"id\\\":8,\\\"uuid\\\":\\\"c1cd5650-0b2f-4683-a52e-f23e190c504a\\\",\\\"relatedObjectType\\\":\\\"MEDIAASSET\\\",\\\"relatedObjectUuid\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\",\\\"createdDate\\\":\\\"2025-10-16T12:19:35Z\\\",\\\"ownerUuid\\\":\\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\",\\\"label\\\":{\\\"id\\\":35,\\\"uuid\\\":\\\"e630d28e-1704-4b7e-97bc-a01cffb438a0\\\",\\\"name\\\":\\\"blue\\\",\\\"createdDate\\\":\\\"2025-10-15T09:09:18Z\\\",\\\"labelDefinition\\\":{\\\"id\\\":12,\\\"uuid\\\":\\\"a8901b0e-3c74-4a60-817a-d61060944198\\\",\\\"name\\\":\\\"Test label43\\\",\\\"createdDate\\\":\\\"2025-10-15T09:09:18Z\\\",\\\"access\\\":\\\"PRIVATE\\\",\\\"ownerUuid\\\":\\\"0bbb266d-7c15-4fca-882b-225c31ace8ca\\\",\\\"labels\\\":null}},\\\"object\\\":{\\\"uuid\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\\\",\\\"filename\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"mediaAssetId\\\":1748,\\\"lastUpdated\\\":\\\"1759747588\\\",\\\"name\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"type\\\":\\\"video\\\",\\\"project\\\":\\\"highp\\\",\\\"createdBy\\\":null,\\\"personal\\\":false,\\\"mediaAssetUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4\\\",\\\"thumbnailUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.jpg\\\",\\\"gifUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.gif\\\",\\\"vttUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.vtt\\\",\\\"txtUrl\\\":\\\"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3.mp4.txt\\\",\\\"metadata\\\":null}}\",\n    \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"createdAt\": \"2025-11-24T14:31:07Z\",\n    \"relatedObjectType\": \"MEDIAASSET\",\n    \"relatedObjectUuid\": \"3136cd74-631c-4bd5-aff7-7b22cfd64338\"\n}"}],"_postman_id":"c8d56178-4e92-4482-aaf2-f1f1f8babd87"},{"name":"Delete Object History","id":"c992f810-b75a-4651-b165-7d6760d4f8e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/history/8eed9444-59cb-4f6a-a554-23e8d93704d1","description":"<h2 id=\"delete-object-history\">Delete Object History</h2>\n<p>This endpoint permanently deletes the history record for a specific object in the Highp platform. Once deleted, the history entry cannot be recovered.</p>\n<h3 id=\"endpoint-details\">Endpoint Details</h3>\n<ul>\n<li><strong>Method:</strong> <code>DELETE</code></li>\n<li><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/history/{history_id}</code></li>\n<li><strong>Authentication:</strong> Bearer Token (required)</li>\n</ul>\n<h3 id=\"path-parameters\">Path 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>history_id</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the history record to delete</td>\n</tr>\n</tbody>\n</table>\n</div><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>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Your API access token</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-example-nodejs-fetch\">Request Example (Node.js fetch)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst historyId = '8eed9444-59cb-4f6a-a554-23e8d93704d1';\nconst token = 'your_access_token';\n\nconst url = `https://${tenantDomain}/api/core/history/${historyId}`;\n\nconst options = {\n  method: 'DELETE',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n};\n\nfetch(url, options)\n  .then(response =&gt; {\n    if (response.status === 204) {\n      console.log('History record deleted successfully');\n    } else {\n      console.error('Failed to delete history record:', response.status);\n    }\n    return response;\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<h4 id=\"success-response\">Success Response</h4>\n<p><strong>Status Code:</strong> <code>204 No Content</code></p>\n<p>The endpoint returns an empty response body with a 204 status code when the history record is successfully deleted.</p>\n<p><strong>Response Headers:</strong></p>\n<ul>\n<li><code>Cache-Control</code>: <code>no-cache</code></li>\n<li><code>X-Content-Type-Options</code>: <code>nosniff</code></li>\n<li><code>X-Frame-Options</code>: <code>DENY</code></li>\n<li><code>X-XSS-Protection</code>: <code>1; mode=block</code></li>\n</ul>\n<h4 id=\"error-responses\">Error Responses</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Invalid or missing authentication token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Insufficient permissions to delete this history record</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>History record with the specified ID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server error occurred while processing the request</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"notes\">Notes</h3>\n<ul>\n<li>This is a destructive operation and cannot be undone</li>\n<li>Ensure you have the correct <code>history_id</code> before making the request</li>\n<li>The Bearer token must have appropriate permissions to delete history records</li>\n<li>A successful deletion returns no content (204 status code)</li>\n<li>The <code>tenant_domain</code> variable should be set to your Highp instance domain</li>\n</ul>\n","urlObject":{"path":["api","core","history","8eed9444-59cb-4f6a-a554-23e8d93704d1"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"384c77d7-cf79-4b8a-ad1c-122ff3d69ce9","name":"Delete Object History","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/history/8eed9444-59cb-4f6a-a554-23e8d93704d1"},"status":"No Content","code":204,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Mon, 24 Nov 2025 14:32:04 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Mon, 24 Nov 2025 14:32:03 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-afecbd90ae5b2ac133f2fe133b8ec2ce' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-afecbd90ae5b2ac133f2fe133b8ec2ce' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"c992f810-b75a-4651-b165-7d6760d4f8e9"}],"id":"b32eeec3-00c1-47ec-afdf-95b2ba2fa7ae","_postman_id":"b32eeec3-00c1-47ec-afdf-95b2ba2fa7ae","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Comment","item":[{"name":"Get Objects Comments","id":"7515f075-1523-479b-a69b-0f531806dc92","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/comment/all?relatedObjectType=object np. MEDIAASSET&relatedObjectUuid=uuid&createdBy=uuid&search=comment text&page=string&size=string&sortBy=string&sortDirection=string","description":"<h1 id=\"get-objects-comments\">Get Objects Comments</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This endpoint retrieves all comments associated with various objects in the system. It supports filtering, pagination, and sorting to help you find specific comments efficiently.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<h3 id=\"filtering-parameters\">Filtering Parameters</h3>\n<ul>\n<li><p><strong>relatedObjectType</strong> (string, optional)</p>\n<ul>\n<li>The type of object the comments are related to</li>\n<li>Example values: <code>MEDIAASSET</code>, <code>object np. MEDIAASSET</code></li>\n<li>Use this to filter comments by the type of object they're attached to</li>\n</ul>\n</li>\n<li><p><strong>relatedObjectUuid</strong> (string, optional)</p>\n<ul>\n<li>The UUID of the specific object to retrieve comments for</li>\n<li>Format: UUID (e.g., <code>d56c4658-09d4-4d28-bb9e-7b9d5b545ed2</code>)</li>\n<li>Use this to get all comments for a particular object instance</li>\n</ul>\n</li>\n<li><p><strong>createdBy</strong> (string, optional)</p>\n<ul>\n<li>The UUID of the user who created the comments</li>\n<li>Format: UUID (e.g., <code>6bbce507-aca9-441f-87a5-64b947c580a0</code>)</li>\n<li>Use this to filter comments by author</li>\n</ul>\n</li>\n<li><p><strong>search</strong> (string, optional)</p>\n<ul>\n<li>Search term to find comments containing specific text</li>\n<li>Example values: <code>comment text</code>, <code>3</code></li>\n<li>Performs a text search across comment content</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"pagination-parameters\">Pagination Parameters</h3>\n<ul>\n<li><p><strong>page</strong> (integer, optional)</p>\n<ul>\n<li>The page number to retrieve (zero-based indexing)</li>\n<li>Default: 0</li>\n</ul>\n</li>\n<li><p><strong>size</strong> (integer, optional)</p>\n<ul>\n<li>Number of comments per page</li>\n<li>Default: varies by system configuration</li>\n</ul>\n</li>\n<li><p><strong>sortBy</strong> (string, optional)</p>\n<ul>\n<li>Field name to sort the results by</li>\n<li>Common values: <code>createdAt</code>, <code>updatedAt</code></li>\n</ul>\n</li>\n<li><p><strong>sortDirection</strong> (string, optional)</p>\n<ul>\n<li>Sort order direction</li>\n<li>Values: <code>ASC</code> (ascending) or <code>DESC</code> (descending)</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = '{{tenant_domain}}';\nconst token = '{{token}}';\n\n// Build query parameters\nconst params = new URLSearchParams({\n  relatedObjectType: 'MEDIAASSET',\n  relatedObjectUuid: 'd56c4658-09d4-4d28-bb9e-7b9d5b545ed2',\n  page: '0',\n  size: '20',\n  sortBy: 'createdAt',\n  sortDirection: 'DESC'\n});\n\n// Make the request\nfetch(`https://${tenantDomain}/api/core/comment/all?${params}`, {\n  method: 'GET',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  }\n})\n  .then(response =&gt; {\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response.json();\n  })\n  .then(data =&gt; {\n    console.log('Comments retrieved:', data);\n    // Process the comments data\n  })\n  .catch(error =&gt; {\n    console.error('Error fetching comments:', error);\n  });\n</code></pre>\n<h2 id=\"response-model\">Response Model</h2>\n<p>The endpoint returns a paginated response containing an array of comment objects.</p>\n<h3 id=\"response-structure\">Response Structure</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"content\": [\n    {\n      \"id\": \"string (UUID)\",\n      \"relatedObjectType\": \"string\",\n      \"relatedObjectUuid\": \"string (UUID)\",\n      \"text\": \"string\",\n      \"createdBy\": \"string (UUID)\",\n      \"createdAt\": \"string (ISO 8601 datetime)\",\n      \"updatedAt\": \"string (ISO 8601 datetime)\",\n      \"author\": {\n        \"id\": \"string (UUID)\",\n        \"name\": \"string\",\n        \"email\": \"string\"\n      }\n    }\n  ],\n  \"pageable\": {\n    \"pageNumber\": \"integer\",\n    \"pageSize\": \"integer\",\n    \"sort\": {\n      \"sorted\": \"boolean\",\n      \"unsorted\": \"boolean\"\n    }\n  },\n  \"totalElements\": \"integer\",\n  \"totalPages\": \"integer\",\n  \"last\": \"boolean\",\n  \"first\": \"boolean\",\n  \"numberOfElements\": \"integer\",\n  \"size\": \"integer\",\n  \"number\": \"integer\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<ul>\n<li><p><strong>content</strong>: Array of comment objects</p>\n<ul>\n<li><strong>id</strong>: Unique identifier for the comment</li>\n<li><strong>relatedObjectType</strong>: Type of object this comment is attached to</li>\n<li><strong>relatedObjectUuid</strong>: UUID of the related object</li>\n<li><strong>text</strong>: The comment content/text</li>\n<li><strong>createdBy</strong>: UUID of the user who created the comment</li>\n<li><strong>createdAt</strong>: Timestamp when the comment was created</li>\n<li><strong>updatedAt</strong>: Timestamp when the comment was last updated</li>\n<li><strong>author</strong>: User information of the comment creator</li>\n</ul>\n</li>\n<li><p><strong>Pagination metadata</strong>:</p>\n<ul>\n<li><strong>totalElements</strong>: Total number of comments matching the query</li>\n<li><strong>totalPages</strong>: Total number of pages available</li>\n<li><strong>size</strong>: Number of items per page</li>\n<li><strong>number</strong>: Current page number</li>\n<li><strong>first</strong>: Boolean indicating if this is the first page</li>\n<li><strong>last</strong>: Boolean indicating if this is the last page</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"use-cases\">Use Cases</h2>\n<ol>\n<li><p><strong>Get all comments for a specific media asset</strong>:</p>\n<ul>\n<li>Set <code>relatedObjectType=MEDIAASSET</code> and <code>relatedObjectUuid=&lt;asset-uuid&gt;</code></li>\n</ul>\n</li>\n<li><p><strong>Find comments by a specific user</strong>:</p>\n<ul>\n<li>Set <code>createdBy=&lt;user-uuid&gt;</code></li>\n</ul>\n</li>\n<li><p><strong>Search comments by text</strong>:</p>\n<ul>\n<li>Set <code>search=&lt;search-term&gt;</code></li>\n</ul>\n</li>\n<li><p><strong>Get recent comments</strong>:</p>\n<ul>\n<li>Set <code>sortBy=createdAt</code> and <code>sortDirection=DESC</code></li>\n</ul>\n</li>\n</ol>\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication via Bearer token. Include the token in the Authorization header as shown in the code example above.</p>\n","urlObject":{"path":["api","core","comment","all"],"host":["testsandbox.highp.me"],"query":[{"key":"relatedObjectType","value":"object np. MEDIAASSET"},{"key":"relatedObjectUuid","value":"uuid"},{"key":"createdBy","value":"uuid"},{"key":"search","value":"comment text"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortBy","value":"string"},{"key":"sortDirection","value":"string"}],"variable":[]}},"response":[{"id":"86a9d48f-b5b5-4b20-a701-d558e7b52ee1","name":"Get Objects Comments","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"testsandbox.highp.me/api/core/comment/all?relatedObjectType=object np. MEDIAASSET&relatedObjectUuid=uuid&createdBy=uuid&search=comment text&page=string&size=string&sortBy=string&sortDirection=string","host":["testsandbox.highp.me"],"path":["api","core","comment","all"],"query":[{"key":"relatedObjectType","value":"object np. MEDIAASSET"},{"key":"relatedObjectUuid","value":"uuid"},{"key":"createdBy","value":"uuid"},{"key":"search","value":"comment text"},{"key":"page","value":"string"},{"key":"size","value":"string"},{"key":"sortBy","value":"string"},{"key":"sortDirection","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 17 Oct 2025 11:01:08 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 17 Oct 2025 11:01:07 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-a08d342ba58818c606c0bc76354d6170' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-a08d342ba58818c606c0bc76354d6170' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 3,\n            \"uuid\": \"c55a9abe-a702-424c-874d-4fd237dea70d\",\n            \"comment\": \"test No3\",\n            \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n            \"lastModifiedAt\": \"2025-10-17T09:47:45Z\",\n            \"relatedObjectType\": \"MEDIAASSET\",\n            \"relatedObjectUuid\": \"fcb47b0c-cb5d-45b0-93e4-c2a0cbd114c3\"\n        }\n    ],\n    \"pageable\": {\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"offset\": 0,\n        \"pageNumber\": 0,\n        \"pageSize\": 20,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"totalPages\": 1,\n    \"totalElements\": 1,\n    \"last\": true,\n    \"size\": 20,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"unsorted\": false,\n        \"sorted\": true\n    },\n    \"numberOfElements\": 1,\n    \"first\": true,\n    \"empty\": false\n}"}],"_postman_id":"7515f075-1523-479b-a69b-0f531806dc92"},{"name":"Create Object Comment","id":"1a15a42c-3e12-4c95-9253-3c3435a847c2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"comment\": \"Test commentfsdffd\",\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"c55a9abe-a702-424c-874d-4fd237dea70d\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/comment/create","description":"<h2 id=\"create-object-comment\">Create Object Comment</h2>\n<p>This endpoint allows you to create a comment associated with a specific object in the Highp platform. Comments can be attached to various object types such as media assets, campaigns, or other entities.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>https://{{tenant_domain}}/api/core/comment/create</code><br /><strong>Method:</strong> <code>POST</code><br /><strong>Authentication:</strong> Bearer Token (required)</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>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body-schema\">Request Body Schema</h3>\n<p>The request body must be a JSON object with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>comment</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The text content of the comment</td>\n</tr>\n<tr>\n<td><code>relatedObjectType</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The type of object being commented on (e.g., \"MEDIAASSET\")</td>\n</tr>\n<tr>\n<td><code>relatedObjectUuid</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The UUID of the object being commented on</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"comment\": \"Test comment\",\n    \"relatedObjectType\": \"MEDIAASSET\",\n    \"relatedObjectUuid\": \"c55a9abe-a702-424c-874d-4fd237dea70d\"\n}\n</code></pre>\n<h3 id=\"response-model\">Response Model</h3>\n<p><strong>Status Code:</strong> <code>200 OK</code></p>\n<p>The response returns the created comment object with the following structure:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>integer</td>\n<td>The internal ID of the comment</td>\n</tr>\n<tr>\n<td><code>uuid</code></td>\n<td>string</td>\n<td>The unique identifier (UUID) of the comment</td>\n</tr>\n<tr>\n<td><code>comment</code></td>\n<td>string</td>\n<td>The comment text</td>\n</tr>\n<tr>\n<td><code>createdBy</code></td>\n<td>string</td>\n<td>UUID of the user who created the comment</td>\n</tr>\n<tr>\n<td><code>lastModifiedAt</code></td>\n<td>string</td>\n<td>ISO 8601 timestamp of when the comment was last modified</td>\n</tr>\n<tr>\n<td><code>relatedObjectType</code></td>\n<td>string</td>\n<td>The type of object the comment is associated with</td>\n</tr>\n<tr>\n<td><code>relatedObjectUuid</code></td>\n<td>string</td>\n<td>The UUID of the related object</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": 4,\n    \"uuid\": \"46005a05-e879-4826-a64d-6e02b0c4ffa5\",\n    \"comment\": \"Test comment\",\n    \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"lastModifiedAt\": \"2025-10-17T11:02:33Z\",\n    \"relatedObjectType\": \"MEDIAASSET\",\n    \"relatedObjectUuid\": \"c55a9abe-a702-424c-874d-4fd237dea70d\"\n}\n</code></pre>\n<h3 id=\"nodejs-example\">Node.js Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const fetch = require('node-fetch');\n\nconst tenantDomain = 'your-tenant.highp.me';\nconst token = 'your_bearer_token_here';\n\nconst createComment = async () =&gt; {\n    const url = `https://${tenantDomain}/api/core/comment/create`;\n    \n    const requestBody = {\n        comment: \"This is a test comment\",\n        relatedObjectType: \"MEDIAASSET\",\n        relatedObjectUuid: \"c55a9abe-a702-424c-874d-4fd237dea70d\"\n    };\n    \n    try {\n        const response = await fetch(url, {\n            method: 'POST',\n            headers: {\n                'Authorization': `Bearer ${token}`,\n                'Content-Type': 'application/json'\n            },\n            body: JSON.stringify(requestBody)\n        });\n        \n        if (!response.ok) {\n            throw new Error(`HTTP error! status: ${response.status}`);\n        }\n        \n        const data = await response.json();\n        console.log('Comment created successfully:', data);\n        return data;\n    } catch (error) {\n        console.error('Error creating comment:', error);\n        throw error;\n    }\n};\n\n// Call the function\ncreateComment();\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>Ensure you have a valid bearer token with appropriate permissions to create comments</li>\n<li>The <code>relatedObjectUuid</code> must correspond to an existing object in the system</li>\n<li>The <code>relatedObjectType</code> should match the actual type of the object you're commenting on</li>\n</ul>\n","urlObject":{"path":["api","core","comment","create"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"2061ed9d-f0e9-4be8-bc74-3acfbd74d2a5","name":"Create Object Comment","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"comment\": \"Test commentfsdffd\",\n  \"relatedObjectType\": \"MEDIAASSET\",\n  \"relatedObjectUuid\": \"c55a9abe-a702-424c-874d-4fd237dea70d\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/comment/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 17 Oct 2025 11:02:33 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 17 Oct 2025 11:02:32 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-447bf1e45df637a74c5b00210b9675fe' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-447bf1e45df637a74c5b00210b9675fe' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 4,\n    \"uuid\": \"46005a05-e879-4826-a64d-6e02b0c4ffa5\",\n    \"comment\": \"Test comment\",\n    \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"lastModifiedAt\": \"2025-10-17T11:02:33Z\",\n    \"relatedObjectType\": \"MEDIAASSET\",\n    \"relatedObjectUuid\": \"c55a9abe-a702-424c-874d-4fd237dea70d\"\n}"}],"_postman_id":"1a15a42c-3e12-4c95-9253-3c3435a847c2"},{"name":"Update Object Comment","id":"93aa7233-07a8-46af-a17b-e3859a2b36ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"comment\": \"Nowa treść Test123dd\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/comment/d7871a12-cf7a-41ac-88a5-ff69c63bb8b5","description":"<h1 id=\"update-object-comment\">Update Object Comment</h1>\n<p>Updates the comment text for a specific object identified by its UUID.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT https://{{tenant_domain}}/api/core/comment/{comment_id}\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\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>comment_id</code></td>\n<td>string (UUID)</td>\n<td>Yes</td>\n<td>The unique identifier of the comment to update</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires authentication using a bearer token. Include the token in the request headers:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{token}}\n</code></pre><h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be a JSON object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"comment\": \"string\"\n}\n</code></pre>\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>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>comment</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The new text content for the comment</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"comment\": \"Updated comment text\"\n}\n</code></pre>\n<h2 id=\"nodejs-fetch-example\">Node.js Fetch Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant-domain.com';\nconst token = 'your-auth-token';\nconst commentId = 'd7871a12-cf7a-41ac-88a5-ff69c63bb8b5';\n\nconst updateComment = async () =&gt; {\n  try {\n    const response = await fetch(\n      `https://${tenantDomain}/api/core/comment/${commentId}`,\n      {\n        method: 'PUT',\n        headers: {\n          'Content-Type': 'application/json',\n          'Authorization': `Bearer ${token}`\n        },\n        body: JSON.stringify({\n          comment: 'Updated comment text'\n        })\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const data = await response.json();\n    console.log('Comment updated successfully:', data);\n    return data;\n  } catch (error) {\n    console.error('Error updating comment:', error);\n    throw error;\n  }\n};\n\n// Call the function\nupdateComment();\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<p>The endpoint returns the updated comment object upon successful update.</p>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<p>The response contains the updated comment details.</p>\n<h2 id=\"variables-used\">Variables Used</h2>\n<ul>\n<li><code>{{tenant_domain}}</code> - Your organization's tenant domain</li>\n<li><code>{{token}}</code> - Authentication bearer token</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li>The comment ID in the URL path must be a valid UUID</li>\n<li>The comment field in the request body cannot be empty</li>\n<li>Ensure you have the necessary permissions to update the comment</li>\n</ul>\n","urlObject":{"path":["api","core","comment","d7871a12-cf7a-41ac-88a5-ff69c63bb8b5"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"0a595ae4-fb40-461c-bcd2-c8972bff16dc","name":"Update Object Comment","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"comment\": \"Nowa treść Test123dd\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/api/core/comment/d7871a12-cf7a-41ac-88a5-ff69c63bb8b5"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Tue, 21 Oct 2025 09:38:32 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Tue, 21 Oct 2025 09:38:31 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-26bff14967c18af476fa3226c492c100' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-26bff14967c18af476fa3226c492c100' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 4,\n    \"uuid\": \"46005a05-e879-4826-a64d-6e02b0c4ffa5\",\n    \"comment\": \"Nowa treść Test123\",\n    \"createdBy\": \"6bbce507-aca9-441f-87a5-64b947c580a0\",\n    \"lastModifiedAt\": \"2025-10-21T09:38:32Z\",\n    \"relatedObjectType\": \"MEDIAASSET\",\n    \"relatedObjectUuid\": \"c55a9abe-a702-424c-874d-4fd237dea70d\"\n}"}],"_postman_id":"93aa7233-07a8-46af-a17b-e3859a2b36ea"},{"name":"Delete Object Comment","id":"dfca4713-1c20-4b22-bb50-cffe223f9dd6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/comment/d7871a12-cf7a-41ac-88a5-ff69c63bb8b5","description":"<h2 id=\"delete-object-comment\">Delete Object Comment</h2>\n<p>This endpoint permanently deletes a specific comment associated with an object in the Highp platform. Once deleted, the comment cannot be recovered.</p>\n<h3 id=\"http-method\">HTTP Method</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE\n</code></pre><h3 id=\"endpoint-url\">Endpoint URL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://{{tenant_domain}}/api/core/comment/{comment_id}\n</code></pre><h3 id=\"path-parameters\">Path 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>comment_id</code></td>\n<td>UUID</td>\n<td>Yes</td>\n<td>The unique identifier of the comment to delete (e.g., <code>d7871a12-cf7a-41ac-88a5-ff69c63bb8b5</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"required-headers\">Required Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{token}}</code></td>\n<td>Authentication token required to authorize the request</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"variables\">Variables</h3>\n<ul>\n<li><strong><code>tenant_domain</code></strong>: Your Highp tenant domain (e.g., <code>testsandbox.highp.me</code>)</li>\n<li><strong><code>token</code></strong>: Your authentication bearer token</li>\n</ul>\n<h3 id=\"nodejs-fetch-example\">Node.js Fetch Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const tenantDomain = 'your-tenant.highp.me';\nconst commentId = 'd7871a12-cf7a-41ac-88a5-ff69c63bb8b5';\nconst token = 'your_access_token_here';\n\nfetch(`https://${tenantDomain}/api/core/comment/${commentId}`, {\n  method: 'DELETE',\n  headers: {\n    'Authorization': `Bearer ${token}`\n  }\n})\n  .then(response =&gt; {\n    if (response.status === 204) {\n      console.log('Comment deleted successfully');\n    } else {\n      console.error('Failed to delete comment:', response.status);\n    }\n  })\n  .catch(error =&gt; {\n    console.error('Error:', error);\n  });\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<h4 id=\"success-response-204-no-content\">Success Response (204 No Content)</h4>\n<p>When the comment is successfully deleted, the API returns a <code>204 No Content</code> status with no response body.</p>\n<p><strong>Status Code:</strong> <code>204 No Content</code></p>\n<p><strong>Response Body:</strong> Empty (no content)</p>\n<p><strong>Response Headers:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Date: Fri, 17 Oct 2025 11:03:16 GMT\nConnection: keep-alive\nCache-Control: no-cache\nX-Frame-Options: DENY\nX-Content-Type-Options: nosniff\nX-XSS-Protection: 1; mode=block\n</code></pre><h3 id=\"notes\">Notes</h3>\n<ul>\n<li>The <code>comment_id</code> must be a valid UUID format</li>\n<li>The comment must exist and be accessible by the authenticated user</li>\n<li>This is a destructive operation and cannot be undone</li>\n<li>A successful deletion returns HTTP 204 with no response body</li>\n<li>Ensure you have the necessary permissions to delete the comment</li>\n<li>The <code>tenant_domain</code> variable should match your Highp instance domain</li>\n</ul>\n","urlObject":{"path":["api","core","comment","d7871a12-cf7a-41ac-88a5-ff69c63bb8b5"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"8032eab5-c547-467a-9088-b851db86edfe","name":"Delete Object Comment","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"testsandbox.highp.me/api/core/comment/d7871a12-cf7a-41ac-88a5-ff69c63bb8b5"},"status":"No Content","code":204,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Fri, 17 Oct 2025 11:03:16 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"Fri, 17 Oct 2025 11:03:15 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Content-Security-Policy","value":"default-src 'self' https://*.fontawesome.com https://fonts.googleapis.com 'nonce-2a989543ab06e0bdad5199bda9ac1e89' https://hlg.tokbox.com https://*.opentok.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'nonce-2a989543ab06e0bdad5199bda9ac1e89' 'sha256-3TNQmiQn7PdI7g04MFjyJP63AiC+sZaeVMeOyAxmkqM='; font-src 'self' data: https://*.fontawesome.com https://fonts.googleapis.com https://fonts.gstatic.com; connect-src 'self' wss://*.tokbox.com https://*.opentok.com https://hlg.tokbox.com; img-src 'self' data: *;frame-ancestors 'none';"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"dfca4713-1c20-4b22-bb50-cffe223f9dd6"}],"id":"1647a042-5114-4e35-8848-076a8401b076","_postman_id":"1647a042-5114-4e35-8848-076a8401b076","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"b92333ab-b270-432d-99a9-6e9d40b4481a","id":"b92333ab-b270-432d-99a9-6e9d40b4481a","name":"Highp API Documentation","type":"collection"}}},{"name":"Diagrams","item":[{"name":"Diagram Operations","item":[{"name":"Get All Diagrams","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is an array\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('array');","});","","if (pm.response.json().length > 0) {","    pm.test(\"First diagram has required fields\", function () {","        const diagram = pm.response.json()[0];","        pm.expect(diagram).to.have.property('uuid');","        pm.expect(diagram).to.have.property('name');","    });","}"],"type":"text/javascript","id":"a7f36ea6-f49e-46af-a710-283f1c7c8d17"}}],"id":"8f0f7f31-8b7f-485e-a729-de0ce0bfe3b1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams","description":"<p>Retrieves all diagrams from the system (published only by default)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"8f0f7f31-8b7f-485e-a729-de0ce0bfe3b1"},{"name":"Get All Diagrams (Published Only - Default)","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is an array\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('array');","});"],"type":"text/javascript","id":"228bb8d7-ae6b-44bc-8471-5a9e07dd7ae0"}}],"id":"5b40dac4-17e9-4516-bcd3-d171fdee4a49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?status=published","description":"<p>Retrieves only published diagrams (default behavior)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Filter by status (published is default)</p>\n","type":"text/plain"},"key":"status","value":"published"}],"variable":[]}},"response":[],"_postman_id":"5b40dac4-17e9-4516-bcd3-d171fdee4a49"},{"name":"Get All Diagrams Including Drafts","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is an array\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('array');","});"],"type":"text/javascript","id":"3bf3019c-5028-4942-862d-025a39b3421d"}}],"id":"f39acee6-8161-41dc-bbd0-8cc8d2cdbb3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?status=all","description":"<p>Retrieves all diagrams including drafts</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Get all diagrams regardless of status</p>\n","type":"text/plain"},"key":"status","value":"all"}],"variable":[]}},"response":[],"_postman_id":"f39acee6-8161-41dc-bbd0-8cc8d2cdbb3c"},{"name":"Get Draft Diagrams Only","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is an array\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('array');","});"],"type":"text/javascript","id":"6e3a3604-357e-4602-91d9-a61dce5b35ea"}}],"id":"cec4d06c-4887-4c6c-86fe-20807c61be6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?status=draft","description":"<p>Retrieves only draft diagrams</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Filter only draft diagrams</p>\n","type":"text/plain"},"key":"status","value":"draft"}],"variable":[]}},"response":[],"_postman_id":"cec4d06c-4887-4c6c-86fe-20807c61be6a"},{"name":"Get Archived Diagrams Only","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is an array\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('array');","});"],"type":"text/javascript","id":"33ab4101-2846-4101-9ad9-0764d4a1a74c"}}],"id":"e167b6b1-eb6f-4bfc-8770-0b941cbf6d74","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?status=archived","description":"<p>Retrieves only archived diagrams</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Filter only archived diagrams</p>\n","type":"text/plain"},"key":"status","value":"archived"}],"variable":[]}},"response":[],"_postman_id":"e167b6b1-eb6f-4bfc-8770-0b941cbf6d74"},{"name":"Get Published Diagrams with Pagination","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is a page object\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('content');","    pm.expect(jsonData).to.have.property('pageable');","    pm.expect(jsonData).to.have.property('totalElements');","    pm.expect(jsonData).to.have.property('totalPages');","});","","pm.test(\"Content is an array with max 10 items\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData.content).to.be.an('array');","    pm.expect(jsonData.content.length).to.be.at.most(10);","});"],"type":"text/javascript","id":"3138f487-9d12-4135-b5fc-0673371ecc3a"}}],"id":"1d56ccef-8558-4b2d-8595-589e569d858a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?status=published&page=0&size=10&sort=lastModifiedAtUTC,desc","description":"<p>Retrieves published diagrams with pagination - 10 items per page</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Filter by status (published)</p>\n","type":"text/plain"},"key":"status","value":"published"},{"description":{"content":"<p>Page number (0-based)</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Number of items per page</p>\n","type":"text/plain"},"key":"size","value":"10"},{"description":{"content":"<p>Sort by field and direction (asc/desc)</p>\n","type":"text/plain"},"key":"sort","value":"lastModifiedAtUTC,desc"}],"variable":[]}},"response":[],"_postman_id":"1d56ccef-8558-4b2d-8595-589e569d858a"},{"name":"Get Draft Diagrams with Pagination","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is a page object\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('content');","    pm.expect(jsonData).to.have.property('pageable');","});"],"type":"text/javascript","id":"e50401df-e0a5-4c60-8694-e3cbe6fd0183"}}],"id":"7eb471db-cdbe-4293-a155-1f840d21d18d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?status=draft&page=0&size=10&sort=lastModifiedAtUTC,desc","description":"<p>Retrieves draft diagrams with pagination</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Filter by status (draft)</p>\n","type":"text/plain"},"key":"status","value":"draft"},{"description":{"content":"<p>Page number (0-based)</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Number of items per page</p>\n","type":"text/plain"},"key":"size","value":"10"},{"description":{"content":"<p>Sort by field and direction</p>\n","type":"text/plain"},"key":"sort","value":"lastModifiedAtUTC,desc"}],"variable":[]}},"response":[],"_postman_id":"7eb471db-cdbe-4293-a155-1f840d21d18d"},{"name":"Get Diagrams with Pagination (10 items, page 0)","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is a page object\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('content');","    pm.expect(jsonData).to.have.property('pageable');","    pm.expect(jsonData).to.have.property('totalElements');","    pm.expect(jsonData).to.have.property('totalPages');","});","","pm.test(\"Content is an array with max 10 items\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData.content).to.be.an('array');","    pm.expect(jsonData.content.length).to.be.at.most(10);","});"],"type":"text/javascript","id":"475ff9c4-49bf-4f98-8798-c29226654ea7"}}],"id":"92ac3a82-495b-4e2d-a6dd-5109d94951d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?page=0&size=10&sort=lastModifiedAtUTC,desc","description":"<p>Retrieves diagrams with pagination - 10 items per page, sorted by last modified date descending</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Page number (0-based)</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Number of items per page</p>\n","type":"text/plain"},"key":"size","value":"10"},{"description":{"content":"<p>Sort by field and direction (asc/desc)</p>\n","type":"text/plain"},"key":"sort","value":"lastModifiedAtUTC,desc"}],"variable":[]}},"response":[],"_postman_id":"92ac3a82-495b-4e2d-a6dd-5109d94951d3"},{"name":"Get Promoted Diagrams","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is a page object\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('content');","    pm.expect(jsonData).to.have.property('pageable');","});"],"type":"text/javascript","id":"410452bf-1bc6-4738-9c11-5e3b48043683"}}],"id":"f72efe89-fbd7-422a-902c-84e9d89f6a15","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?promoted=true&page=0&size=10&sort=lastModifiedAtUTC,desc","description":"<p>Retrieves only promoted diagrams with pagination</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Filter only promoted diagrams</p>\n","type":"text/plain"},"key":"promoted","value":"true"},{"description":{"content":"<p>Page number (0-based)</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Number of items per page</p>\n","type":"text/plain"},"key":"size","value":"10"},{"description":{"content":"<p>Sort by field and direction</p>\n","type":"text/plain"},"key":"sort","value":"lastModifiedAtUTC,desc"}],"variable":[]}},"response":[],"_postman_id":"f72efe89-fbd7-422a-902c-84e9d89f6a15"},{"name":"Create Diagram","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","pm.test(\"Response has UUID\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","    pm.collectionVariables.set('diagramUuid', jsonData.uuid);","});","","pm.test(\"Diagram has correct name\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData.name).to.equal('Test Diagram');","});"],"type":"text/javascript","id":"628a2455-0ca7-414b-8bd4-979f3aba7824"}}],"id":"46e92726-94f8-4f4c-b8a9-b65f369d6189","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams","description":"<p>Creates a new diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"46e92726-94f8-4f4c-b8a9-b65f369d6189"},{"name":"Get Diagram by UUID","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has cache control headers\", function () {","    pm.expect(pm.response.headers.get('Cache-Control')).to.include('no-cache');","    pm.expect(pm.response.headers.get('Pragma')).to.equal('no-cache');","});","","pm.test(\"Diagram has UUID\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"58b48a9f-4991-4822-b109-e53375116032"}}],"id":"cd47c3a5-f756-40e4-9d0d-e72fa9a5bf34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid","description":"<p>Retrieves a specific diagram by UUID (basic info only)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"cd47c3a5-f756-40e4-9d0d-e72fa9a5bf34"},{"name":"Get Diagram with Details","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response includes nodes and connections\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('nodes');","    pm.expect(jsonData).to.have.property('connections');","});"],"type":"text/javascript","id":"28184bfb-8cf7-4657-833c-23efc47232f4"}}],"id":"81f9e2b4-f069-4787-b33d-6087088a53c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams/{{diagramUuid}}?includeDetails=true","description":"<p>Retrieves diagram with nodes and connections</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams","{{diagramUuid}}"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Include nodes and connections</p>\n","type":"text/plain"},"key":"includeDetails","value":"true"}],"variable":[]}},"response":[],"_postman_id":"81f9e2b4-f069-4787-b33d-6087088a53c0"},{"name":"Update Diagram","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Diagram was updated\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"94481bc7-2463-44b2-8cf0-288b8fcfad13"}}],"id":"643ddd12-ad70-45b5-95d6-c6035f8e040a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid","description":"<p>Updates an existing diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"643ddd12-ad70-45b5-95d6-c6035f8e040a"},{"name":"Update Diagram Status to Draft","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Diagram status updated to draft\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"b4bea616-6388-469d-9593-03b5c7594ef3"}}],"id":"693159af-4c50-4fbf-a793-19b066e20714","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"metadata\": {\n    \"status\": \"draft\"\n  }\n}"},"url":"https://testsandbox.highp.me/api/core/diagrams/{{diagramUuid}}","description":"<p>Updates diagram metadata status to draft</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams","{{diagramUuid}}"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"693159af-4c50-4fbf-a793-19b066e20714"},{"name":"Update Diagram Status to Published","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Diagram status updated to published\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"3b492836-3289-43e7-a9d8-04815dde2176"}}],"id":"25f83f0f-4ac8-4ede-8295-dc6cb68bb57c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"metadata\": {\n    \"status\": \"published\"\n  }\n}"},"url":"https://testsandbox.highp.me/api/core/diagrams/{{diagramUuid}}","description":"<p>Updates diagram metadata status to published</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams","{{diagramUuid}}"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"25f83f0f-4ac8-4ede-8295-dc6cb68bb57c"},{"name":"Update Diagram Status to Archived","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Diagram status updated to archived\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"1dc7f759-df12-4f3b-87fb-3a8cf6bf4921"}}],"id":"24a593c3-89a0-40eb-9cb9-f6a9b0bb666d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"metadata\": {\n    \"status\": \"archived\"\n  }\n}"},"url":"https://testsandbox.highp.me/api/core/diagrams/{{diagramUuid}}","description":"<p>Updates diagram metadata status to archived</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams","{{diagramUuid}}"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"24a593c3-89a0-40eb-9cb9-f6a9b0bb666d"},{"name":"Search Diagrams by Name with Pagination","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is a page object\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('content');","    pm.expect(jsonData).to.have.property('totalElements');","});"],"type":"text/javascript","id":"9f7d6f4a-52f4-4dd9-a53d-d8872601a090"}}],"id":"c6e3ead1-9cfe-4033-8b01-145117dbf95d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?name=cardio&page=0&size=10&sort=lastModifiedAtUTC,desc","description":"<p>Searches diagrams by name with pagination using unified endpoint</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Search by name</p>\n","type":"text/plain"},"key":"name","value":"cardio"},{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Items per page</p>\n","type":"text/plain"},"key":"size","value":"10"},{"description":{"content":"<p>Sort parameter</p>\n","type":"text/plain"},"key":"sort","value":"lastModifiedAtUTC,desc"}],"variable":[]}},"response":[],"_postman_id":"c6e3ead1-9cfe-4033-8b01-145117dbf95d"},{"name":"Search Diagrams by Categories with Pagination","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is a page object\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('content');","    pm.expect(jsonData).to.have.property('totalElements');","});"],"type":"text/javascript","id":"0eadcd18-005b-4b97-bdb2-2f2fdae6cb76"}}],"id":"a0fb161a-4a5d-4ce5-a05a-f0003b479883","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?categories=cardiology,surgery&page=0&size=10&sort=lastModifiedAtUTC,desc","description":"<p>Searches diagrams by categories with pagination</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Comma-separated list of categories</p>\n","type":"text/plain"},"key":"categories","value":"cardiology,surgery"},{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Items per page</p>\n","type":"text/plain"},"key":"size","value":"10"},{"description":{"content":"<p>Sort parameter</p>\n","type":"text/plain"},"key":"sort","value":"lastModifiedAtUTC,desc"}],"variable":[]}},"response":[],"_postman_id":"a0fb161a-4a5d-4ce5-a05a-f0003b479883"},{"name":"Search Diagrams by Labels with Pagination","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is a page object\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('content');","});"],"type":"text/javascript","id":"8184107b-03a3-4bec-8334-bc23293d4360"}}],"id":"28a2d3ad-9c7a-4d49-af5b-d479e80bd857","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://testsandbox.highp.me/api/core/diagrams?labels=medical,cardiology&page=0&size=10&sort=lastModifiedAtUTC,desc","description":"<p>Searches diagrams by labels with pagination</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"protocol":"https","path":["api","core","diagrams"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Comma-separated list of labels</p>\n","type":"text/plain"},"key":"labels","value":"medical,cardiology"},{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Items per page</p>\n","type":"text/plain"},"key":"size","value":"10"},{"description":{"content":"<p>Sort parameter</p>\n","type":"text/plain"},"key":"sort","value":"lastModifiedAtUTC,desc"}],"variable":[]}},"response":[],"_postman_id":"28a2d3ad-9c7a-4d49-af5b-d479e80bd857"},{"name":"Delete Diagram","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});"],"type":"text/javascript","id":"0c805b07-7680-4a3e-bae9-4bced704204b"}}],"id":"fab6101c-44a4-47f6-b71d-490c0c27b865","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid","description":"<p>Deletes a diagram from the system</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"fab6101c-44a4-47f6-b71d-490c0c27b865"}],"id":"d1824f31-3d33-4529-86fc-58061cbaf050","_postman_id":"d1824f31-3d33-4529-86fc-58061cbaf050","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"Labels Management","item":[{"name":"Add Labels to Diagram","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has UUID\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"ba17a985-92dc-4355-ba9e-99530f142bb4"}}],"id":"73fee03c-bf20-4fd1-8065-cfd9da42a46b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/labels","description":"<p>Adds labels to diagram metadata</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","labels"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"73fee03c-bf20-4fd1-8065-cfd9da42a46b"},{"name":"Get Labels from Diagram","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is an array\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('array');","});"],"type":"text/javascript","id":"1b5ed892-d2f3-4f85-bf54-55cd3d00c44a"}}],"id":"a06409dc-4724-4b20-a02e-a0caecf85664","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/labels","description":"<p>Retrieves all labels from diagram metadata</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","labels"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"a06409dc-4724-4b20-a02e-a0caecf85664"}],"id":"0f601063-9836-45f9-9d84-d60da8491ad1","_postman_id":"0f601063-9836-45f9-9d84-d60da8491ad1","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"Premiere Date Management","item":[{"name":"Set Premiere Date","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has UUID\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"0f277959-9ab3-4d74-bf0e-dbf18a98e059"}}],"id":"e1a93c5e-6d2f-4df6-983d-d58e92c4b568","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/premiere-at","description":"<p>Sets the premiere date for a diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","premiere-at"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"e1a93c5e-6d2f-4df6-983d-d58e92c4b568"},{"name":"Get Premiere Date","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has premiere_at field\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('premiere_at');","});"],"type":"text/javascript","id":"c5f75d98-b659-4aaa-9c81-c768243a7a64"}}],"id":"40c4ceed-a8ca-48df-962a-bb463538b98d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/premiere-at","description":"<p>Gets the premiere date from diagram metadata</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","premiere-at"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"40c4ceed-a8ca-48df-962a-bb463538b98d"},{"name":"Remove Premiere Date","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has UUID\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"e77b88fa-a84a-4a22-a0af-e011afebbb5b"}}],"id":"2306683a-0468-4927-9ab8-6d64e529dc54","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/premiere-at","description":"<p>Removes the premiere date from diagram metadata</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","premiere-at"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"2306683a-0468-4927-9ab8-6d64e529dc54"}],"id":"2628c1e8-0c91-46ae-a032-bfc81e3c9295","_postman_id":"2628c1e8-0c91-46ae-a032-bfc81e3c9295","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"Node Operations","item":[{"name":"Get All Nodes by Diagram","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is an array\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('array');","});"],"type":"text/javascript","id":"1c8b337f-0b2b-43a4-bd5b-04c3f8b6167c"}}],"id":"419ca2ce-6d84-4c83-93bd-0f2b185c49dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/nodes","description":"<p>Retrieves all nodes belonging to a specific diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","nodes"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"419ca2ce-6d84-4c83-93bd-0f2b185c49dd"},{"name":"Create Node","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","pm.test(\"Response has nodes\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('nodes');","});"],"type":"text/javascript","id":"553c92bd-45e5-4f29-8429-9670315e4451"}}],"id":"579132bc-bca5-45cd-b42f-92356bdc6249","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/nodes","description":"<p>Creates a new node within a specific diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","nodes"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"579132bc-bca5-45cd-b42f-92356bdc6249"},{"name":"Get Node by UUID","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Has required node fields\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","    pm.expect(jsonData).to.have.property('type');","});"],"type":"text/javascript","id":"8d1fac40-3e32-4aca-a638-09823d2da4b4"}}],"id":"c28cccbd-1723-4a88-a7f3-eeadc1e1c087","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/nodes/:nodeUuid","description":"<p>Retrieves a specific node by its UUID</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","nodes",":nodeUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"},{"type":"any","value":"{{nodeUuid}}","key":"nodeUuid"}]}},"response":[],"_postman_id":"c28cccbd-1723-4a88-a7f3-eeadc1e1c087"},{"name":"Update Node","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has nodes\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('nodes');","});"],"type":"text/javascript","id":"cb93487c-d6d3-4d3f-aa5c-f42a4961abe1"}}],"id":"f917945f-8dec-4a24-ba5b-0cad7f2ddace","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/nodes/:nodeUuid","description":"<p>Updates an existing diagram node</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","nodes",":nodeUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"},{"type":"any","value":"{{nodeUuid}}","key":"nodeUuid"}]}},"response":[],"_postman_id":"f917945f-8dec-4a24-ba5b-0cad7f2ddace"},{"name":"Delete Node","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has nodes\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('nodes');","});"],"type":"text/javascript","id":"7ddf2839-25f6-4c0e-b4b6-98b1893cca9f"}}],"id":"cf9532e3-0fb2-4458-8edc-5a4158bb7f5f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/nodes/:nodeUuid","description":"<p>Deletes a diagram node</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","nodes",":nodeUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"},{"type":"any","value":"{{nodeUuid}}","key":"nodeUuid"}]}},"response":[],"_postman_id":"cf9532e3-0fb2-4458-8edc-5a4158bb7f5f"},{"name":"Remove Commentary from Node","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has nodes\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('nodes');","});"],"type":"text/javascript","id":"b66fcbb5-8947-4f93-9cda-2d26f61a7c95"}}],"id":"27f2f652-5804-4e02-a25f-5258b2665d4b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/nodes/:nodeUuid/commentaries/commentary-uuid-123","description":"<p>Removes a specific commentary from a diagram node</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","nodes",":nodeUuid","commentaries","commentary-uuid-123"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"},{"type":"any","value":"{{nodeUuid}}","key":"nodeUuid"}]}},"response":[],"_postman_id":"27f2f652-5804-4e02-a25f-5258b2665d4b"}],"id":"6342a164-b54c-45ab-b4b1-613318517276","_postman_id":"6342a164-b54c-45ab-b4b1-613318517276","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"Connection Operations","item":[{"name":"Get All Connections by Diagram","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response is an array\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('array');","});"],"type":"text/javascript","id":"c106b395-e2e0-4c8f-bed0-ddc7f0d95056"}}],"id":"9403400f-90d3-4762-be63-9f2a322c6a10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/connections","description":"<p>Retrieves all connections belonging to a specific diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","connections"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"9403400f-90d3-4762-be63-9f2a322c6a10"},{"name":"Create Connection","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","pm.test(\"Response has connections\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('connections');","});"],"type":"text/javascript","id":"bf1da01e-d067-4dcc-b4f3-f5e89134041c"}}],"id":"190edc67-4d79-44c7-9b74-d2659ef29a18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/connections","description":"<p>Creates a new connection within a specific diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","connections"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"190edc67-4d79-44c7-9b74-d2659ef29a18"},{"name":"Get Connection by UUID","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Has required connection fields\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","    pm.expect(jsonData).to.have.property('sourceId');","    pm.expect(jsonData).to.have.property('targetId');","});"],"type":"text/javascript","id":"af8df86a-9060-453c-a8d0-b298ebcda673"}}],"id":"7f0a19ee-f2b6-4b0d-99a9-5ccf4cbf8183","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/connections/:connectionUuid","description":"<p>Retrieves a specific connection by its UUID</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","connections",":connectionUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"},{"type":"any","value":"{{connectionUuid}}","key":"connectionUuid"}]}},"response":[],"_postman_id":"7f0a19ee-f2b6-4b0d-99a9-5ccf4cbf8183"},{"name":"Update Connection","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has connections\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('connections');","});"],"type":"text/javascript","id":"0c21e42e-f384-4f4c-842e-e7368efc9093"}}],"id":"2fd1cc29-a8d0-4313-b4a0-5faa6491d749","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/connections/:connectionUuid","description":"<p>Updates an existing diagram connection</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","connections",":connectionUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"},{"type":"any","value":"{{connectionUuid}}","key":"connectionUuid"}]}},"response":[],"_postman_id":"2fd1cc29-a8d0-4313-b4a0-5faa6491d749"},{"name":"Delete Connection","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has connections\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('connections');","});"],"type":"text/javascript","id":"b0348b76-3f0a-4043-9a8d-bc6b904b3d3c"}}],"id":"a2d4dae3-0094-4cce-9e93-e37fae5dc750","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/connections/:connectionUuid","description":"<p>Deletes a diagram connection</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","connections",":connectionUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"},{"type":"any","value":"{{connectionUuid}}","key":"connectionUuid"}]}},"response":[],"_postman_id":"a2d4dae3-0094-4cce-9e93-e37fae5dc750"},{"name":"Replace All Connections","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has UUID\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"a0aa8816-abd3-43f7-aa42-636acc363e5a"}}],"id":"e8aedf89-cba7-4686-931c-2718d0f9e19d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/connections/replace","description":"<p>Replaces all connections in a diagram with a new set</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","connections","replace"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"e8aedf89-cba7-4686-931c-2718d0f9e19d"}],"id":"f70a50a4-4881-4e8d-ace6-5e46c2c15fa5","_postman_id":"f70a50a4-4881-4e8d-ace6-5e46c2c15fa5","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"Bulk Operations","item":[{"name":"Bulk Save Diagram with Nodes and Connections","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has UUID\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"47d724e7-6924-4987-bc2d-bc75352d98a1"}}],"id":"14c9c507-18d2-4783-9684-be542bd5d0fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/bulk","description":"<p>Performs bulk save operation for diagram with nodes and connections</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","bulk"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"14c9c507-18d2-4783-9684-be542bd5d0fa"},{"name":"Export Diagram","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has diagram and export metadata\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('diagram');","    pm.expect(jsonData).to.have.property('exportedAt');","});"],"type":"text/javascript","id":"bf07962f-6448-4643-b931-2b6bbbfd732f"}}],"id":"9888cd82-f758-457f-9c42-8c080bb5711e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/export","description":"<p>Exports a complete diagram with all its nodes and connections</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","export"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"9888cd82-f758-457f-9c42-8c080bb5711e"},{"name":"Get Diagram Data (DTO)","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has cache control headers\", function () {","    pm.expect(pm.response.headers.get('Cache-Control')).to.include('no-cache');","});"],"type":"text/javascript","id":"1b01035b-3225-4269-941a-0e7c8ec26991"}}],"id":"dbfd8e36-7354-4862-abdd-afe689f30c6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/data","description":"<p>Retrieves diagram data in structured DTO format with nodes and connections</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","data"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"dbfd8e36-7354-4862-abdd-afe689f30c6a"}],"id":"871a21fc-d986-49ae-8942-f5e7b02b4f68","_postman_id":"871a21fc-d986-49ae-8942-f5e7b02b4f68","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"View Tracking & Interactions","item":[{"name":"View Diagram (GET - Records View)","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has UUID\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('uuid');","});"],"type":"text/javascript","id":"b04373af-0533-4b7e-b12c-07bba3c7ea13"}}],"id":"d85ef1f3-ecb8-4937-b858-542b12114390","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/view","description":"<p>Retrieves diagram data and records a view event</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","view"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"d85ef1f3-ecb8-4937-b858-542b12114390"},{"name":"Record Diagram View (POST)","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response indicates recorded\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData.recorded).to.be.true;","});"],"type":"text/javascript","id":"65b0d99f-3c20-43c7-9a59-d2e9777ec157"}}],"id":"56cf94f6-552e-4fef-b175-41534557c407","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/view","description":"<p>Records a view event for a diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","view"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"56cf94f6-552e-4fef-b175-41534557c407"},{"name":"Record Love Interaction","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});"],"type":"text/javascript","id":"2b8b3c78-c966-41f5-b9a0-6d9a669106bf"}}],"id":"aa0d2ce8-3d54-420f-b6e7-6d58e5264bf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/interaction/love","description":"<p>Records a love interaction for a diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","interaction","love"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"aa0d2ce8-3d54-420f-b6e7-6d58e5264bf3"},{"name":"Record Like Interaction","id":"b703c667-9f82-49d6-ba8c-3cd1c133336a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/interaction/like","description":"<p>Records a like interaction for a diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","interaction","like"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"b703c667-9f82-49d6-ba8c-3cd1c133336a"},{"name":"Record Dislike Interaction","id":"d92845b1-27f7-4268-94f0-e44eab8bd203","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/interaction/dislike","description":"<p>Records a dislike interaction for a diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","interaction","dislike"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"d92845b1-27f7-4268-94f0-e44eab8bd203"},{"name":"Record Recommend Interaction","id":"4d7ae092-7a49-4ff1-8915-ba6932f334d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/interaction/recommend","description":"<p>Records a recommend interaction for a diagram</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","interaction","recommend"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"4d7ae092-7a49-4ff1-8915-ba6932f334d6"},{"name":"Get Love Interaction Count","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200 or 429\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 429]);","});","","pm.test(\"Response has interaction info\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('diagramUuid');","    pm.expect(jsonData).to.have.property('interactionType');","});"],"type":"text/javascript","id":"2fcc1644-316e-4f9f-95b4-7466722848b1"}}],"id":"2406d400-ffba-442e-b85f-f3ddcd004606","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/interaction/love","description":"<p>Gets love interaction count for a diagram (also records the interaction)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","interaction","love"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"2406d400-ffba-442e-b85f-f3ddcd004606"},{"name":"Get Like Interaction Count","id":"5e54eb32-401c-4814-a08b-f1cd5f8abab4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/interaction/like","description":"<p>Gets like interaction count for a diagram (also records the interaction)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","interaction","like"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"5e54eb32-401c-4814-a08b-f1cd5f8abab4"},{"name":"Get Dislike Interaction Count","id":"b7d55a6a-bb3e-45a8-9800-d5e205f66b74","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/interaction/dislike","description":"<p>Gets dislike interaction count for a diagram (also records the interaction)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","interaction","dislike"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"b7d55a6a-bb3e-45a8-9800-d5e205f66b74"},{"name":"Get Recommend Interaction Count","id":"7cdb9f82-13d5-4b4d-a37c-274cbb46fdfb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/:diagramUuid/interaction/recommend","description":"<p>Gets recommend interaction count for a diagram (also records the interaction)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams",":diagramUuid","interaction","recommend"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{diagramUuid}}","key":"diagramUuid"}]}},"response":[],"_postman_id":"7cdb9f82-13d5-4b4d-a37c-274cbb46fdfb"},{"name":"Get View Tracking Stats","id":"c43d706d-f015-427c-a30b-a214800e1d7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/view-stats","description":"<p>Gets view tracking statistics for monitoring</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams","view-stats"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"c43d706d-f015-427c-a30b-a214800e1d7e"},{"name":"Clear View Tracking Data","id":"825ca1dd-a98b-4c7a-81cf-31ef1db24f82","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/diagrams/view-data","description":"<p>Clears all view tracking data (for testing/maintenance)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams","view-data"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"825ca1dd-a98b-4c7a-81cf-31ef1db24f82"}],"id":"7e062794-6925-4d53-a5c0-0053f35ccc99","_postman_id":"7e062794-6925-4d53-a5c0-0053f35ccc99","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"Box Office Rankings","item":[{"name":"Get Box Office Rankings (Views)","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has cache control\", function () {","    pm.expect(pm.response.headers.get('Cache-Control')).to.include('max-age');","});"],"type":"text/javascript","id":"56ae0886-c1d5-4f8d-a296-a91b98eec267"}}],"id":"1fb567ab-f134-42ca-add0-9b4658e2c922","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/box-office","description":"<p>Gets box office rankings for diagrams (default: view interactions, 30 days)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams","box-office"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"1fb567ab-f134-42ca-add0-9b4658e2c922"},{"name":"Get Box Office Rankings (Love)","id":"fb02a392-759e-4753-94dc-2be55e291857","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/box-office/love?period=30days","description":"<p>Gets box office rankings by love interactions over 30 days</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams","box-office","love"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Time period (30days, 7days, alltime)</p>\n","type":"text/plain"},"key":"period","value":"30days"}],"variable":[]}},"response":[],"_postman_id":"fb02a392-759e-4753-94dc-2be55e291857"},{"name":"Get Box Office Rankings (Likes)","id":"d7ff4b7b-98ea-4595-b535-f9424b760e6f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/box-office/like?period=7days","description":"<p>Gets box office rankings by like interactions over 7 days</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams","box-office","like"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Time period (30days, 7days, alltime)</p>\n","type":"text/plain"},"key":"period","value":"7days"}],"variable":[]}},"response":[],"_postman_id":"d7ff4b7b-98ea-4595-b535-f9424b760e6f"},{"name":"Get Box Office Rankings (All Time)","id":"d0871a9e-0527-4ceb-99d6-9637c0a9897f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagrams/box-office/view?period=alltime","description":"<p>Gets all-time box office rankings by view interactions</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagrams","box-office","view"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>All time rankings</p>\n","type":"text/plain"},"key":"period","value":"alltime"}],"variable":[]}},"response":[],"_postman_id":"d0871a9e-0527-4ceb-99d6-9637c0a9897f"}],"id":"d0da7520-95b1-4361-9bc7-c021cd81701f","_postman_id":"d0da7520-95b1-4361-9bc7-c021cd81701f","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"Session Management","item":[{"name":"Create Session","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","pm.test(\"Response has session info\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('sessionUuid');","    pm.collectionVariables.set('sessionUuid', jsonData.sessionUuid);","});"],"type":"text/javascript","id":"ee2a470c-1b69-4227-b994-769f42999c39"}}],"id":"f675ca3f-024f-44a5-8a7f-452833dd3481","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagram-sessions","description":"<p>Creates a new diagram viewing session</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-sessions"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"f675ca3f-024f-44a5-8a7f-452833dd3481"},{"name":"Get Session","id":"7954961d-b221-433b-bd8c-fb0b07f7f15c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-sessions/:sessionUuid","description":"<p>Retrieves session details by UUID</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-sessions",":sessionUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{sessionUuid}}","key":"sessionUuid"}]}},"response":[],"_postman_id":"7954961d-b221-433b-bd8c-fb0b07f7f15c"},{"name":"List Sessions","id":"2b3cf913-4ceb-425b-b08e-ce5fec5d11c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-sessions?page=0&size=10","description":"<p>Lists sessions with pagination (REQUIRES JWT AUTH)</p>\n","urlObject":{"path":["api","core","diagram-sessions"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Items per page</p>\n","type":"text/plain"},"key":"size","value":"10"}],"variable":[]}},"response":[],"_postman_id":"2b3cf913-4ceb-425b-b08e-ce5fec5d11c1"},{"name":"Update Session","id":"caa13827-73a8-419d-8a0a-ba1121d68038","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagram-sessions/:sessionUuid","description":"<p>Updates session metadata</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-sessions",":sessionUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{sessionUuid}}","key":"sessionUuid"}]}},"response":[],"_postman_id":"caa13827-73a8-419d-8a0a-ba1121d68038"},{"name":"Delete Session","id":"3d02be31-75b1-402f-b147-ad99d9ea8281","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"testsandbox.highp.me/api/core/diagram-sessions/:sessionUuid","description":"<p>Deletes a session and all associated events</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-sessions",":sessionUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{sessionUuid}}","key":"sessionUuid"}]}},"response":[],"_postman_id":"3d02be31-75b1-402f-b147-ad99d9ea8281"},{"name":"Add User to Session as Participant","id":"7f9293bd-bcda-45db-870a-dd71acf5ca97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"testsandbox.highp.me/api/core/diagram-sessions/:sessionUuid/users/:userUuid?role=participant","description":"<p>Adds a user to the session as a participant</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-sessions",":sessionUuid","users",":userUuid"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>User role: participant or moderator</p>\n","type":"text/plain"},"key":"role","value":"participant"}],"variable":[{"type":"any","value":"{{sessionUuid}}","key":"sessionUuid"},{"type":"any","value":"{{userUuid}}","key":"userUuid"}]}},"response":[],"_postman_id":"7f9293bd-bcda-45db-870a-dd71acf5ca97"},{"name":"Update Session Duration","id":"8335b5d4-2cb0-422a-849e-2b98e19271ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"testsandbox.highp.me/api/core/diagram-sessions/:sessionUuid/duration?durationInSeconds=600","description":"<p>Updates the session duration</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-sessions",":sessionUuid","duration"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Duration in seconds</p>\n","type":"text/plain"},"key":"durationInSeconds","value":"600"}],"variable":[{"type":"any","value":"{{sessionUuid}}","key":"sessionUuid"}]}},"response":[],"_postman_id":"8335b5d4-2cb0-422a-849e-2b98e19271ac"},{"name":"Get All Invitations","id":"7fc7b7a7-cdfa-4206-bb16-79441e00c2b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-sessions/:sessionUuid/invitations","description":"<p>Gets all invitations for a session</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-sessions",":sessionUuid","invitations"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{sessionUuid}}","key":"sessionUuid"}]}},"response":[],"_postman_id":"7fc7b7a7-cdfa-4206-bb16-79441e00c2b9"},{"name":"Update User Invitation","id":"0390246e-8a54-489f-9cd0-0dba87f0708e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagram-sessions/:sessionUuid/invitations/:userUuid","description":"<p>Updates invitation state (sent, delivered, opened)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-sessions",":sessionUuid","invitations",":userUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{sessionUuid}}","key":"sessionUuid"},{"type":"any","value":"{{userUuid}}","key":"userUuid"}]}},"response":[],"_postman_id":"0390246e-8a54-489f-9cd0-0dba87f0708e"}],"id":"ea1b2f03-486c-49cb-9c85-3c75617db757","_postman_id":"ea1b2f03-486c-49cb-9c85-3c75617db757","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}},{"name":"Event Tracking","item":[{"name":"Create Event","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","pm.test(\"Response has event info\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('eventUuid');","    pm.collectionVariables.set('eventUuid', jsonData.eventUuid);","});"],"type":"text/javascript","id":"bc86cc24-fe67-45d6-aec8-dcc6845c4c81"}}],"id":"a05755dd-22a0-47f9-9359-3c19b218d253","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"testsandbox.highp.me/api/core/diagram-events","description":"<p>Creates a new event tracking user interaction</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-events"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"a05755dd-22a0-47f9-9359-3c19b218d253"},{"name":"Get Event","id":"965c7630-bd42-44a3-a3c3-418d18ddc322","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-events/:eventUuid","description":"<p>Retrieves event details by UUID (REQUIRES JWT AUTH)</p>\n","urlObject":{"path":["api","core","diagram-events",":eventUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{eventUuid}}","key":"eventUuid"}]}},"response":[],"_postman_id":"965c7630-bd42-44a3-a3c3-418d18ddc322"},{"name":"List Events","id":"816ffa09-80e8-4e3c-b603-54f1de91ef13","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-events?page=0&size=20&sort=createdAt,desc","description":"<p>Lists events with pagination (REQUIRES JWT AUTH)</p>\n","urlObject":{"path":["api","core","diagram-events"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>Items per page</p>\n","type":"text/plain"},"key":"size","value":"20"},{"description":{"content":"<p>Sort by field and direction</p>\n","type":"text/plain"},"key":"sort","value":"createdAt,desc"}],"variable":[]}},"response":[],"_postman_id":"816ffa09-80e8-4e3c-b603-54f1de91ef13"},{"name":"Get Events by Session","id":"e7e476fc-1472-4761-8721-ba973b5c75b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-events/session/:sessionUuid","description":"<p>Gets all events for a specific session (REQUIRES JWT AUTH)</p>\n","urlObject":{"path":["api","core","diagram-events","session",":sessionUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{sessionUuid}}","key":"sessionUuid"}]}},"response":[],"_postman_id":"e7e476fc-1472-4761-8721-ba973b5c75b5"},{"name":"Get Events by User","id":"fffc7346-0dac-440d-9ead-7bad9d21da78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-events/user/:userUuid","description":"<p>Gets all events for a specific user (REQUIRES JWT AUTH)</p>\n","urlObject":{"path":["api","core","diagram-events","user",":userUuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{userUuid}}","key":"userUuid"}]}},"response":[],"_postman_id":"fffc7346-0dac-440d-9ead-7bad9d21da78"},{"name":"Get Event Statistics","id":"865783df-d540-4098-be77-a313ab61b673","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-events/stats?sessionUuid={{sessionUuid}}","description":"<p>Gets event statistics for a session (REQUIRES JWT AUTH)</p>\n","urlObject":{"path":["api","core","diagram-events","stats"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Session UUID for statistics</p>\n","type":"text/plain"},"key":"sessionUuid","value":"{{sessionUuid}}"}],"variable":[]}},"response":[],"_postman_id":"865783df-d540-4098-be77-a313ab61b673"},{"name":"Get Event Names","id":"e7e6f79d-6431-4cd4-aeb2-b55c1516dac7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-events/event-names","description":"<p>Gets all available event names for tracking</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-events","event-names"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"e7e6f79d-6431-4cd4-aeb2-b55c1516dac7"},{"name":"Validate Event Name","id":"a53753b2-bcd9-42ff-95ea-62e2bb133e83","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"testsandbox.highp.me/api/core/diagram-events/validate-event-name?eventName=NODE_CLICKED","description":"<p>Validates if an event name is recognized</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}},"urlObject":{"path":["api","core","diagram-events","validate-event-name"],"host":["testsandbox.highp.me"],"query":[{"description":{"content":"<p>Event name to validate</p>\n","type":"text/plain"},"key":"eventName","value":"NODE_CLICKED"}],"variable":[]}},"response":[],"_postman_id":"a53753b2-bcd9-42ff-95ea-62e2bb133e83"}],"id":"208121f5-8358-4399-88ec-184726859f63","_postman_id":"208121f5-8358-4399-88ec-184726859f63","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","id":"47e56522-c6f9-4adc-a915-d17633b88e7a","name":"Diagrams","type":"folder"}}}],"id":"47e56522-c6f9-4adc-a915-d17633b88e7a","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"8030c7d0-57e5-4719-86fd-b5f2f43f8631","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"cc66a6cb-f3f2-4538-848c-c9260db3270c","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"47e56522-c6f9-4adc-a915-d17633b88e7a","description":""},{"name":"Folders","item":[{"name":"Get Folder Hierarchy","id":"052af7d2-e21d-497d-9e75-4a8b1a7afc41","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"testsandbox.highp.me/folders","description":"<p>Get the complete folder hierarchy. Returns only folders the current user has access to (public folders + private folders where user is allowed).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"55567a6a-8c2e-405e-8428-78129161fa71","id":"55567a6a-8c2e-405e-8428-78129161fa71","name":"Folders","type":"folder"}},"urlObject":{"path":["folders"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[],"_postman_id":"052af7d2-e21d-497d-9e75-4a8b1a7afc41"},{"name":"Create Single Folder","id":"ad0147ce-8289-48aa-afd2-8ea89c02cafc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"parentFolderUuid\": null,\n  \"folderName\": \"Documents\",\n  \"isPublic\": true,\n  \"allowedUsers\": []\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/folders","description":"<p>Create a single folder. Set parentFolderUuid to null for root folders, or provide a UUID to create a child folder. Requires PM_ROLE or TRUSTED_CLIENT_ROLE.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"55567a6a-8c2e-405e-8428-78129161fa71","id":"55567a6a-8c2e-405e-8428-78129161fa71","name":"Folders","type":"folder"}},"urlObject":{"path":["folders"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"8e69a083-3148-498a-a64c-3dacbf58ece4","name":"Create Single Folder on Root","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"parentFolderUuid\": null,\n  \"folderName\": \"Documents\",\n  \"isPublic\": true,\n  \"allowedUsers\": []\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/folders"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Server","value":"nginx/1.18.0 (Ubuntu)"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Wed, 14 Jan 2026 20:11:17 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"12094c44-9b3a-4ac9-b2eb-91d0d33a8d4e\",\n    \"name\": \"Documents\",\n    \"createdAt\": \"2026-01-14T20:11:16.924148Z[UTC]\",\n    \"lastModifiedAt\": \"2026-01-14T20:11:16.924195Z[UTC]\",\n    \"createdBy\": \"31e26dac-5af7-4635-8d51-8c82e9a15b6f\",\n    \"isPublic\": true,\n    \"allowedUsers\": [],\n    \"children\": []\n}"}],"_postman_id":"ad0147ce-8289-48aa-afd2-8ea89c02cafc"},{"name":"Create Child Folder","id":"b3dbe8c2-f01f-4737-8fe5-2a6e09ca2adc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"raw","raw":"{\n  \"parentFolderUuid\": \"{{parent_folder_uuid}}\",\n  \"folderName\": \"Projects\",\n  \"isPublic\": false,\n  \"allowedUsers\": [\"user-uuid-1\", \"user-uuid-2\"]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/folders","description":"<p>Create a child folder under an existing parent. This example creates a private folder accessible only to specified users. Requires PM_ROLE or TRUSTED_CLIENT_ROLE.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"55567a6a-8c2e-405e-8428-78129161fa71","id":"55567a6a-8c2e-405e-8428-78129161fa71","name":"Folders","type":"folder"}},"urlObject":{"path":["folders"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"d381f049-557a-4595-9d05-f4f61ca00614","name":"Create Single Folder in Parent","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"raw","raw":"{\n  \"parentFolderUuid\": \"12094c44-9b3a-4ac9-b2eb-91d0d33a8d4e\",\n  \"folderName\": \"Demo\",\n  \"isPublic\": true,\n  \"allowedUsers\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://testsandbox.highp.me/api/core/folders"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.18.0 (Ubuntu)"},{"key":"Date","value":"Wed, 14 Jan 2026 20:12:00 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Application-Context","value":"coreserver"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"363c816e-8827-4256-b802-f9dd1d17ff30\",\n    \"name\": \"Demo\",\n    \"createdAt\": \"2026-01-14T20:12:00.299407Z[UTC]\",\n    \"lastModifiedAt\": \"2026-01-14T20:12:00.299430Z[UTC]\",\n    \"createdBy\": \"31e26dac-5af7-4635-8d51-8c82e9a15b6f\",\n    \"isPublic\": true,\n    \"allowedUsers\": [],\n    \"children\": []\n}"}],"_postman_id":"b3dbe8c2-f01f-4737-8fe5-2a6e09ca2adc"},{"name":"Create Folders from Path","id":"32aab665-b2f8-4ff7-8eec-e3dce90d16aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"folderPath\": \"/Documents/Projects/2024\",\n  \"isPublic\": true,\n  \"allowedUsers\": []\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/folders/path","description":"<p>Create multiple folders from a path string. This will create all missing folders in the path. For example, '/Documents/Projects/2024' will create Documents, Projects, and 2024 if they don't exist. Requires PM_ROLE or TRUSTED_CLIENT_ROLE.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"55567a6a-8c2e-405e-8428-78129161fa71","id":"55567a6a-8c2e-405e-8428-78129161fa71","name":"Folders","type":"folder"}},"urlObject":{"path":["folders","path"],"host":["testsandbox.highp.me"],"query":[],"variable":[]}},"response":[{"id":"57d885c3-df1b-4bb4-9525-15be1ea54019","name":"Create Folders from Path","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"folderPath\": \"/Documents/Projects/2024\",\n  \"isPublic\": true,\n  \"allowedUsers\": []\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"testsandbox.highp.me/folders/path"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Server","value":"nginx/1.18.0 (Ubuntu)"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Date","value":"Wed, 14 Jan 2026 20:12:54 GMT"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Transfer-Encoding","value":"chunked"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Connection","value":"keep-alive"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Expires","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-XSS-Protection","value":"1; mode=block"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Pragma","value":"no-cache"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Frame-Options","value":"DENY"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Vary","value":"Access-Control-Request-Headers"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Content-Type-Options","value":"nosniff"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"X-Application-Context","value":"coreserver"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"uuid\": \"c4f9792d-d279-4404-994f-aba92ff7b630\",\n    \"name\": \"2024\",\n    \"createdAt\": \"2026-01-14T20:12:54.758706Z[UTC]\",\n    \"lastModifiedAt\": \"2026-01-14T20:12:54.758711Z[UTC]\",\n    \"createdBy\": \"31e26dac-5af7-4635-8d51-8c82e9a15b6f\",\n    \"isPublic\": true,\n    \"allowedUsers\": [],\n    \"children\": []\n}"}],"_postman_id":"32aab665-b2f8-4ff7-8eec-e3dce90d16aa"},{"name":"Create Private Folder Path","id":"8129d694-18f4-447b-b131-4022442f8bfb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"raw","raw":"{\n  \"folderPath\": \"/Private/Confidential/Reports\",\n  \"isPublic\": false,\n  \"allowedUsers\": [\"user-uuid-1\", \"user-uuid-2\", \"user-uuid-3\"]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/folders/path","description":"<p>Create a private folder hierarchy with restricted access. Only specified users (plus the creator) will be able to access these folders. Requires PM_ROLE or TRUSTED_CLIENT_ROLE.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"55567a6a-8c2e-405e-8428-78129161fa71","id":"55567a6a-8c2e-405e-8428-78129161fa71","name":"Folders","type":"folder"}},"urlObject":{"path":["folders","path"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8129d694-18f4-447b-b131-4022442f8bfb"},{"name":"Get Folder Path","id":"afbb0a0a-1499-42ae-9e55-d7a6d933be2b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"testsandbox.highp.me/folders/:folder_uuid/path","description":"<p>Get the full path of a folder as a string (e.g., '/Documents/Projects/2024'). Replace {{folder_uuid}} with the actual folder UUID.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"55567a6a-8c2e-405e-8428-78129161fa71","id":"55567a6a-8c2e-405e-8428-78129161fa71","name":"Folders","type":"folder"}},"urlObject":{"path":["folders",":folder_uuid","path"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{folder_uuid}}","key":"folder_uuid"}]}},"response":[],"_postman_id":"afbb0a0a-1499-42ae-9e55-d7a6d933be2b"},{"name":"Delete Folder","id":"cbe16f12-8f1e-421e-8111-3601989d01da","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"testsandbox.highp.me/folders/:folder_uuid","description":"<p>Delete a folder and all its children. This operation is irreversible. Replace {{folder_uuid}} with the actual folder UUID. Requires PM_ROLE or TRUSTED_CLIENT_ROLE.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"55567a6a-8c2e-405e-8428-78129161fa71","id":"55567a6a-8c2e-405e-8428-78129161fa71","name":"Folders","type":"folder"}},"urlObject":{"path":["folders",":folder_uuid"],"host":["testsandbox.highp.me"],"query":[],"variable":[{"type":"any","value":"{{folder_uuid}}","key":"folder_uuid"}]}},"response":[],"_postman_id":"cbe16f12-8f1e-421e-8111-3601989d01da"}],"id":"55567a6a-8c2e-405e-8428-78129161fa71","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"50147951-f793-464b-b407-3105c15b7acf","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"7d85c578-02d0-4fd2-a3bd-06c3d01854d1","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"55567a6a-8c2e-405e-8428-78129161fa71","description":""}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]}},"event":[{"listen":"prerequest","script":{"id":"4ed5e817-fd24-48b1-adb4-42fca5044b7b","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"fc374d48-da6e-4c6a-a685-e2613313efa2","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"version","value":"0.1"},{"key":"tenant-domain","value":"testsandbox.highp.me"},{"key":"baseUrl","value":"testsandbox.highp.me"},{"key":"campaignUuid","value":"","type":"default"},{"key":"fieldName","value":"","type":"default"}]}