1<!DOCTYPE html><!-- Last Published: Tue Aug 04 2026 00:47:07 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="soteri.webflow.io" data-wf-page="685a1e1a6185ce5e0b133b7c" data-wf-site="645989b2fc639004353e6672" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Pricing</title><meta content="Pricing" property="og:title"/><meta content="Pricing" name="twitter:title"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/645989b2fc639004353e6672/css/soteri.webflow.shared.9e8c0d302.min.css" rel="stylesheet" type="text/css" integrity="sha384-nowNMCNuKEMWgsgNylNjMPQ7rlfW7FyQu9eDUPziHdLNBP4bdSl08ObJjeLEG1Sr" crossorigin="anonymous"/>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/645989b2fc639004353e6672/647e2b65bfea7b86816810bf_soteri-ico-32.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/645989b2fc639004353e6672/647e2b69e1ac5bb33cd22a16_soteri-ico-256.png" rel="apple-touch-icon"/><link href="https://soteri.io/pricing" rel="canonical"/><!-- Segment. -->
2<script> 3 !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(key,e){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.src="https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=e};analytics._writeKey="1u8srUhx7mBXQb4HIMGnmfYArEB3htCz";;analytics.SNIPPET_VERSION="4.15.3"; 4 analytics.load("1u8srUhx7mBXQb4HIMGnmfYArEB3htCz"); 5 analytics.page(); 6 }}(); 7</script>
7 8 9<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 9-10
9 10<script async src="https://www.googletagmanager.com/gtag/js?id=
10G-5NMMJQ05HE
vendor: 12 bytes, line 10
10"></script>
11<script> 12 window.dataLayer = window.dataLayer || []; 13 function gtag(){dataLayer.push(arguments);} 14 gtag('js', new Date()); 15 16 // When segment is ready, load GA config with the segment anon id. 17 analytics.ready(function() { 18 var anon_id = analytics.user().anonymousId(); 19 gtag('config', 'G-5NMMJQ05HE', { 20 'user_id': anon_id, 21 'user_properties': { 22 'anon_id': anon_id 23 } 24 }); 25 }); 26</script>
26 27 28<style> 29 .table-wrapper { 30 overflow-x: auto; 31 } 32 33 .responsive-table { 34 width: 100%; 35 border-collapse: collapse; 36 min-width: 800px; 37 } 38 39 .responsive-table th, 40 .responsive-table td { 41 text-align: left; 42 vertical-align: top; 43 padding: 16px; 44 border: 1px solid #E9E9E9; 45 font-size: 0.8rem; 46 } 47 48 .responsive-table th { 49 background-color: #D3D3D3; 50 font-weight: bold; 51 } 52 53 .responsive-table td { 54 background-color: #F4F4F4; 55 } 56 57 .responsive-table tr:nth-child(even) td { 58 background-color: #E9E9E9; 59 } 60 61 .responsive-table strong { 62 color: #232323; 63 } 64 65 @media (max-width: 768px) { 66 .table-wrapper { 67 margin: 0; 68 } 69 } 70</style></head><body><div class="page-wrapper"><div data-animation="default" class="navbar11_component w-nav" data-easing2="ease" fs-scrolldisable-element="smart-nav" data-easing="ease" data-collapse="medium" data-w-id="27fa1498-6a52-3acf-603a-aae343e5b312" role="banner" data-duration="400" data-doc-height="1"><div class="padding-global"><div class="container-large"><div class="navbar11_container"><a href="/" class="navbar11_logo-link w-nav-brand"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/646cc674e94c5dc81efc8300_logo-with-mark-light.svg" loading="lazy" width="Auto" height="30" alt="Soteri Logo White" class="navbar11_logo"/></a><nav role="navigation" class="nav-links-wrapper is-horizontal w-nav-menu"><div data-hover="true" data-delay="200" data-w-id="27fa1498-6a52-3acf-603a-aae343e5b318" class="nav-link-dropdown w-dropdown"><div class="nav-link is-toggle w-dropdown-toggle"><div>Products</div><div class="dropdown-icon w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 71<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 72</svg></div></div><nav class="nav-dropdown border w-dropdown-list"><div class="nav-links-wrapper"><a href="/products/security-for-bitbucket" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645e66f0defe69ec365aa43d_bitbucket-atlassian-mark.svg" loading="lazy" alt="Bitbucket mark" class="icon-1x1-xsmall menu-icon-mobile-override"/></div><div class="navbar11_text-wrapper"><div>Security for Bitbucket</div></div></a><a href="/products/security-for-confluence" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645ea475f88acc0a70164664_confluence-atlassian-mark.svg" loading="lazy" alt="Confluence mark" class="icon-1x1-xsmall menu-icon-mobile-override"/></div><div class="navbar11_text-wrapper"><div>Security for Confluence</div></div></a><a href="/products/security-for-jira" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6489f3c19e51b9bca517826c_jira-mark.svg" loading="lazy" alt="Jira logo mark" class="icon-1x1-xsmall menu-icon-mobile-override"/></div><div class="navbar11_text-wrapper"><div>Security for Jira</div></div></a><a href="/products/security-for-intellij" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6489f575f78697de66688fe1_intellij-logo-mark.svg" loading="lazy" alt="IntelliJ Logo Mark" class="icon-1x1-xsmall menu-icon-mobile-override"/></div><div class="navbar11_text-wrapper"><div>Security for IntelliJ</div></div></a><a href="https://api.soteri.io/" target="_blank" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645ea95dfd81bd218c0f618b_api-icon.svg" loading="lazy" alt="API badge" class="icon-1x1-xsmall menu-icon-mobile-override"/></div><div class="navbar11_text-wrapper"><div>Scanning Service</div></div></a></div></nav></div><div data-hover="true" data-delay="200" data-w-id="84b7d56b-1159-f5f2-78a1-e8357680f479" class="nav-link-dropdown w-dropdown"><div class="nav-link is-toggle w-dropdown-toggle"><div>Solutions</div><div class="dropdown-icon w-embed">
72<svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 73<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 74</svg></div></div><nav class="nav-dropdown border w-dropdown-list"><div class="text-size-tiny text-style-allcaps text-color-mid-gray margin-bottom margin-tiny">By Team</div><div class="nav-links-wrapper"><a href="/teams/tech-leadership" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6570a6684489bb515863cf34_rocket.svg" loading="lazy" alt="Rocket icon for tech leaders" class="icon-1x1-xxsmall"/></div><div class="navbar11_text-wrapper"><div>Tech Leadership</div></div></a><a href="/teams/developers-and-devops" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6570a5249411f07b14a9ecc4_code.svg" loading="lazy" alt="Dev icon for developers and DevOps" class="icon-1x1-xxsmall"/></div><div class="navbar11_text-wrapper"><div>Developers & DevOps</div></div></a><a href="/teams/cybersecurity-and-devsecops" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6570a5a6801aa703037cbe27_radar.svg" loading="lazy" alt="Radar icon for cybersecurity" class="icon-1x1-xxsmall"/></div><div class="navbar11_text-wrapper"><div>Cybersecurity & DevSecOps</div></div></a></div></nav></div><a href="/pricing" aria-current="page" class="nav-link w-nav-link w--current">Pricing</a><a href="https://docs.soteri.io/" target="_blank" class="nav-link w-nav-link">Docs</a><a href="/blog" class="nav-link w-nav-link">Blog</a><a href="/partners" class="nav-link w-nav-link">Partners</a><a href="https://support.soteri.io/" target="_blank" class="nav-link w-nav-link">Support</a><div class="navbar11_menu-buttons"><div data-hover="true" data-delay="200" data-w-id="06f48724-f6f4-fdea-caa5-79782d14b105" class="nav-link-dropdown w-dropdown"><div class="button is-small is-nav-button is-dropdown-button w-dropdown-toggle"><div>Start Free Trial</div><div class="dropdown-icon w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 75<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 76</svg></div></div><nav class="nav-dropdown border w-dropdown-list"><div class="nav-links-wrapper"><div class="text-size-tiny text-style-allcaps text-color-mid-gray margin-bottom margin-tiny">ATLASSIANÂ MARKETPLACE:</div><a href="https://marketplace.atlassian.com/apps/1221399/security-for-bitbucket-enhanced-secret-scanner-by-soteri?tab=overview&hosting=datacenter&utm_source=soteri.io&utm_medium=top_nav&utm_campaign=sfb" target="_blank" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645e66f0defe69ec365aa43d_bitbucket-atlassian-mark.svg" loading="lazy" alt="Bitbucket mark" class="icon-1x1-xxsmall"/></div><div class="navbar11_text-wrapper"><div>Bitbucket</div></div></a><a href="https://marketplace.atlassian.com/apps/1224167/security-for-confluence-enhanced-secret-scanner-by-soteri?tab=overview&hosting=cloud&utm_source=soteri.io&utm_medium=top_nav&utm_campaign=sfc" target="_blank" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645ea475f88acc0a70164664_confluence-atlassian-mark.svg" loading="lazy" alt="Confluence mark" class="icon-1x1-xxsmall"/></div><div class="navbar11_text-wrapper"><div>Confluence</div></div></a><a href="https://marketplace.atlassian.com/apps/1229376/security-for-jira-enhanced-secret-scanner-by-soteri?tab=overview&hosting=datacenter&utm_source=soteri.io&utm_medium=top_nav&utm_campaign=sfj" target="_blank" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6489f3c19e51b9bca517826c_jira-mark.svg" loading="lazy" alt="Jira logo mark" class="icon-1x1-xxsmall"/></div><div class="navbar11_text-wrapper"><div>Jira</div></div></a><div class="text-size-tiny text-style-allcaps text-color-mid-gray margin-bottom margin-tiny">Jetbrains Marketplace:</div><a href="https://plugins.jetbrains.com/plugin/23743-soteri-secret-scanner" target="_blank" class="nav-link is-icon-prefix w-inline-block"><div class="navbar11_icon-wrapper"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/649b3c2ad1ba7ef345b0a1cf_intellijidea.svg" loading="lazy" alt="IntelliJ Logo" class="icon-1x1-xxsmall"/></div><div class="navbar11_text-wrapper"><div>IntelliJ</div></div></a></div></nav></div><a href="https://calendly.com/soteri-scheduling/demo-with-soteri" target="_blank" class="button is-small is-nav-button w-button">Book My Demo</a></div></nav><div class="navbar11_menu-button w-nav-button"><div class="menu-icon1"><div class="menu-icon1_line-top"></div><div class="menu-icon1_line-middle"><div class="menu-icon_line-middle-inner"></div></div><div class="menu-icon1_line-bottom"></div></div></div></div></div></div></div><div class="w-embed"><style> 77 78 html { 79 font-size: 20px; 80 } 81 82 body { 83 -webkit-font-smoothing: antialiased; 84 -moz-font-smoothing: antialiased; 85 -o-font-smoothing: antialiased; 86 } 87 88 /*Text Selection Color*/ 89 ::selection { 90 background: #076aff; 91 color: #ffffff; 92 } 93 ::-moz-selection { 94 background: #076aff; 95 color: #ffffff; 96 } 97 98 /* Focus state style for keyboard navigation for the focusable elements */ 99 *[tabindex]:focus-visible, 100 input[type="file"]:focus-visible { 101 outline: 0.125rem solid #4d65ff; 102 outline-offset: 0.125rem; 103 } 104 105 /* Get rid of top margin on first element in any rich text element */ 106 .w-richtext > :not(div):first-child, .w-richtext >
106 div:first-child > :first-child { 107 margin-top: 0 !important; 108 } 109 110 /* Get rid of bottom margin on last element in any rich text element */ 111 .w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child { 112 margin-bottom: 0 !important; 113 } 114 115 /* Prevent all click and hover interaction with an element */ 116 .pointer-events-off { 117 pointer-events: none; 118 } 119 120 /* Enables all click and hover interaction with an element */ 121 .pointer-events-on { 122 pointer-events: auto; 123 } 124 125 /* Create a class of .div-square which maintains a 1:1 dimension of a div */ 126 .div-square::after { 127 content: ""; 128 display: block; 129 padding-bottom: 100%; 130 } 131 132 /* Make sure containers never lose their center alignment */ 133 .container-medium,.container-small, .container-large { 134 margin-right: auto !important; 135 margin-left: auto !important; 136 } 137 138 /* 139 Make the following elements inherit typography styles from the parent and not have hardcoded values. 140 Important: You will not be able to style for example "All Links" in Designer with this CSS applied. 141 Uncomment this CSS to use it in the project. Leave this message for future hand-off. 142 */ 143 /* 144 a, 145 .w-input, 146 .w-select, 147 .w-tab-link, 148 .w-nav-link, 149 .w-dropdown-btn, 150 .w-dropdown-toggle, 151 .w-dropdown-link { 152 color: inherit; 153 text-decoration: inherit; 154 font-size: inherit; 155 } 156 */ 157 158 /* Apply "..." after 3 lines of text */ 159 .text-style-3lines { 160 display: -webkit-box; 161 overflow: hidden; 162 -webkit-line-clamp: 3; 163 -webkit-box-orient: vertical; 164 } 165 166 /* Apply "..." after 2 lines of text */ 167 .text-style-2lines { 168 display: -webkit-box; 169 overflow: hidden; 170 -webkit-line-clamp: 2; 171 -webkit-box-orient: vertical; 172 } 173 174 /* Adds inline flex display */ 175 .display-inlineflex { 176 display: inline-flex; 177 } 178 179 /* These classes are never overwritten */ 180 .hide { 181 display: none !important; 182 } 183 184 .margin-0 { 185 margin: 0rem !important; 186 } 187 188 .padding-0 { 189 padding: 0rem !important; 190 } 191 192 .spacing-clean { 193 padding: 0rem !important; 194 margin: 0rem !important; 195 } 196 197 .margin-top { 198 margin-right: 0rem !important; 199 margin-bottom: 0rem !important; 200 margin-left: 0rem !important; 201 } 202 203 .padding-top { 204 padding-right: 0rem !important; 205 padding-bottom: 0rem !important; 206 padding-left: 0rem !important; 207 } 208 209 .margin-right { 210 margin-top: 0rem !important; 211 margin-bottom: 0rem !important; 212 margin-left: 0rem !important; 213 } 214 215 .padding-right { 216 padding-top: 0rem !important; 217 padding-bottom: 0rem !important; 218 padding-left: 0rem !important; 219 } 220 221 .margin-bottom { 222 margin-top: 0rem !important; 223 margin-right: 0rem !important; 224 margin-left: 0rem !important; 225 } 226 227 .padding-bottom { 228 padding-top: 0rem !important; 229 padding-right: 0rem !important; 230 padding-left: 0rem !important; 231 } 232 233 .margin-left { 234 margin-top: 0rem !important; 235 margin-right: 0rem !important; 236 margin-bottom: 0rem !important; 237 } 238 239 .padding-left { 240 padding-top: 0rem !important; 241 padding-right: 0rem !important; 242 padding-bottom: 0rem !important; 243 } 244 245 .margin-horizontal { 246 margin-top: 0rem !important; 247 margin-bottom: 0rem !important; 248 } 249 250 .padding-horizontal { 251 padding-top: 0rem !important; 252 padding-bottom: 0rem !important; 253 } 254 255 .margin-vertical { 256 margin-right: 0rem !important; 257 margin-left: 0rem !important; 258 } 259 260 .padding-vertical { 261 padding-right: 0rem !important; 262 padding-left: 0rem !important; 263 } 264 265 /* Apply "..." at 100% width */ 266 .truncate-width { 267 width: 100%; 268 white-space: nowrap; 269 overflow: hidden; 270 text-overflow: ellipsis; 271 } 272 /* Removes native scrollbar */ 273 .no-scrollbar { 274 -ms-overflow-style: none; 275 overflow: -moz-scrollbars-none; 276 } 277 278 .no-scrollbar::-webkit-scrollbar {
279 display: none; 280 } 281 282 @media screen and (max-width: 991px) { 283 .hide, .hide-tablet { 284 display: none !important; 285 } 286 } 287 @media screen and (max-width: 767px) { 288 .hide-mobile-landscape{ 289 display: none !important; 290 } 291 } 292 @media screen and (max-width: 479px) { 293 .hide-mobile{ 294 display: none !important; 295 } 296 html { 297 font-size: 18px; 298 } 299 } 300 301 302 /* HubSpot form styling. Initially used for the newsletter subscription. */ 303 .hbspt-form form { 304 max-width: 30rem; 305 margin: auto; 306 display: flex; 307 flex-direction: column; 308 gap: 1rem; 309 } 310 form#hsForm_44fa3f47-3037-478b-981c-28ee2a66327f { 311 margin-left: 0; 312 } 313 .hbspt-form .hs-recaptcha iframe { 314 filter: grayscale(1); 315 } 316 .hbspt-form ul.hs-error-msgs { 317 list-style: none; 318 padding-left: 0; 319 margin-bottom: 0.25em; 320 } 321 .hbspt-form .hs-error-msgs label { 322 font-size: .75rem; 323 font-weight: normal; 324 } 325 .hbspt-form input, 326 .hbspt-form textarea { 327 width: 100%; 328 } 329 .hbspt-form input[type="email"], 330 .hbspt-form input[name="lastname"], 331 .hbspt-form input[name="firstname"], 332 .hbspt-form input[name="company"], 333 .hbspt-form .input textarea { 334 height: auto; 335 min-height: 2.75rem; 336 color: #000; 337 background-color: #fff; 338 border: 1px solid #000; 339 margin-bottom: 0; 340 padding: 0.5rem 0.75rem; 341 font-size: 1rem; 342 line-height: 1.6; 343 } 344 .hbspt-form input[type="submit"] { 345 margin-top: 1em; 346 background: white; 347 color: #232323; 348 width: 300px; 349 border: none; 350 border-radius: 50px; 351 font-weight: normal; 352 padding: .7em 1.2em; 353 box-shadow: transparent 0px 0px 0px 0px inset; 354 transition-property: box-shadow, border-color; 355 transition-duration: 300ms, 300ms; 356 transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1), cubic-bezier(0.165, 0.84, 0.44, 1); 357 } 358 .hbspt-form input[type="submit"]:hover { 359 box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 100px inset; 360 } 361 362 .hbspt-form ul.inputs-list { 363 list-style: none; 364 padding-left: 0; 365 } 366 367 .hbspt-form label.hs-form-checkbox-display { 368 display: flex; 369 gap: 0.75rem; 370 } 371 372 .hbspt-form label.hs-form-checkbox-display > input.hs-input { 373 width: 20px; 374 } 375 376 .hbspt-form .submitted-message { 377 background: #A7EAC3; 378 color: #232323; 379 border-radius: 10px; 380 padding: 20px; 381 } 382 .hbspt-form .submitted-message a { 383 color: #232323; 384 } 385 .hbspt-form .submitted-message p:last-child { 386 margin-bottom: 0; 387 } 388 389 .truncate { white-space: nowrap; text-overflow: ellipsis; } 390 391 .nav-link.w-dropdown-toggle.w--open { 392 background-color: var(--gray-600); 393 } 394</style></div><main class="main-wrapper"><section class="section-pricing-table"><div class="padding-global"><div class="w-embed w-script"><style> 395 * { 396 margin: 0; 397 padding: 0; 398 box-sizing: border-box; 399 } 400 401 .pricing-container { 402 max-width: 1200px; 403 margin: 0 auto; 404 padding: 40px 20px 20px; 405 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; 406 background: #232323; 407 border-radius: 16px; 408 color: white; 409 } 410 411 .pricing-header { 412 text-align: center; 413 margin-bottom: 40px; 414 } 415 416 .pricing-title { 417 font-size: 2.5rem; 418 font-weight: 700; 419 color: white; 420 margin-bottom: 12px; 421 } 422 423 .pricing-subtitle { 424 font-size: 1.1rem; 425 color: #A7A7A7; 426 margin-bottom: 32px; 427 } 428 429 .pricing-controls { 430 display: flex; 431 flex-direction: column; 432 align-items: center; 433 gap: 0; 434 margin-bottom: 48px; 435 } 436 437 /* Tab Navigation */ 438 .tabs-container { 439 display: flex; 440 background: transparent; 441 margin-bottom: 0; 442 position: relative; 443 z-index: 10; 444 } 445 446 .tab-button { 447 flex: 1; 448 padding: 16px 48px; 449 border: 1px solid #404040; 450 border-bottom: none; 451 background: #1a1a1a; 452 color: #A7A7A7; 453 font-weight: 600; 454 font-size: 0.8rem; 455 cursor: pointer; 456 transition: all 0.3s ease; 457 position: relative; 458 border-top-left-radius: 12px; 459 border-top-right-radius: 12px; 460 white-space: nowrap; 461 } 462 463 .tab-button:first-child { 464 border-top-left-radius: 12px; 465 border-top-right-radius: 0; 466 } 467 468 .tab-button:last-child { 469 border-top-left-radius: 0; 470 border-top-right-radius: 12px; 471 border-left: none; 472 } 473 474 .tab-button.active { 475 color: white; 476 background: #232323; 477 border-color: #404040; 478 border-bottom: none; 479 z-index: 15; 480 } 481 482 .tab-button:hover:not(.active) { 483 color: white; 484 background: rgba(255, 255, 255, 0.03); 485 } 486 487 /* Tab Content Container */ 488 .tab-content { 489 background: #232323; 490 border: 1px solid #404040; 491 border-radius: 0 0 16px 16px; 492 border-top-right-radius: 16px; 493 padding: 24px 24px 24px; 494 margin-top: 0; 495 position: relative; 496 } 497 498 .tab-content::before { 499 content: ''; 500 position: absolute; 501 top: -1px; 502 left: 0; 503 right: 0; 504 height: 1px; 505 background: #404040; 506 } 507 508 /* User Selection */ 509 .users-container { 510 display: flex; 511 align-items: center; 512 justify-content: space-between; 513 gap: 48px; 514 width: 100%; 515 max-width: none; 516 margin: 0 auto; 517 } 518 519 .team-size-section { 520 display: flex; 521 align-items: center; 522 gap: 16px; 523 background: #1a1a1a; 524 padding: 16px 24px; 525 border-radius: 16px; 526 border: 1px solid #404040; 527 } 528 529 .users-label { 530 font-weight: 600; 531 color: #A7A7A7; 532 font-size: 0.8rem; 533 white-space: nowrap; 534 } 535 536 .users-input-container { 537 position: relative; 538 } 539 540 .users-input { 541 background: #232323; 542 border: 1px solid #404040; 543 border-radius: 12px; 544 padding: 12px 16px; 545 color: white; 546 font-size: 1rem; 547 font-weight: 600; 548 width: 100px; 549 text-align: center; 550 } 551 552 .users-input:focus { 553 outline: none; 554 border-color: white; 555 } 556 557 .billing-toggle-container { 558 display: flex; 559 background: #1a1a1a; 560 border-radius: 50px; 561 border: 1px solid #404040; 562 padding: 6px; 563 gap: 4px; 564 } 565 566 .billing-toggle-button { 567 padding: 12px 20px; 568 border: none; 569 background: transparent; 570 color: #A7A7A7; 571 font-weight: 600; 572 font-size: 0.75rem; 573 border-radius: 50px; 574 cursor: pointer; 575 transition: all 0.3s ease; 576 white-space: nowrap; 577 } 578 579 .billing-toggle-button.active { 580 background: white; 581 color: #232323; 582 } 583 584 .billing-toggle-button.save { 585 color: #3b82f6; 586 } 587 588 .billing-toggle-button.save.active { 589 background: #3b82f6; 590 color: white; 591 } 592 593 /* Pricing Cards */ 594 .pricing-grid { 595 display: grid; 596 grid-template-columns: repeat(3, 1fr); 597 gap: 16px; 598 margin-top: 24px; 599 } 600 601 .pricing-card { 602 background: #1a1a1a; 603 border-radius: 16px; 604 padding: 32px 24px; 605 border: 1px solid #404040; 606 transition: all 0.3s ease; 607 position: relative; 608 overflow: hidden; 609 } 610 611 .pricing-card:hover { 612 transform: translateY(-4px); 613 border-color: white; 614 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); 615 } 616 617 618 619 .product-icon { 620 width: 48px; 621 height: 48px; 622 background: white; 623 border-radius: 12px; 624 display: flex; 625 align-items: center; 626 justify-content: center; 627 margin-bottom: 16px; 628 padding: 8px; 629 } 630 631 .product-icon img { 632 width: 100%; 633 height: 100%; 634 object-fit: contain; 635 } 636 637 .product-name { 638 font-size: 1.25rem; 639 font-weight: 700; 640 color: white; 641 margin-bottom: 4px; 642 } 643 644 .product-subtitle { 645 font-size: 0.85rem; 646 font-weight: 500; 647 color: #A7A7A7; 648 margin-bottom: 16px; 649 margin-top: 0; 650 } 651 652 .product-description { 653 color: #A7A7A7; 654 font-size: 0.95rem; 655 margin-bottom: 24px; 656 line-height: 1.5; 657 } 658 659 .price-display { 660 margin-bottom: 24px; 661 } 662 663 .price-amount { 664 font-size: 2.5rem; 665 font-weight: 800; 666 color: white; 667 display: flex; 668 align-items: baseline; 669 gap: 4px; 670 } 671 672 .price-currency { 673 font-size: 1.5rem; 674 } 675 676 .price-period { 677 font-size: 1rem; 678 color: #A7A7A7; 679 font-weight: 400; 680 } 681 682 .price-note { 683 font-size: 0.85rem; 684 color: #A7A7A7; 685 margin-top: 4px; 686 } 687 688 .features-list { 689 list-style: none; 690 margin-bottom: 32px; 691 padding-left: 0; 692 } 693 694 .features-list li { 695 display: flex; 696 align-items: center; 697 gap: 8px; 698 margin-bottom: 12px; 699 color: #A7A7A7; 700 font-size: 0.95rem; 701 } 702 703 .feature-check {
704 width: 20px; 705 height: 20px; 706 background: #A7EAC3; 707 border-radius: 50%; 708 display: flex; 709 align-items: center; 710 justify-content: center; 711 color: #232323; 712 font-size: 0.75rem; 713 font-weight: bold; 714 flex-shrink: 0; 715 } 716 717 .feature-unavailable { 718 background: #666 !important; 719 color: white !important; 720 } 721 722 .unavailable-message { 723 text-align: center; 724 padding: 40px 20px; 725 margin: 24px 0; 726 } 727 728 .unavailable-text { 729 font-size: 1.1rem; 730 font-weight: 600; 731 color: #A7A7A7; 732 margin-bottom: 8px; 733 } 734 735 .unavailable-subtext { 736 font-size: 0.9rem; 737 color: #666; 738 margin: 0; 739 } 740 741 .pricing-card.unavailable { 742 opacity: 0.6; 743 background: #1a1a1a; 744 border-color: #333; 745 } 746 747 .pricing-card.unavailable .product-icon img { 748 opacity: 0.5; 749 filter: grayscale(50%); 750 } 751 752 .pricing-card.unavailable .product-name, 753 .pricing-card.unavailable .product-subtitle { 754 color: #666; 755 } 756 757 .pricing-card.unavailable .cta-button { 758 background: #404040; 759 border-color: #404040; 760 color: #A7A7A7; 761 } 762 763 .pricing-card.unavailable .cta-button:hover { 764 background: #4a4a4a; 765 border-color: #4a4a4a; 766 } 767 768 .cta-button { 769 width: 100%; 770 background: white; 771 color: #232323; 772 border: none; 773 border-radius: 50px; 774 padding: 12px 20px; 775 font-size: 0.9rem; 776 font-weight: 600; 777 cursor: pointer; 778 transition: all 0.3s ease; 779 display: flex; 780 align-items: center; 781 justify-content: center; 782 gap: 8px; 783 text-decoration: none; 784 } 785 786 .cta-button:hover { 787 box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 100px inset; 788 transform: translateY(-1px); 789 } 790 791 .cta-button img { 792 width: 20px; 793 height: 20px; 794 flex-shrink: 0; 795 } 796 797 /* Additional Products Callouts */ 798 .additional-products { 799 margin-top: 32px; 800 padding-top: 32px; 801 border-top: 1px solid #404040; 802 display: flex; 803 flex-direction: column; 804 gap: 16px; 805 align-items: center; 806 } 807 808 .additional-product-item { 809 display: flex; 810 align-items: center; 811 justify-content: center; 812 flex-wrap: wrap; 813 gap: 8px; 814 text-align: center; 815 } 816 817 .additional-product-text { 818 color: #A7A7A7; 819 font-size: 0.9rem; 820 font-weight: 400; 821 } 822 823 .additional-product-link { 824 color: white; 825 text-decoration: underline; 826 font-size: 0.9rem; 827 font-weight: 500; 828 transition: color 0.3s ease; 829 } 830 831 .additional-product-link:hover { 832 color: #A7EAC3; 833 text-decoration: none; 834 } 835 836 837 838 @media (max-width: 768px) { 839 .pricing-title { 840 font-size: 2rem; 841 } 842 843 .pricing-controls { 844 flex-direction: column; 845 } 846 847 .tabs-container { 848 width: 100%; 849 max-width: 400px; 850 } 851 852 .users-container { 853 flex-direction: column; 854 gap: 24px; 855 max-width: none; 856 } 857 858 .team-size-section { 859 width: 100%; 860 justify-content: center; 861 } 862 863 .billing-toggle-container { 864 align-self: center; 865 } 866 867 .users-input { 868 width: 80px; 869 } 870 871 .pricing-grid { 872 grid-template-columns: 1fr; 873 } 874 875 876 } 877 </style> 878 879<div class="pricing-container"> 880 <div class="pricing-header"> 881 <h1 class="pricing-title">Pricing</h1> 882 <p class="pricing-subtitle">Our secret scanners have simple, transparent pricing that adapts from 1 seat to 10,000+.</p> 883 </div> 884
885 <div class="pricing-controls"> 886 <div class="tabs-container"> 887 <button class="tab-button active" id="datacenterTab">Data Center</button> 888 <button class="tab-button" id="cloudTab">Cloud</button> 889 </div> 890 891 <div class="tab-content"> 892 <div class="users-container"> 893 <div class="team-size-section"> 894 <label class="users-label">Team size:</label> 895 <div class="users-input-container"> 896 <input type="number" min="1" max="10000" value="50" class="users-input" id="usersInput" placeholder="50"> 897 </div> 898 </div> 899 <div class="billing-toggle-container" style="display: none;"> 900 <button class="billing-toggle-button active" id="monthlyBtn">Monthly</button> 901 <button class="billing-toggle-button save" id="yearlyBtn">Yearly (2 months free)</button> 902 </div> 903 </div> 904 905 <div class="pricing-grid"> 906 <div class="pricing-card"> 907 <div class="card-content"> 908 <div class="product-icon"> 909 <img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645ea475f88acc0a70164664_confluence-atlassian-mark.svg" alt="Confluence" loading="lazy"> 910 </div> 911 <h3 class="product-name">Security for Confluence</h3> 912 <p class="product-subtitle" id="confluence-subtitle">Data Center</p> 913 914 <div class="price-display"> 915 <div class="price-amount"> 916 <span class="price-currency">$</span> 917 <span id="confluence-price">399</span> 918 <span class="price-period">/month</span> 919 </div> 920 <p class="price-note">Billed annually</p> 921 </div> 922 923 <p class="product-description">Find and manage sensitive information stored in Confluence before it becomes a security risk.</p> 924 925 <ul class="features-list" id="confluence-features-cloud" style="display: none;"> 926 <li><span class="feature-check">â</span>Scan spaces and pages automaticall y</li> 927 <li><span class="feature-check">â</span>Historical content scanning</li> 928 <li><span class="feature-check">â</span>Built-in detection patterns</li> 929 <li><span class="feature-check">â</span>Custom rules and patterns</li> 930 <li><span class="feature-check">â</span>Manage scan findings in native dashboard</li> 931 <li><span class="feature-check">â</span>Downloadable reports of scan findings</li> 932 </ul> 933 934 <ul class="features-list" id="confluence-features-datacenter"> 935 <li><span class="feature-check">â</span>Scan spaces, pages, comments, and attachments automatically</li> 936 <li><span class="feature-check">â</span>Historical content scanning</li> 937 <li><span class="feature-check">â</span>Built-in detection patterns</li> 938 <li><span class="feature-check">â</span>Custom rules and patterns</li> 939 <li><span class="feature-check">â</span>Manage scan findings in native dashboard</li> 940 <li><span class="feature-check">â</span>Downloadable reports of scan findings</li> 941 <li><span class="feature-check">â</span>Email alerts to content authors</li> 942 <li><span class="feature-check">â</span>REST API integration</li> 943 <li><span class="feature-check">â</span>Audit log integration</li> 944 </ul> 945 946 <a href="#" class="cta-button" id="confluence-cta" target="_blank"> 947 <img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6460ef8885d0ef5c36df032d_atlassian-mark.svg" alt="Atlassian logo mark" loading="lazy">
948 <span>Try for Free</span> 949 </a> 950 </div> 951 </div> 952 953 <div class="pricing-card"> 954 <div class="card-content"> 955 <div class="product-icon"> 956 <img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6489f3c19e51b9bca517826c_jira-mark.svg" alt="Jira" loading="lazy"> 957 </div> 958 <h3 class="product-name">Security for Jira</h3> 959 <p class="product-subtitle" id="jira-subtitle">Data Center</p> 960 961 <div class="price-display"> 962 <div class="price-amount"> 963 <span class="price-currency">$</span> 964 <span id="jira-price">349</span> 965 <span class="price-period">/month</span> 966 </div> 967 <p class="price-note">Billed annually</p> 968 </div> 969 970 <p class="product-description">Detect and remove sensitive information from Jira to prevent exposure.</p> 971 972 <ul class="features-list" id="jira-features-cloud" style="display: none;"> 973 <li><span class="feature-check">â</span>Scan projects, issues, and comments</li> 974 <li><span class="feature-check">â</span>Historical issue scanning</li> 975 <li><span class="feature-check">â</span>Built-in detection patterns</li> 976 <li><span class="feature-check">â</span>Custom rules and patterns</li> 977 <li><span class="feature-check">â</span>Manage scan findings in native dashboard</li> 978 <li><span class="feature-check">â</span>Downloadable reports of scan findings</li> 979 </ul> 980 981 <ul class="features-list" id="jira-features-datacenter"> 982 <li><span class="feature-check">â</span>Scan projects, issues, comments, and attachments</li> 983 <li><span class="feature-check">â</span>Historical issue scanning</li> 984 <li><span class="feature-check">â</span>Built-in detection patterns</li> 985 <li><span class="feature-check">â</span>Custom rules and patterns</li> 986 <li><span class="feature-check">â</span>Manage scan findings in native dashboard</li> 987 <li><span class="feature-check">â</span>Downloadable reports of scan findings</li> 988 <li><span class="feature-check">â</span>Email alerts to content authors</li> 989 <li><span class="feature-check">â</span>REST API integration</li> 990 <li><span class="feature-check">â</span>Audit log integration</li> 991 </ul> 992 993 <a href="#" class="cta-button" id="jira-cta" target="_blank"> 994 <img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6460ef8885d0ef5c36df032d_atlassian-mark.svg" alt="Atlassian logo mark" loading="lazy"> 995 <span>Try for Free</span> 996 </a> 997 </div> 998 </div> 999 1000 <div class="pricing-card" id="bitbucket-card"> 1001 <div class="card-content"> 1002 <div class="product-icon"> 1003 <img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645e66f0defe69ec365aa43d_bitbucket-atlassian-mark.svg" alt="Bitbucket" loading="lazy"> 1004 </div> 1005 <h3 class="product-name">Security for Bitbucket</h3> 1006 <p class="product-subtitle" id="bitbucket-subtitle">Data Center</p> 1007 1008 <div class="price-display"> 1009 <div class="price-amount"> 1010 <span class="price-currency">$</span> 1011 <span id="bitbucket-price">299</span> 1012 <span class="price-period">/month</span> 1013 </div> 1014 <p class="price-note">Billed annually</p> 1015 </div> 1016 1017 <p class="product-description" id="bitbucket-description">
1017Protect your codebase by scanning sensitive data in commits and existing repositories.</p> 1018 1019 <div class="unavailable-message" id="bitbucket-unavailable" style="display: none;"> 1020 <p class="unavailable-text">Not yet available for Bitbucket Cloud</p> 1021 <p class="unavailable-subtext">Contact us for updates on availability</p> 1022 </div> 1023 1024 <ul class="features-list" id="bitbucket-features-cloud" style="display: none;"> 1025 <li><span class="feature-check feature-unavailable">â</span>Not yet available for Bitbucket Cloud</li> 1026 <li><span class="feature-check feature-unavailable">â</span>Contact us for updates on availability</li> 1027 </ul> 1028 1029 <ul class="features-list" id="bitbucket-features-datacenter"> 1030 <li><span class="feature-check">â</span>Block commits with secrets automatically</li> 1031 <li><span class="feature-check">â</span>Scan all existing repositories</li> 1032 <li><span class="feature-check">â</span>Built-in detection patterns</li> 1033 <li><span class="feature-check">â</span>Custom rules and patterns</li> 1034 <li><span class="feature-check">â</span>Manage scan findings in native dashboard</li> 1035 <li><span class="feature-check">â</span>REST API integration</li> 1036 <li><span class="feature-check">â</span>Audit log integration</li> 1037 </ul> 1038 1039 <a href="#" class="cta-button" id="bitbucket-cta" target="_blank"> 1040 <img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6460ef8885d0ef5c36df032d_atlassian-mark.svg" alt="Atlassian logo mark" loading="lazy"> 1041 <span>Try for Free</span> 1042 </a> 1043 </div> 1044 </div> 1045 </div> 1046 1047 <!-- Additional Products Callouts --> 1048 <div class="additional-products"> 1049 <div class="additional-product-item"> 1050 <span class="additional-product-text">Looking for IntelliJ pricing? </span> 1051 <a href="https://plugins.jetbrains.com/plugin/23743-soteri-secret-scanner/pricing" target="_blank" class="additional-product-link">See our marketplace page</a> 1052 </div> 1053 <div class="additional-product-item"> 1054 <span class="additional-product-text">Interested in our generic scanning service API? </span> 1055 <a href="https://soteri.atlassian.net/servicedesk/customer/portal/2/group/2/create/15" target="_blank" class="additional-product-link">Contact us for pricing</a> 1056 </div> 1057 </div> 1058 </div> 1059 </div> 1060 </div> 1061
1062<script> 1063 // Tab functionality 1064 const cloudTab = document.getElementById('cloudTab'); 1065 const datacenterTab = document.getElementById('datacenterTab'); 1066 const usersInput = document.getElementById('usersInput'); 1067 const yearlyBtn = document.getElementById('yearlyBtn'); 1068 const monthlyBtn = document.getElementById('monthlyBtn'); 1069 1070 let isDataCenter = true; 1071 let isYearly = false; 1072 1073 cloudTab.addEventListener('click', function() { 1074 if (!isDataCenter) return; // Already selected 1075 isDataCenter = false; 1076 cloudTab.classList.add('active'); 1077 datacenterTab.classList.remove('active'); 1078 1079 // Show billing toggle for cloud 1080 document.querySelector('.billing-toggle-container').style.display = 'flex'; 1081 updatePricing(); 1082 }); 1083 1084 datacenterTab.addEventListener('click', function() { 1085 if (isDataCenter) return; // Already selected 1086 isDataCenter = true; 1087 datacenterTab.classList.add('active'); 1088 cloudTab.classList.remove('active'); 1089 1090 // Hide billing toggle for data center (annual only) 1091 document.querySelector('.billing-toggle-container').style.display = 'none'; 1092 updatePricing(); 1093 }); 1094 1095 // Users input functionality 1096 usersInput.addEventListener('input', function() { 1097 updatePricing(); 1098 }); 1099 1100 // Billing toggle functionality 1101 yearlyBtn.addEventListener('click', function() { 1102 if (isYearly) return; // Already selected 1103 isYearly = true; 1104 yearlyBtn.classList.add('active'); 1105 monthlyBtn.classList.remove('active'); 1106 updatePricing(); 1107 }); 1108 1109 monthlyBtn.addEventListener('click', function() { 1110 if (!isYearly) return; // Already selected 1111 isYearly = false; 1112 monthlyBtn.classList.add('active'); 1113 yearlyBtn.classList.remove('active'); 1114 updatePricing(); 1115 }); 1116 1117 function calculateCloudPrice(users, perUserRates) { 1118 if (users <= 10) return 0; 1119 1120 let total = 0; 1121 let prevMax = 0; 1122 1123 for (let i = 0; i < perUserRates.length; i++) { 1124 const tier = perUserRates[i]; 1125 const tierMax = tier.maxUsers; 1126 1127 if (users <= prevMax) break; 1128 1129 // Users that fall into this tier's bracket: (prevMax, tierMax] 1130 const usersInThisTier = Math.min(users, tierMax) - prevMax; 1131 1132 if (usersInThisTier > 0) { 1133 if (tier.perUser !== undefined) { 1134 total += usersInThisTier * tier.perUser; 1135 } 1136 } 1137 1138 prevMax = tierMax; 1139 } 1140 1141 return total; 1142 } 1143 1144 function calculateDataCenterPrice(users, pricingTiers) { 1145 // Find the appropriate tier based on user count 1146 for (let i = 0; i < pricingTiers.length; i++) { 1147 const tier = pricingTiers[i]; 1148 if (users <= tier.maxUsers) { 1149 return tier.annualPrice; 1150 } 1151 } 1152 // If no tier found, use the last tier's price 1153 const lastTier = pricingTiers[pricingTiers.length - 1]; 1154 return lastTier.annualPrice; 1155 } 1156 1157 function updatePricing() { 1158 const users = parseInt(usersInput.value) || 50; 1159 1160 // Confluence Cloud pricing tiers (monthly per user) 1161 const confluenceCloudRates = [ 1162 { maxUsers: 10, perUser: 1.32 }, 1163 { maxUsers: 100, perUser: 1.32 }, 1164 { maxUsers: 250, perUser: 0.93 }, 1165 { maxUsers: 1000, perUser: 0.84 }, 1166 { maxUsers: 2500, perUser: 0.64 }, 1167 { maxUsers: 5000, perUser: 0.61 }, 1168 { maxUsers: 7500, perUser: 0.61 }, 1169 { maxUsers: 10000, perUser: 0.54 }, 1170 { maxUsers: 15000, perUser: 0.50 }, 1171 { maxUsers: 20000, perUser: 0.46 }, 1172 { maxUsers: 25000, perUser: 0.42 }, 1173 { maxUsers: 30000, perUser: 0.38 }, 1174 { maxUsers: 35000, perUser: 0.30 }, 1175 { maxUsers: 40000, perUser: 0.28 }, 1176 { maxUsers: 45000, perUser: 0.22 }, 1177 { maxUsers: 50000, perUser: 0.22 }, 1178 { maxUsers: 60000, perUser: 0.22 }, 1179 { maxUsers: 70000, perUser: 0.22 }, 1180 { maxUsers: 80000, perUser: 0.22 }, 1181 { maxUsers: 90000, perUser: 0.22 }, 1182 { maxUsers: 100000, perUser: 0.22 }, 1183 { maxUsers: 110000, perUser: 0.22 }, 1184 { maxUsers: 120000, perUser: 0.22 }, 1185 { maxUsers: 130000, perUser: 0.22 }, 1186 { maxUsers: 140000, perUser: 0.22 }, 1187 { maxUsers: 150000, perUser: 0.22 }, 1188 { maxUsers: 999999, perUser: 0.22 } // 150001+ users 1189 ]; 1190 1191 // Placeholder pricing for other products (to be replaced) 1192 const bitbucketCloudRates = [ 1193 { maxUsers: 10, flatFee: 0 }, 1194 { maxUsers: 100, perUser: 0.50 }, 1195 { maxUsers: 250, perUser: 0.40 }, 1196 { maxUsers: 1000, perUser: 0.30 }, 1197 { maxUsers: 150000, perUser: 0.25 } 1198 ]; 1199 1200 const jiraCloudRates = [ 1201 { maxUsers: 10, perUser: 0.82 }, 1202 { maxUsers: 100, perUser: 1.74 }, 1203 { maxUsers: 250, perUser: 1.25 }, 1204 { maxUsers: 1000, perUser: 1.10 }, 1205 { maxUsers: 2500, perUser: 0.84 }, 1206 { maxUsers: 5000, perUser: 0.80 }, 1207 { maxUsers: 7500, perUser: 0.80 }, 1208 { maxUsers: 10000, perUser: 0.71 }, 1209 { maxUsers: 15000, perUser: 0.66 }, 1210 { maxUsers: 20000, perUser: 0.60 }, 1211 { maxUsers: 25000, perUser: 0.55 }, 1212 { maxUsers: 30000, perUser: 0.50 }, 1213 { maxUsers: 35000, perUser: 0.40 }, 1214 { maxUsers: 40000, perUser: 0.37 }, 1215 { maxUsers: 45000, perUser: 0.34 }, 1216 { maxUsers: 50000, perUser: 0.29 }, 1217 { maxUsers: 150000, perUser: 0.29 } // 50k+ all use 0.23 1218 ]; 1219 1220 // Bitbucket Data Center pricing tiers (annual flat fees) 1221 const bitbucketDataCenterRates = [ 1222 { maxUsers: 25, annualPrice: 10 },
1223 { maxUsers: 50, annualPrice: 600 }, 1224 { maxUsers: 100, annualPrice: 2850 }, 1225 { maxUsers: 250, annualPrice: 5700 }, 1226 { maxUsers: 500, annualPrice: 7575 }, 1227 { maxUsers: 1000, annualPrice: 11400 }, 1228 { maxUsers: 2000, annualPrice: 22000 }, 1229 { maxUsers: 3000, annualPrice: 32000 }, 1230 { maxUsers: 4000, annualPrice: 41500 }, 1231 { maxUsers: 5000, annualPrice: 50000 }, 1232 { maxUsers: 6000, annualPrice: 60000 }, 1233 { maxUsers: 7000, annualPrice: 76000 }, 1234 { maxUsers: 8000, annualPrice: 79000 }, 1235 { maxUsers: 9000, annualPrice: 82000 }, 1236 { maxUsers: 10000, annualPrice: 85000 }, 1237 { maxUsers: 11000, annualPrice: 88000 }, 1238 { maxUsers: 12000, annualPrice: 91000 }, 1239 { maxUsers: 13000, annualPrice: 94000 }, 1240 { maxUsers: 14000, annualPrice: 97000 }, 1241 { maxUsers: 15000, annualPrice: 100000 }, 1242 { maxUsers: 16000, annualPrice: 103000 }, 1243 { maxUsers: 17000, annualPrice: 106000 }, 1244 { maxUsers: 18000, annualPrice: 109000 }, 1245 { maxUsers: 19000, annualPrice: 112000 }, 1246 { maxUsers: 20000, annualPrice: 115000 }, 1247 { maxUsers: 21000, annualPrice: 118000 }, 1248 { maxUsers: 22000, annualPrice: 121000 }, 1249 { maxUsers: 23000, annualPrice: 124000 }, 1250 { maxUsers: 24000, annualPrice: 127000 }, 1251 { maxUsers: 25000, annualPrice: 130000 }, 1252 { maxUsers: 26000, annualPrice: 133000 }, 1253 { maxUsers: 27000, annualPrice: 136000 }, 1254 { maxUsers: 28000, annualPrice: 139000 }, 1255 { maxUsers: 29000, annualPrice: 142000 }, 1256 { maxUsers: 30000, annualPrice: 145000 }, 1257 { maxUsers: 31000, annualPrice: 148000 }, 1258 { maxUsers: 32000, annualPrice: 151000 }, 1259 { maxUsers: 33000, annualPrice: 154000 }, 1260 { maxUsers: 34000, annualPrice: 157000 }, 1261 { maxUsers: 35000, annualPrice: 160000 }, 1262 { maxUsers: 36000, annualPrice: 163000 }, 1263 { maxUsers: 37000, annualPrice: 166000 }, 1264 { maxUsers: 38000, annualPrice: 169000 }, 1265 { maxUsers: 39000, annualPrice: 172000 }, 1266 { maxUsers: 40000, annualPrice: 175000 }, 1267 { maxUsers: 41000, annualPrice: 178000 }, 1268 { maxUsers: 42000, annualPrice: 181000 }, 1269 { maxUsers: 43000, annualPrice: 184000 }, 1270 { maxUsers: 44000, annualPrice: 187000 }, 1271 { maxUsers: 45000, annualPrice: 190000 }, 1272 { maxUsers: 46000, annualPrice: 193000 }, 1273 { maxUsers: 47000, annualPrice: 196000 }, 1274 { maxUsers: 48000, annualPrice: 199000 }, 1275 { maxUsers: 49000, annualPrice: 202000 }, 1276 { maxUsers: 999999, annualPrice: 205000 } // 49001+ users 1277 ]; 1278 1279 // Confluence Data Center pricing tiers (annual flat fees) 1280 const confluenceDataCenterRates = [ 1281 { maxUsers: 500, annualPrice: 9200 }, 1282 { maxUsers: 1000, annualPrice: 11500 }, 1283 { maxUsers: 2000, annualPrice: 16100 }, 1284 { maxUsers: 3000, annualPrice: 21300 }, 1285 { maxUsers: 4000, annualPrice: 26000 }, 1286 { maxUsers: 5000, annualPrice: 28500 }, 1287 { maxUsers: 10000, annualPrice: 31500 }, 1288 { maxUsers: 15000, annualPrice: 34000 }, 1289 { maxUsers: 20000, annualPrice: 36500 }, 1290 { maxUsers: 25000, annualPrice: 39000 }, 1291 { maxUsers: 30000, annualPrice: 41500 }, 1292 { maxUsers: 35000, annualPrice: 44000 }, 1293 { maxUsers: 40000, annualPrice: 46500 }, 1294 { maxUsers: 45000, annualPrice: 50000 }, 1295 { maxUsers: 50000, annualPrice: 55000 }, 1296 { maxUsers: 60000, annualPrice: 60000 }, 1297 { maxUsers: 70000, annualPrice: 65000 }, 1298 { maxUsers: 80000, annualPrice: 70000 }, 1299 { maxUsers: 90000, annualPrice: 75000 }, 1300 { maxUsers: 100000, annualPrice: 80000 }, 1301 { maxUsers: 110000, annualPrice: 85000 }, 1302 { maxUsers: 120000, annualPrice: 90000 }, 1303 { maxUsers: 130000, annualPrice: 95000 }, 1304 { maxUsers: 140000, annualPrice: 100000 }, 1305 { maxUsers: 150000, annualPrice: 105000 }, 1306 { maxUsers: 999999, annualPrice: 110000 } // 150001+ users 1307 ]; 1308 1309 // Jira Data Center pricing tiers (annual flat fees) 1310 const jiraDataCenterRates = [ 1311 { maxUsers: 50, annualPrice: 2400 }, 1312 { maxUsers: 100, annualPrice: 4800 }, 1313 { maxUsers: 250, annualPrice: 9900 }, 1314 { maxUsers: 500, annualPrice: 16500 }, 1315 { maxUsers: 750, annualPrice: 20500 }, 1316 { maxUsers: 1000, annualPrice: 24000 }, 1317 { maxUsers: 2000, annualPrice: 30500 }, 1318 { maxUsers: 3000, annualPrice: 33000 }, 1319 { maxUsers: 4000, annualPrice: 35500 }, 1320 { maxUsers: 5000, annualPrice: 38000 }, 1321 { maxUsers: 6000, annualPrice: 40500 }, 1322 { maxUsers: 7000, annualPrice: 42500 }, 1323 { maxUsers: 8000, annualPrice: 45000 }, 1324 { maxUsers: 9000, annualPrice: 47500 }, 1325 { maxUsers: 10000, annualPrice: 50000 }, 1326 { maxUsers: 11000, annualPrice: 52500 }, 1327 { maxUsers: 12000, annualPrice: 55000 }, 1328 { maxUsers: 13000, annualPrice: 56500 }, 1329 { maxUsers: 14000, annualPrice: 59000 }, 1330 { maxUsers: 15000, annualPrice: 61500 }, 1331 { maxUsers: 20000, annualPrice: 64500 }, 1332 { maxUsers: 25000, annualPrice: 68000 }, 1333 { maxUsers: 30000, annualPrice: 72000 }, 1334 { maxUsers: 35000, annualPrice: 76000 }, 1335 { maxUsers: 40000, annualPrice: 80000 }, 1336 { maxUsers: 45000, annualPrice: 84000 }, 1337 { maxUsers: 50000, annualPrice: 88000 }, 1338 { maxUsers: 60000, annualPrice: 90000 }, 1339 { maxUsers: 70000, annualPrice: 92000 }, 1340 { maxUsers: 80000, annualPrice: 95000 }, 1341 { maxUsers: 90000, annualPrice: 97000 }, 1342 { maxUsers: 100000, annualPrice: 99000 }, 1343 { maxUsers: 110000, annualPrice: 100000 }, 1344 { maxUsers: 120000, annualPrice: 105000 }, 1345 { maxUsers: 130000, annualPrice: 110000 }, 1346 { maxUsers: 140000, annualPrice: 115000 }, 1347 { maxUsers: 150000, annualPrice: 120000 }, 1348 { maxUsers: 999999, annualPrice: 125000 } // 150001+ users 1349 ]; 1350 1351 let bitbucketPrice, confluencePrice, jiraPrice; 1352 1353 if (isDataCenter) { 1354 // Data Center pricing (annual only) 1355 bitbucketPrice = calculateDataCenterPrice(users, bitbucketDataCenterRates); 1356 confluencePrice = calculateDataCenterPrice(users, confluenceDataCenterRates); 1357 jiraPrice = calculateDataCenterPrice(users, jiraDataCenterRates); 1358 } else { 1359 // Cloud pricing 1360 bitbucketPrice = calculateCloudPrice(users, bitbucketCloudRates); 1361 confluencePrice = calculateCloudPrice(users, confluenceCloudRates); 1362 jiraPrice = calculateCloudPrice(users, jiraCloudRates); 1363 1364 // For yearly plans, show annual cost (monthly * 10 for 2 months free) 1365 if (isYearly) { 1366 bitbucketPrice = bitbucketPrice * 10; 1367 confluencePrice = confluencePrice * 10; 1368 jiraPrice = jiraPrice * 10; 1369 } 1370 } 1371 1372 // Update price displays - convert annual prices to monthly display 1373 let displayBitbucketPrice, displayConfluencePrice, displayJiraPrice; 1374 1375 if (isDataCenter) { 1376 // For Data Center (annual billing), show monthly equivalent 1377 displayBitbucketPrice = Math.round(bitbucketPrice / 12); 1378 displayConfluencePrice = Math.round(confluencePrice / 12); 1379 displayJiraPrice = Math.round(jiraPrice / 12); 1380 } else if (isYearly) { 1381 // For Cloud yearly plans, show monthly equivalent 1382 displayBitbucketPrice = Math.round(bitbucketPrice / 12); 1383 displayConfluencePrice = Math.round(confluencePrice / 12); 1384 displayJiraPrice = Math.round(jiraPrice / 12); 1385 } else { 1386 // For monthly plans, show as-is 1387 displayBitbucketPrice = Math.round(bitbucketPrice); 1388 displayConfluencePrice = Math.round(confluencePrice); 1389 displayJiraPrice = Math.round(jiraPrice); 1390 } 1391 1392 document.getElementById('bitbucket-price').textContent = displayBitbucketPrice; 1393 document.getElementById('confluence-price').textContent = displayConfluencePrice; 1394 document.getElementById('jira-price').textContent = displayJiraPrice; 1395 1396 // Update period text and billing note 1397 let period, billingNote; 1398 if (isDataCenter) { 1399 period = '/month'; 1400 billingNote = 'Billed annually'; 1401 } else if (isYearly) { 1402 period = '/month'; 1403 billingNote = 'Billed annually'; 1404 } else { 1405 period = '/month'; 1406 billingNote = 'Billed monthly'; 1407 } 1408 1409 document.querySelectorAll('.price-period').forEach(el => { 1410 el.textContent = period; 1411 }); 1412 1413 document.querySelectorAll('.price-note').forEach(el => { 1414 el.textContent = billingNote; 1415 }); 1416 1417 // Update CTA button URLs based on deployment type 1418 const hosting = isDataCenter ? 'datacenter' : 'cloud'; 1419 const baseUrl = 'https://marketplace.atlassian.com/apps'; 1420 1421 // Special handling for Bitbucket Cloud (not available) 1422 if (isDataCenter) { 1423 document.getElementById('bitbucket-cta').href = `${baseUrl}/1221399/security-for-bitbucket-enhanced-secret-scanner-by-soteri?tab=overview&hosting=${hosting}&utm_source=soteri.io&utm_medium=pricing_page&utm_campaign=sfb`; 1424 document.getElementById('bitbucket-cta').querySelector('span').textContent = 'Try for Free'; 1425 } else { 1426 document.getElementById('bitbucket-cta').href = 'https://soteri.atlassian.net/servicedesk/customer/portal/2/group/2/create/15'; 1427 document.getElementById('bitbucket-cta').querySelector('span').textContent = 'Contact Us'; 1428 } 1429 1430 document.getElementById('confluence-cta').href = `${baseUrl}/1224167/security-for-confluence-enhanced-secret-scanner-by-soteri?tab=overview&hosting=${hosting}&utm_source=soteri.io&utm_medium=pricing_page&utm_campaign=sfc`;
1431 document.getElementById('jira-cta').href = `${baseUrl}/1229376/security-for-jira-enhanced-secret-scanner-by-soteri?tab=overview&hosting=${hosting}&utm_source=soteri.io&utm_medium=pricing_page&utm_campaign=sfj`; 1432 1433 // Update product subtitles based on deployment type 1434 const deploymentType = isDataCenter ? 'Data Center' : 'Cloud'; 1435 document.querySelector('#bitbucket-subtitle').textContent = deploymentType; 1436 document.querySelector('#confluence-subtitle').textContent = deploymentType; 1437 document.querySelector('#jira-subtitle').textContent = deploymentType; 1438 1439 // Show/hide appropriate feature lists based on deployment type 1440 if (isDataCenter) { 1441 // Show Data Center features, hide Cloud features 1442 document.getElementById('bitbucket-card').classList.remove('unavailable'); 1443 document.getElementById('bitbucket-description').style.display = 'block'; 1444 document.getElementById('bitbucket-unavailable').style.display = 'none'; 1445 document.querySelector('#bitbucket-card .price-display').style.display = 'block'; 1446 document.getElementById('bitbucket-features-cloud').style.display = 'none'; 1447 document.getElementById('bitbucket-features-datacenter').style.display = 'block'; 1448 document.getElementById('confluence-features-cloud').style.display = 'none'; 1449 document.getElementById('confluence-features-datacenter').style.display = 'block'; 1450 document.getElementById('jira-features-cloud').style.display = 'none'; 1451 document.getElementById('jira-features-datacenter').style.display = 'block'; 1452 } else { 1453 // Show Cloud features, hide Data Center features 1454 // Special handling for Bitbucket Cloud (not available) 1455 document.getElementById('bitbucket-card').classList.add('unavailable'); 1456 document.getElementById('bitbucket-description').style.display = 'none'; 1457 document.getElementById('bitbucket-unavailable').style.display = 'block'; 1458 document.querySelector('#bitbucket-card .price-display').style.display = 'none'; 1459 document.getElementById('bitbucket-features-cloud').style.display = 'none'; 1460 document.getElementById('bitbucket-features-datacenter').style.display = 'none'; 1461 document.getElementById('confluence-features-cloud').style.display = 'block'; 1462 document.getElementById('confluence-features-datacenter').style.display = 'none'; 1463 document.getElementById('jira-features-cloud').style.display = 'block'; 1464 document.getElementById('jira-features-datacenter').style.display = 'none'; 1465 } 1466 } 1467 1468 // Initialize pricing 1469 updatePricing(); 1470</script>
1470</div></div></section><section class="section_faqs"><div class="padding-global"><div class="container-small"><div class="padding-section-medium"><div class="faq-wrapper"><h2>Atlassian App Pricing FAQs</h2><p class="max-width-medium">For more pricing and licensing details, <a href="https://docs.soteri.io/support/latest/licensing-and-pricing-for-soteri-s-atlassian-apps" target="_blank">see our wiki page</a>.<br/><strong>Need human guidance? Start a chat with our engineers in the bottom right.</strong></p><div class="faq1_component"><div class="faq1_item"><h3 class="heading-style-h4">How does pricing work for Soteri's secret scanners?</h3><p class="margin-0">Soteri's apps are available through the Atlassian Marketplace with subscription-based pricing that varies by the number of users on your Atlassian instance. <br/>â<br/><strong>Cloud apps</strong> can be purchased monthly or annually, while <strong>Data Center apps</strong> require an annual subscription. <br/><br/>Your app license tier must match your Atlassian product's user tier exactly - for example, if you have a 500-user Confluence license, you will need a 500-user Soteri app license.</p></div><div class="faq1_item"><h3 class="heading-style-h4">What's the difference between Cloud and Data Center pricing?</h3><p class="margin-0"><strong>Cloud pricing</strong> is per-user monthly with volume discounts as you scale. Teams up to 10 users can use any of our apps free, then pricing starts at under $1 per user per month. Annual plans save you 2 months (~17% discount). <br/><br/><strong>Data Center pricing</strong> uses annual flat-fee tiers starting as low as $10 for small teams up to 25 users, with enterprise pricing available for larger organizations.</p></div><div class="faq1_item"><h3 class="heading-style-h4">Can I try Soteri apps before purchasing?</h3><p class="margin-0">Absolutely! <strong>Cloud apps</strong> include a free 30-day evaluation period that automatically starts when you install from the Atlassian Marketplace. <strong>Data Center apps</strong> come with a 30-day free trial that can be extended up to 6 times (6 months total) by generating new evaluation licenses. <br/><br/>Plus, teams with 10 or fewer users get our Cloud apps completely free.</p></div><div class="faq1_item"><h3 class="heading-style-h4">What happens if my team size changes?</h3><p class="margin-0"><strong>Cloud subscriptions </strong>automatically adjust each billing cycle based on your current user countâyou only pay for active users. <br/><br/>â<strong>Data Center licenses</strong> are purchased for specific user tiers, so you'll need to upgrade to the next tier if you exceed your current limit.</p></div><div class="faq1_item"><h3 class="heading-style-h4">How do I purchase and manage billing?</h3><p class="margin-0">All purchasing, billing and licensing is handled directly through the Atlassian Marketplace. For billing questions, refunds, or payment issues, contact <a href="https://www.atlassian.com/company/contact/purchasing-licensing">Atlassian's billing team</a>. For product support or multi-app discounts, reach out through our <a href="https://soteri.atlassian.net/servicedesk/customer/portal/2">support portal</a>.</p></div><div class="faq1_item"><h3 class="heading-style-h4">Do you offer discounts for buying multiple Soteri products?</h3><p class="margin-0">Yes! We offer volume discounts when you purchase multiple Soteri security apps for your Atlassian environment. Contact us through <a href="https://soteri.atlassian.net/servicedesk/customer/portal/2">support</a>, or <a href="https://calendly.com/soteri-scheduling/demo-with-soteri">book a demo</a> to get a personalized quote for multiple products.</p></div><div class="faq1_item faq-last"><h3 class="heading-style-h4">What if I need help choosing the right plan?</h3><p class="margin-0">We're here to help! Start by entering your team size in the calculator above to see real-time pricing for all three products.<br/>â<br/>For complex deployments, multi-product purchases, or enterprise pricing discussions, book a demo with us, or contact our team through the support portal. We can provide custom quotes and help you run a successful evaluation based on your organization'
1470s needs. </p></div></div></div></div></div></div></section></main><footer class="section_footer"><section class="section_footer_newsletter background-color-dark-gray"><div class="padding-global"><div class="container-large"><div class="padding-section-small"><div class="newsletter-wrapper"><div id="w-node-_422ddcb8-9bf6-17e9-89c1-24ea32b2ba42-33050b6c"><div class="heading-style-h4">Join Our Monthly Deep Dive on the Latest Breach/CVE</div><div class="text-style-muted text-size-small">Unsubscribe anytime ⢠We occasionally send other emails</div></div><div><div class="w-embed w-script">
1470<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/embed/v2.js"></script>
vendor: 1 bytes, line 1470
1470
1471<script> 1472 hbspt.forms.create({ 1473 region: "na1", 1474 portalId: "22284699", 1475 formId: "37ca1f9f-d26b-4d39-ac06-72ec8085741f" 1476 }); 1477</script>
1477 1478 1479<style> 1480form#hsForm_37ca1f9f-d26b-4d39-ac06-72ec8085741f { 1481 flex-direction: row; 1482 align-items: center; 1483 gap: 12px; 1484 align-items: flex-start; 1485 flex-wrap: wrap; 1486} 1487form#hsForm_37ca1f9f-d26b-4d39-ac06-72ec8085741f input[type="email"] { 1488 border-radius: 50px; 1489 background: transparent; 1490 border-color: #A7A7A7; 1491 color: white; 1492 min-width: 300px; 1493} 1494form#hsForm_37ca1f9f-d26b-4d39-ac06-72ec8085741f input[type="submit"] { 1495 width: 100%; 1496 margin: 0; 1497} 1498form#hsForm_37ca1f9f-d26b-4d39-ac06-72ec8085741f #label-email-37ca1f9f-d26b-4d39-ac06-72ec8085741f { 1499 visibility: hidden; 1500 margin: 0; 1501} 1502form#hsForm_37ca1f9f-d26b-4d39-ac06-72ec8085741f .hs_recaptcha { 1503 order: 3; 1504} 1505form#hsForm_37ca1f9f-d26b-4d39-ac06-72ec8085741f .grecaptcha-badge { 1506 transform: scale(0.8); 1507 box-shadow: none !important; 1508 transform-origin: 0 50% 1509} 1510</style></div></div></div></div></div></div></section><section class="section_footer_main"><div class="padding-global"><div class="container-large"><div class="padding-section-medium"><div class="w-layout-grid footer9_top-wrapper"><div class="footer9_compnay-wrapper"><a href="/" class="footer9_logo-link w-nav-brand"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/646cc674e94c5dc81efc8300_logo-with-mark-light.svg" loading="lazy" width="218" height="42" alt="Soteri Logo White"/></a><div class="footer-icons"><a title="LinkedIn" href="https://www.linkedin.com/company/soteri/" target="_blank" class="link-block-2 icon-gray w-inline-block"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/65b3c5ecd8495433c89e7f5d_linkedin-color.svg" loading="lazy" width="30" height="30" alt="" class="hide-mobile-portrait"/></a><a title="Safebase.io" href="https://soteri.safebase.us/" target="_blank" class="link-block-2 icon-gray w-inline-block"><img src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/65b3c43e5b7f60a955b11c46_safebase-mark.svg" loading="lazy" width="30" height="30" alt="Safebase mark" class="hide-mobile-portrait"/></a></div></div><div class="w-layout-grid footer9_menu-wrapper"><div id="w-node-_5049682e-e446-24ea-82cc-683c8e19643e-33050b6c" class="footer9_link-list"><div class="margin-bottom margin-xsmall"><div class="text-weight-semibold">Products</div></div><div class="nav-links-wrapper is-footer"><a href="/products/security-for-bitbucket" class="nav-link is-icon-prefix w-inline-block"><img loading="lazy" width="25" alt="Bitbucket mark" src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645e66f0defe69ec365aa43d_bitbucket-atlassian-mark.svg"/><div id="w-node-_3e28c4f6-58f7-ea03-0780-63b32e02202b-33050b6c" class="text-align-left">Security for Bitbucket</div></a><a href="/products/security-for-confluence" class="nav-link is-icon-prefix w-inline-block"><img loading="lazy" width="25" alt="Confluence mark" src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645ea475f88acc0a70164664_confluence-atlassian-mark.svg"/><div class="text-align-left">Security for Confluence</div></a><a href="/products/security-for-jira" class="nav-link is-icon-prefix w-inline-block"><img loading="lazy" width="25" alt="Jira logo mark" src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6489f3c19e51b9bca517826c_jira-mark.svg"/><div class="text-align-left">Security for Jira</div></a><a href="/products/security-for-intellij" class="nav-link is-icon-prefix w-inline-block"><img loading="lazy" width="25" alt="IntelliJ Logo Mark" src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/6489f575f78697de66688fe1_intellij-logo-mark.svg"/><div class="text-align-left">Security for IntelliJ</div></a><a href="https://api.soteri.io/" target="_blank" class="nav-link is-icon-prefix w-inline-block"><img loading="lazy" width="25" alt="API badge" src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/645ea95dfd81bd218c0f618b_api-icon.svg"/><div class="text-align-left">Scanning Service</div></a></div></div></div><div id="w-node-f35a8d94-e88b-0615-71ff-4798df6f5bd3-33050b6c" class="footer9_guides-wrapper"><div class="margin-bottom margin-xsmall"><div class="text-weight-semibold">Guides</div></div><div class="w-dyn-list"><div role="list" class="nav-links-wrapper is-footer w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/blog/bitbucket-security-best-practices" class="nav-link w-inline-block"><div>Bitbucket Security Best Practices</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/jira-security-best-practices" class="nav-link w-inline-block"><div>Jira Security Best Practices</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/bitbucket-secret-scanning" class="nav-link w-inline-block"><div>Bitbucket Secret Scanning</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/storing-secrets-in-bitbucket" class="nav-link w-inline-block"><div>Storing Bitbucket Secrets</div></a></div></div></div><div class="margin-vertical margin-xsmall"><div class="text-weight-semibold">Comparisons</div></div><a href="/comparisons/soteri-vs-gitguardian-vs-gitleaks" class="nav-link w-inline-block"><div>Soteri vs. GitGuardian vs. Gitleaks</div></a><a href="/comparisons/soteri-vs-atlassian-guard-premium" class="nav-link w-inline-block"><div class="text-block-6">Soteri vs. Atlassian Guard Premium</div></a></div><div class="footer9_link-list"><div class="margin-bottom margin-xsmall"><div class="text-weight-semibold">Resources</div></div><div class="nav-links-wrapper is-footer"><a href="/pricing" aria-current="page" class="nav-link w-inline-block w--current"><div>
1510Pricing</div></a><a href="https://docs.soteri.io/" target="_blank" class="nav-link w-inline-block"><div>Docs</div></a><a href="https://soteri.statuspage.io/" target="_blank" class="nav-link w-inline-block"><div>Status</div></a><a href="https://soteri.safebase.us/" target="_blank" class="nav-link w-inline-block"><div>Trust Center</div></a><a href="/blog" class="nav-link w-inline-block"><div>Blog</div></a><a href="https://support.soteri.io/" target="_blank" class="nav-link w-inline-block"><div>Support</div></a></div></div></div><div class="margin-top margin-huge"><div class="footer9_bottom-wrapper"><div class="footer9_credit-text">© 2026 Soteri LLC. All rights reserved.<br/>6201 W 87th St, Ste D #322, Los Angeles California 90045, USA</div><div class="w-layout-grid footer9_legal-list"><a href="https://docs.soteri.io/support/latest/privacy-policy" target="_blank" class="footer9_legal-link">Privacy Policy</a><a href="https://docs.soteri.io/support/latest/software-end-user-license-agreement" target="_blank" class="footer9_legal-link">Terms & Conditions</a></div></div></div></div></div></div></section><div class="w-embed w-script">
1510<script> 1511const activeDropdowns = document.querySelectorAll('.w--current'); 1512 1513activeDropdowns.forEach(dropdown => { 1514 const parent = dropdown.closest('.w-dropdown'); 1515 if (parent) { 1516 const dropdownToggle = parent.querySelector('.w-dropdown-toggle'); 1517 dropdownToggle.classList.add('dropdown-active'); 1518 } 1519}); 1520</script>
1520</div></footer></div>
1520<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=645989b2fc639004353e6672" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
1520<script src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/js/webflow.schunk.f2efb3c5440a81cf.js" type="text/javascript" integrity="sha384-VK02VJvMib7ytrF5M2joPWNtDQs366FZgEQ5B+Iwnjx0WBnwQXfootyziSYxdrmS" crossorigin="anonymous"></script>
1520<script src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/js/webflow.schunk.2f75de334bfab995.js" type="text/javascript" integrity="sha384-G9GfM76/yOSPGRDd66GjagQGxLFlkVXKkN8d6mt/Jmuoej5kNK2D4h0m2BnigrX5" crossorigin="anonymous"></script>
1520<script src="https://cdn.prod.website-files.com/645989b2fc639004353e6672/js/webflow.41c40cfb.93195657d46a00cf.js" type="text/javascript" integrity="sha384-q/Mx+TRM3b3AWso9XnFvQ81py0jhBDTkb3GBUEJYaz+80Byl3NoH0AvT0YtBzWxG" crossorigin="anonymous"></script>
1520<script> 1521 1522(function() { 1523 1524 analytics.ready(function() { 1525 1526 var anon_id = analytics.user().anonymousId(); 1527 1528 // Find Atlassian links and append the anonymous ID to them. This allows cross domain tracking. 1529 // @see https://developer.atlassian.com/platform/marketplace/marketplace-integration-with-segment/ 1530 if (anon_id) { 1531 const atlassianLinks = document.querySelectorAll("a[href*='marketplace.atlassian.com/apps/']"); 1532 1533 for (const link of atlassianLinks) { 1534 link.href = link.href + "&partner_anonymous_id=" + anon_id ; 1535 } 1536 } 1537 }); 1538})(); 1539</script>
1539 1540 1541<!-- Start of HubSpot Embed Code -->
1542<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/22284699.js"></script>
1542 1543<!-- End of HubSpot Embed Code --> 1544
1545<script> 1546(() => { 1547 /* --------- configuration --------- */ 1548 const PARAMS = [ 1549 /* classic UTMs */ 1550 'utm_source','utm_medium','utm_campaign','utm_term','utm_content', 1551 /* GA4 extras */ 1552 'utm_id','utm_source_platform','utm_creative_format','utm_marketing_tactic', 1553 /* ad clickâIDs */ 1554 'gclid','wbraid','gbraid','msclkid', 1555 'fbclid','ttclid','twclid','li_fat_id', 1556 /* misc */ 1557 'ref' 1558 ]; 1559 const UTM_KEYS = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content']; 1560 const STORE_KEY = 'soteri_tracking'; 1561 const TTL_DAYS = 90; 1562 const LINK_SELECTOR = 'a[href*="calendly.com"],a[href*="marketplace.atlassian.com"]'; 1563 1564 /* --------- helpers --------- */ 1565 const qs = s => Object.fromEntries(new URLSearchParams(s)); 1566 const now = () => Date.now(); 1567 const load = () => { 1568 try { return JSON.parse(localStorage.getItem(STORE_KEY)) || {}; } 1569 catch { /* cookie fallback */ } 1570 const m = document.cookie.match(new RegExp(`${STORE_KEY}=([^;]+)`)); 1571 return m ? JSON.parse(decodeURIComponent(m[1])) : {}; 1572 }; 1573 const save = o => { 1574 const j = JSON.stringify(o); 1575 try { localStorage.setItem(STORE_KEY, j); } 1576 catch { document.cookie = `${STORE_KEY}=${encodeURIComponent(j)};path=/;max-age=${TTL_DAYS*86400}`; } 1577 }; 1578 const gaCid = () => { 1579 const m = document.cookie.match(/(?:^|;\s*)_ga=([^;]+)/); 1580 if (!m) return; 1581 const p = m[1].split('.'); 1582 return p.length >= 4 ? `${p[2]}.${p[3]}` : undefined; 1583 }; 1584 1585 /* --------- capture & enrich --------- */ 1586 const current = qs(location.search); 1587 const store = load(); 1588 let updated = false; 1589 1590 // explicit params 1591 PARAMS.forEach(k => { if (current[k] && !store[k]) { store[k] = current[k]; updated = true; } }); 1592 1593 // referrer + GA clientâID (once) 1594 if (!store.referrer_host && document.referrer) { 1595 try { store.referrer_host = new URL(document.referrer).hostname; updated = true; } catch {} 1596 } 1597 if (!store.ga_client_id) { 1598 const cid = gaCid(); if (cid) { store.ga_client_id = cid; updated = true; } 1599 } 1600 1601 // derive UTMs only if none yet 1602 if (!UTM_KEYS.some(k => store[k])) { 1603 const slug = (location.pathname.replace(/^\/|\/$/g,'') || 'home').slice(0,100); 1604 const campaign = `lp-${slug}`; 1605 const paidSearch= store.gclid || store.wbraid || store.gbraid || store.msclkid; 1606 const paidSocial= store.fbclid || store.ttclid || store.twclid || store.li_fat_id; 1607 const ref = document.referrer; 1608 1609 if (paidSearch) { 1610 store.utm_source = /msclkid/i.test(paidSearch) ? 'bing' : 'google'; 1611 store.utm_medium = 'cpc'; 1612 store.utm_campaign = campaign; 1613 store.utm_term = paidSearch; 1614 } else if (paidSocial) { 1615 store.utm_source = store.fbclid ? 'facebook' 1616 : store.ttclid ? 'tiktok' 1617 : store.twclid ? 'twitter' : 'linkedin'; 1618 store.utm_medium = 'paid_social'; 1619 store.utm_campaign = campaign; 1620 store.utm_term = paidSocial; 1621 }
1621 else if (ref && /(\.|^)google\.|bing\.|yahoo\.|duckduckgo\./i.test(ref)) { 1622 store.utm_source = new URL(ref).hostname.split('.').slice(-2,-1)[0]; 1623 store.utm_medium = 'organic'; 1624 store.utm_campaign = campaign; 1625 } else if (ref) { 1626 store.utm_source = new URL(ref).hostname; 1627 store.utm_medium = 'referral'; 1628 store.utm_campaign = campaign; 1629 } else { 1630 store.utm_source = 'direct'; 1631 store.utm_medium = 'none'; 1632 store.utm_campaign = campaign; 1633 } 1634 updated = true; 1635 } 1636 1637 // timestamp 1638 if (!store.first_visit_ts) { store.first_visit_ts = now(); updated = true; } 1639 if (updated) save(store); 1640 1641 /* --------- append UTMs to destination links --------- */ 1642 const appendUtms = a => { 1643 try { 1644 const u = new URL(a.href); 1645 UTM_KEYS.forEach(k => { if (store[k] && !u.searchParams.has(k)) u.searchParams.set(k, store[k]); }); 1646 a.href = u.toString(); 1647 } catch {} 1648 }; 1649 1650 document.querySelectorAll(LINK_SELECTOR).forEach(appendUtms); 1651 document.addEventListener('click', e => { 1652 const a = e.target.closest(LINK_SELECTOR); 1653 if (a) appendUtms(a); 1654 }, true); 1655})(); 1656</script>
1656</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.