{"id":877,"date":"2025-09-29T12:14:03","date_gmt":"2025-09-29T12:14:03","guid":{"rendered":"https:\/\/protolinker.com\/?page_id=877"},"modified":"2026-05-05T09:00:58","modified_gmt":"2026-05-05T09:00:58","slug":"signup","status":"publish","type":"page","link":"https:\/\/protolinker.com\/pt\/signup\/","title":{"rendered":"signup"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"877\" class=\"elementor elementor-877\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0ccbddf e-flex e-con-boxed e-con e-parent\" data-id=\"0ccbddf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-883fbcf elementor-widget elementor-widget-html\" data-id=\"883fbcf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"pl-signup-section signup-page\" id=\"signup\">\n  <div class=\"pl-signup-card signup-box\">\n    <a href=\"\/protolinker\/login\/\" class=\"signin-link\">Sign in instead<\/a>\n\n    <div class=\"logo-box\">\n      <a href=\"\/\">\n        <img decoding=\"async\" src=\"https:\/\/protolinker.com\/wp-content\/uploads\/2025\/09\/logo.png\" alt=\"Protolinker Logo\">\n      <\/a>\n    <\/div>\n\n    <div class=\"pl-signup-header\">\n      <span class=\"pl-section-kicker\">Create account<\/span>\n      <h2>Start building with Protolinker<\/h2>\n      <p>\n        Create your account, keep your selected plan, and continue to the dashboard to start connecting industrial data.\n      <\/p>\n    <\/div>\n\n    <form id=\"signupForm\">\n      <label class=\"pl-field\" for=\"email\">\n        <span>Email<\/span>\n        <input type=\"email\" id=\"email\" placeholder=\"Enter your email\" required>\n      <\/label>\n\n      <div class=\"pl-field password-wrapper\">\n        <label for=\"password\">Password<\/label>\n        <input type=\"password\" id=\"password\" placeholder=\"Choose a password\" required>\n        <button type=\"button\" class=\"toggle-password\">Show<\/button>\n      <\/div>\n\n      <div class=\"hint\">\n        Use at least 8 characters with uppercase, lowercase, number, and one symbol: !@#$%^&amp;*\n      <\/div>\n\n      <label class=\"checkbox-wrapper\">\n        <input type=\"checkbox\" id=\"terms\">\n        <p>\n          I have read the\n          <a href=\"http:\/\/protolinker.com\/en\/privacy-policy\/\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy<\/a>,\n          the\n          <a href=\"https:\/\/protolinker.com\/en\/data-compliance-and-security\/\" target=\"_blank\" rel=\"noopener noreferrer\">Data Compliance<\/a>,\n          and accept the\n          <a href=\"https:\/\/protolinker.com\/terms-of-service\" target=\"_blank\" rel=\"noopener noreferrer\">Terms of Service<\/a><span class=\"required-mark\">*<\/span>\n        <\/p>\n      <\/label>\n\n      <button type=\"submit\" id=\"submitBtn\" class=\"submit-btn\" disabled>Next<\/button>\n    <\/form>\n  <\/div>\n<\/section>\n\n<div id=\"loaderOverlay\" class=\"loader-overlay\">\n  <div class=\"loader\"><\/div>\n<\/div>\n\n<script>\n  (function () {\n    function onReady(callback) {\n      if (document.readyState === \"loading\") {\n        document.addEventListener(\"DOMContentLoaded\", callback);\n      } else {\n        callback();\n      }\n    }\n\n    function parseSearchParams(search) {\n      var params = {};\n      var query = String(search || \"\").replace(\/^\\?\/, \"\");\n\n      if (!query) {\n        return params;\n      }\n\n      query.split(\"&\").forEach(function (part) {\n        if (!part) {\n          return;\n        }\n\n        var pieces = part.split(\"=\");\n        var key = decodeURIComponent((pieces[0] || \"\").replace(\/\\+\/g, \" \"));\n\n        if (!key) {\n          return;\n        }\n\n        var value = decodeURIComponent((pieces.slice(1).join(\"=\") || \"\").replace(\/\\+\/g, \" \"));\n        params[key] = value;\n      });\n\n      return params;\n    }\n\n    function buildQuery(params) {\n      var parts = [];\n\n      Object.keys(params).forEach(function (key) {\n        var value = params[key];\n\n        if (value === undefined || value === null || value === \"\") {\n          return;\n        }\n\n        parts.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(String(value)));\n      });\n\n      return parts.join(\"&\");\n    }\n\n    function hasValue(list, value) {\n      return list.indexOf(value) !== -1;\n    }\n\n    function getCurrentLanguagePrefix() {\n      var path = window.location.pathname || \"\";\n\n      if (path.indexOf(\"\/pt\/\") === 0 || path === \"\/pt\") {\n        return \"\/pt\";\n      }\n\n      if (path.indexOf(\"\/en\/\") === 0 || path === \"\/en\") {\n        return \"\/en\";\n      }\n\n      return \"\";\n    }\n\n    function getLocalizedPath(defaultPath) {\n      var langPrefix = getCurrentLanguagePrefix();\n\n      defaultPath = String(defaultPath || \"\");\n\n      if (defaultPath.charAt(0) !== \"\/\") {\n        defaultPath = \"\/\" + defaultPath;\n      }\n\n      return langPrefix + defaultPath;\n    }\n\n    onReady(function () {\n      var signupSection = document.querySelector(\".pl-signup-section\");\n\n      if (!signupSection) {\n        return;\n      }\n\n      var emailInput = signupSection.querySelector(\"#email\");\n      var pwInput = signupSection.querySelector(\"#password\");\n      var termsCheckbox = signupSection.querySelector(\"#terms\");\n      var submitBtn = signupSection.querySelector(\"#submitBtn\");\n      var form = signupSection.querySelector(\"#signupForm\");\n      var loader = document.getElementById(\"loaderOverlay\") || document.querySelector(\".loader-overlay\");\n      var signinLink = signupSection.querySelector(\".signin-link\");\n      var passwordToggle = signupSection.querySelector(\".toggle-password\");\n\n      if (!emailInput || !pwInput || !termsCheckbox || !submitBtn || !form) {\n        return;\n      }\n\n      var queryParams = parseSearchParams(window.location.search);\n      var validPlans = [\"free\", \"start\", \"pro\", \"max\"];\n      var validCurrencies = [\"usd\", \"brl\", \"eur\"];\n\n      function getRequestedPlan() {\n        var plan = String(queryParams.plan || \"\").trim().toLowerCase();\n        return hasValue(validPlans, plan) ? plan : \"\";\n      }\n\n      function getRequestedCurrency() {\n        var currency = String(queryParams.currency || \"\").trim().toLowerCase();\n        return hasValue(validCurrencies, currency) ? currency.toUpperCase() : \"\";\n      }\n\n      var requestedPlan = getRequestedPlan() || \"free\";\n      var requestedCurrency = getRequestedCurrency();\n\n      if (signinLink) {\n        var signinParams = {};\n\n        if (getRequestedPlan()) {\n          signinParams.plan = requestedPlan;\n        }\n\n        if (requestedCurrency) {\n          signinParams.currency = requestedCurrency.toLowerCase();\n        }\n\n        var signinQuery = buildQuery(signinParams);\n        var signinPath = getLocalizedPath(\"\/protolinker\/login\/\");\n\n        signinLink.href = signinPath + (signinQuery ? \"?\" + signinQuery : \"\");\n      }\n\n      function setLoaderVisible(isVisible) {\n        if (loader) {\n          loader.style.display = isVisible ? \"flex\" : \"none\";\n        }\n      }\n\n      function togglePassword() {\n        pwInput.type = pwInput.type === \"password\" ? \"text\" : \"password\";\n\n        if (passwordToggle) {\n          passwordToggle.textContent = pwInput.type === \"password\" ? \"Show\" : \"Hide\";\n        }\n      }\n\n      function validatePassword(pw) {\n        return \/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*]).{8,}$\/.test(pw);\n      }\n\n      function resolveCurrency() {\n        if (requestedCurrency) {\n          return Promise.resolve(requestedCurrency);\n        }\n\n        return fetch(\"https:\/\/ipwho.is\/\")\n          .then(function (geoRes) {\n            return geoRes.json();\n          })\n          .then(function (geoData) {\n            var countryCode = geoData && geoData.country_code\n              ? String(geoData.country_code).toUpperCase()\n              : \"\";\n\n            if (countryCode === \"BR\") {\n              return \"BRL\";\n            }\n\n            if ([\"PT\", \"ES\", \"FR\", \"DE\", \"IT\", \"NL\", \"BE\", \"FI\", \"IE\", \"AT\"].indexOf(countryCode) !== -1) {\n              return \"EUR\";\n            }\n\n            return \"USD\";\n          })\n          .catch(function () {\n            return \"USD\";\n          });\n      }\n\n      function updateSubmitState() {\n        var isEmailValid = emailInput.value.trim().length > 0;\n        var isPwValid = validatePassword(pwInput.value);\n        var isTermsChecked = Boolean(termsCheckbox.checked);\n        var enable = isEmailValid && isPwValid && isTermsChecked;\n\n        submitBtn.disabled = !enable;\n        submitBtn.classList.toggle(\"enabled\", enable);\n      }\n\n      if (passwordToggle) {\n        passwordToggle.addEventListener(\"click\", function (e) {\n          e.preventDefault();\n          togglePassword();\n        });\n      }\n\n      emailInput.addEventListener(\"input\", updateSubmitState);\n      pwInput.addEventListener(\"input\", updateSubmitState);\n      termsCheckbox.addEventListener(\"change\", updateSubmitState);\n\n      updateSubmitState();\n\n      form.addEventListener(\"submit\", function (e) {\n        e.preventDefault();\n        setLoaderVisible(true);\n\n        resolveCurrency()\n          .then(function (currency) {\n            return fetch(\"https:\/\/pnjzqfekyquoptxmlbma.functions.sa-east-1.nhost.run\/v1\/signup_with_dashboard\", {\n              method: \"POST\",\n              headers: {\n                \"Content-Type\": \"application\/json\"\n              },\n              body: JSON.stringify({\n                email: emailInput.value.trim(),\n                password: pwInput.value,\n                currency: currency,\n                plan: requestedPlan,\n                metadata: {\n                  plan: \"free\",\n                  logged: false,\n                  requested_plan: requestedPlan,\n                  requested_currency: String(currency).toLowerCase()\n                }\n              })\n            })\n              .then(function (response) {\n                return response.json().then(function (data) {\n                  return {\n                    response: response,\n                    data: data\n                  };\n                });\n              });\n          })\n          .then(function (result) {\n            if (!result.response.ok || result.data.error) {\n              alert(result.data.error || \"Signup failed. Please check your details and try again.\");\n              return;\n            }\n\n            if (result.data.url) {\n              window.location.href = result.data.url;\n            } else {\n              alert(\"Signup successful, but no dashboard link was returned.\");\n            }\n          })\n          .catch(function () {\n            alert(\"Something went wrong. Please try again.\");\n          })\n          .then(function () {\n            setLoaderVisible(false);\n          }, function () {\n            setLoaderVisible(false);\n          });\n      });\n    });\n  })();\n<\/script>\n\n<style>\n  .pl-signup-section {\n    --pl-bg: transparent;\n    --pl-card-bg: color-mix(in srgb, currentColor 5%, transparent);\n    --pl-card-border: color-mix(in srgb, currentColor 14%, transparent);\n    --pl-text: currentColor;\n    --pl-muted: color-mix(in srgb, currentColor 68%, transparent);\n    --pl-soft: rgba(0, 144, 255, 0.08);\n    --pl-input-bg: color-mix(in srgb, currentColor 4%, transparent);\n    --pl-input-border: color-mix(in srgb, currentColor 16%, transparent);\n    --pl-blue: #0090ff;\n    --pl-green: #3ddc6f;\n    --pl-shadow: 0 24px 70px rgba(10, 15, 23, 0.08);\n    min-height: 100vh;\n    padding: 72px 20px;\n    background: transparent !important;\n    color: var(--pl-text) !important;\n    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  }\n\n  .elementor-widget-html:has(.pl-signup-section),\n  .elementor-widget-container:has(.pl-signup-section),\n  .elementor-html:has(.pl-signup-section) {\n    background: transparent !important;\n    background-color: transparent !important;\n  }\n\n  @supports not (color: color-mix(in srgb, black, white)) {\n    .pl-signup-section {\n      --pl-card-bg: rgba(255, 255, 255, 0.94);\n      --pl-card-border: rgba(10, 15, 23, 0.12);\n      --pl-muted: rgba(0, 0, 0, 0.68);\n      --pl-input-bg: rgba(255, 255, 255, 0.9);\n      --pl-input-border: rgba(10, 15, 23, 0.16);\n    }\n  }\n\n  html.dark .pl-signup-section,\n  body.dark .pl-signup-section,\n  .dark .pl-signup-section,\n  html.dark-mode .pl-signup-section,\n  body.dark-mode .pl-signup-section,\n  .dark-mode .pl-signup-section,\n  html.is-dark-theme .pl-signup-section,\n  body.is-dark-theme .pl-signup-section,\n  .is-dark-theme .pl-signup-section,\n  .wp-dark-mode-active .pl-signup-section,\n  .darkmode--activated .pl-signup-section,\n  html[data-theme=\"dark\"] .pl-signup-section,\n  body[data-theme=\"dark\"] .pl-signup-section,\n  html[data-color-mode=\"dark\"] .pl-signup-section,\n  body[data-color-mode=\"dark\"] .pl-signup-section,\n  .pl-signup-section[data-pl-theme=\"dark\"] {\n    --pl-bg: transparent;\n    --pl-card-bg: rgba(12, 12, 12, 0.96);\n    --pl-card-border: rgba(255, 255, 255, 0.14);\n    --pl-text: #ffffff;\n    --pl-muted: rgba(255, 255, 255, 0.74);\n    --pl-soft: rgba(0, 144, 255, 0.16);\n    --pl-input-bg: rgba(255, 255, 255, 0.06);\n    --pl-input-border: rgba(255, 255, 255, 0.16);\n    --pl-shadow: 0 24px 80px rgba(0, 0, 0, 0.36);\n  }\n\n  html.light .pl-signup-section,\n  body.light .pl-signup-section,\n  .light .pl-signup-section,\n  html.light-mode .pl-signup-section,\n  body.light-mode .pl-signup-section,\n  .light-mode .pl-signup-section,\n  html.is-light-theme .pl-signup-section,\n  body.is-light-theme .pl-signup-section,\n  .is-light-theme .pl-signup-section,\n  html.wp-light-mode-active .pl-signup-section,\n  body.wp-light-mode-active .pl-signup-section,\n  .wp-light-mode-active .pl-signup-section,\n  html[data-theme=\"light\"] .pl-signup-section,\n  body[data-theme=\"light\"] .pl-signup-section,\n  html[data-color-mode=\"light\"] .pl-signup-section,\n  body[data-color-mode=\"light\"] .pl-signup-section,\n  .pl-signup-section[data-pl-theme=\"light\"] {\n    --pl-bg: transparent;\n    --pl-card-bg: color-mix(in srgb, currentColor 5%, transparent);\n    --pl-card-border: color-mix(in srgb, currentColor 14%, transparent);\n    --pl-text: currentColor;\n    --pl-muted: color-mix(in srgb, currentColor 68%, transparent);\n    --pl-soft: rgba(0, 144, 255, 0.08);\n    --pl-input-bg: color-mix(in srgb, currentColor 4%, transparent);\n    --pl-input-border: color-mix(in srgb, currentColor 16%, transparent);\n    --pl-shadow: 0 24px 70px rgba(10, 15, 23, 0.08);\n  }\n\n  .pl-signup-section *,\n  .pl-signup-section *::before,\n  .pl-signup-section *::after {\n    box-sizing: border-box;\n  }\n\n  .pl-signup-card {\n    position: relative;\n    width: min(460px, 100%);\n    margin: 0 auto;\n    padding: 30px;\n    border: 1px solid var(--pl-card-border);\n    border-radius: 28px;\n    background: var(--pl-card-bg) !important;\n    color: var(--pl-text) !important;\n    box-shadow: var(--pl-shadow);\n    backdrop-filter: blur(16px);\n  }\n\n  .pl-signup-section .signup-box a.signin-link {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 40px;\n    margin-bottom: 24px;\n    padding: 0 16px;\n    border: 1px solid var(--pl-card-border);\n    border-radius: 999px;\n    background: transparent;\n    color: var(--pl-text) !important;\n    font-size: 14px;\n    font-weight: 800;\n    text-decoration: none;\n    transition:\n      transform 160ms ease,\n      background 160ms ease;\n  }\n\n  .pl-signup-section .signup-box a.signin-link:hover {\n    transform: translateY(-1px);\n    background: var(--pl-soft);\n  }\n\n  .pl-signup-section .logo-box {\n    width: 78px;\n    height: 78px;\n    margin: 0 auto 20px;\n    overflow: hidden;\n    border: 1px solid var(--pl-card-border);\n    border-radius: 50%;\n    background: linear-gradient(135deg, rgba(0, 144, 255, 0.2), rgba(61, 220, 111, 0.18));\n    box-shadow: 0 16px 34px rgba(0, 144, 255, 0.14);\n  }\n\n  .pl-signup-section .logo-box a,\n  .pl-signup-section .logo-box img {\n    display: block;\n    width: 100%;\n    height: 100%;\n  }\n\n  .pl-signup-section .logo-box img {\n    object-fit: cover;\n    border-radius: 50%;\n  }\n\n  .pl-signup-header {\n    margin-bottom: 24px;\n    text-align: center;\n  }\n\n  .pl-section-kicker {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    margin-bottom: 14px;\n    padding: 8px 14px;\n    border: 1px solid var(--pl-card-border);\n    border-radius: 999px;\n    background: var(--pl-soft);\n    color: var(--pl-blue) !important;\n    font-size: 14px;\n    font-weight: 700;\n    letter-spacing: 0.02em;\n  }\n\n  .pl-signup-header h2 {\n    margin: 0;\n    color: var(--pl-text) !important;\n    font-size: clamp(25px, 4vw, 34px);\n    line-height: 1.08;\n    letter-spacing: -0.03em;\n  }\n\n  .pl-signup-header p {\n    margin: 14px auto 0;\n    color: var(--pl-muted) !important;\n    font-size: 15.5px;\n    line-height: 1.6;\n  }\n\n  .pl-field {\n    display: block;\n    margin-bottom: 14px;\n  }\n\n  .pl-field span,\n  .pl-field label {\n    display: block;\n    margin-bottom: 7px;\n    color: var(--pl-text) !important;\n    font-size: 13px;\n    font-weight: 800;\n  }\n\n  .pl-signup-section input[type=\"email\"],\n  .pl-signup-section input[type=\"password\"],\n  .pl-signup-section .password-wrapper input {\n    width: 100%;\n    min-height: 48px;\n    margin: 0;\n    padding: 0 15px;\n    border: 1px solid var(--pl-input-border);\n    border-radius: 14px;\n    outline: none;\n    background: var(--pl-input-bg) !important;\n    color: var(--pl-text) !important;\n    font: inherit;\n    font-size: 15px;\n    transition:\n      border-color 160ms ease,\n      box-shadow 160ms ease,\n      background 160ms ease;\n  }\n\n  .pl-signup-section input[type=\"email\"]::placeholder,\n  .pl-signup-section input[type=\"password\"]::placeholder,\n  .pl-signup-section .password-wrapper input::placeholder {\n    color: var(--pl-muted) !important;\n  }\n\n  .pl-signup-section input[type=\"email\"]:focus,\n  .pl-signup-section input[type=\"password\"]:focus,\n  .pl-signup-section .password-wrapper input:focus {\n    border-color: rgba(0, 144, 255, 0.62);\n    box-shadow: 0 0 0 4px rgba(0, 144, 255, 0.12);\n  }\n\n  .pl-signup-section .password-wrapper {\n    position: relative;\n  }\n\n  .pl-signup-section .password-wrapper input {\n    padding-right: 88px !important;\n  }\n\n  .pl-signup-section .toggle-password {\n    position: absolute;\n    right: 9px;\n    bottom: 7px;\n    min-width: 56px;\n    min-height: 34px;\n    border: 1px solid var(--pl-card-border);\n    border-radius: 999px;\n    background: transparent;\n    color: var(--pl-blue) !important;\n    cursor: pointer;\n    font-size: 13px;\n    font-weight: 800;\n  }\n\n  .pl-signup-section .toggle-password:hover {\n    background: var(--pl-soft);\n  }\n\n  .pl-signup-section .hint {\n    margin: -2px 0 16px;\n    color: var(--pl-muted) !important;\n    font-size: 13px;\n    line-height: 1.55;\n  }\n\n  .pl-signup-section .checkbox-wrapper {\n    display: flex;\n    align-items: flex-start;\n    gap: 10px;\n    margin-bottom: 22px;\n    color: var(--pl-muted) !important;\n    font-size: 13px;\n    line-height: 1.55;\n  }\n\n  .pl-signup-section .checkbox-wrapper input {\n    flex: 0 0 auto;\n    width: 16px;\n    height: 16px;\n    margin: 3px 0 0;\n    accent-color: var(--pl-blue);\n  }\n\n  .pl-signup-section .checkbox-wrapper p {\n    margin: 0;\n  }\n\n  .pl-signup-section .checkbox-wrapper a {\n    color: var(--pl-blue) !important;\n    font-weight: 800;\n    text-decoration: none;\n  }\n\n  .pl-signup-section .checkbox-wrapper a:hover {\n    text-decoration: underline;\n  }\n\n  .pl-signup-section .required-mark {\n    color: var(--pl-green) !important;\n    font-weight: 900;\n  }\n\n  .pl-signup-section .submit-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    min-height: 50px;\n    padding: 0 18px;\n    border: 0;\n    border-radius: 999px;\n    background: rgba(128, 128, 128, 0.28);\n    color: var(--pl-muted) !important;\n    cursor: not-allowed;\n    font: inherit;\n    font-size: 15px;\n    font-weight: 850;\n    text-transform: none;\n    transition:\n      transform 160ms ease,\n      opacity 160ms ease,\n      background 160ms ease;\n  }\n\n  .pl-signup-section .submit-btn.enabled {\n    background: linear-gradient(135deg, var(--pl-blue), var(--pl-green));\n    color: #ffffff !important;\n    cursor: pointer;\n    box-shadow: 0 14px 32px rgba(0, 144, 255, 0.28);\n  }\n\n  .pl-signup-section .submit-btn.enabled:hover {\n    transform: translateY(-1px);\n  }\n\n  .loader-overlay {\n    position: fixed;\n    inset: 0;\n    z-index: 9999;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    background: rgba(0, 0, 0, 0.16);\n    backdrop-filter: blur(2px);\n  }\n\n  .loader {\n    width: 42px;\n    height: 42px;\n    border: 4px solid rgba(255, 255, 255, 0.34);\n    border-top-color: var(--pl-blue, #0090ff);\n    border-radius: 50%;\n    animation: spin 1s linear infinite;\n  }\n\n  @keyframes spin {\n    0% {\n      transform: rotate(0deg);\n    }\n\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n\n  @media (max-width: 640px) {\n    .pl-signup-section {\n      min-height: auto;\n      padding: 48px 16px;\n    }\n\n    .pl-signup-card {\n      padding: 24px;\n      border-radius: 22px;\n    }\n\n    .pl-signup-header h2 {\n      font-size: 28px;\n    }\n  }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Sign in instead Create account Start building with Protolinker Create your account, keep your selected plan, and continue to the dashboard to start connecting industrial data. Email Password Show Use at least 8 characters with uppercase, lowercase, number, and one symbol: !@#$%^&amp;* I have read the Privacy Policy, the Data Compliance, and accept the Terms &hellip;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-877","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/pages\/877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/comments?post=877"}],"version-history":[{"count":30,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/pages\/877\/revisions"}],"predecessor-version":[{"id":1292,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/pages\/877\/revisions\/1292"}],"wp:attachment":[{"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/media?parent=877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}