PageSourceSearch

https://soteri.webflow.io/pricing

html soteri.webflow.io collected 2026-10-03 13:44:17 UTC 81,680 bytes, 1,656 lines download raw bytes

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 &amp; 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 &amp; 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&amp;hosting=datacenter&amp;utm_source=soteri.io&amp;utm_medium=top_nav&amp;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&amp;hosting=cloud&amp;utm_source=soteri.io&amp;utm_medium=top_nav&amp;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&amp;hosting=datacenter&amp;utm_source=soteri.io&amp;utm_medium=top_nav&amp;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&#x27;s secret scanners?</h3><p class="margin-0">Soteri&#x27;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&#x27;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&#x27;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&#x27;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&#x27;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&#x27;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&#x27;
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 &amp; 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.