# Generator summary

The following table summarizes the available generators. The table includes generator characteristics that you might take into account when you select the generator to use for a column.

[Generator hints and tips](/app/generation/generators-assign-config/common-usage.md) also provides some suggestions for generators to use for specific use cases.

<details>

<summary>Information in the table</summary>

The generator summary includes the following columns:

* **Generator** - The name of the generator, linked to the entry in the [generator reference](/app/generation/generators/generator-reference.md).
* **Description** - An overview description of the generator.&#x20;
* **Supported features -** Includes the following information:
  * The [generator characteristics](/app/generation/generators/generator-characteristics.md) that the generator supports
  * Whether the generator is a [composite generator](/app/generation/generators/generator-types/generators-composite.md) or a [primary key generator](/app/generation/generators/generator-types/primary-key-generators.md)
  * The generator [privacy ranking](/app/generation/privacy-report.md#privacy-report-privacy-ranking-about)

</details>

<table data-full-width="true"><thead><tr><th valign="top">Generator</th><th valign="top">Description</th><th valign="top">Supported features</th></tr></thead><tbody><tr><td valign="top"><a href="/pages/dVMNKoVkz5zWaDTMFAHA">Address</a><br><br>API: <a href="/pages/VDHXxQdFxO7jEDI5Px8m">AddressGenerator</a></td><td valign="top"><p>Generates replacement values for U.S. mailing addresses.</p><p>You select the address component or format for the replacement values.</p><p>For example, the column might only contain a street address or a postal code, or it might contain a full address.</p></td><td valign="top"><p>Consistency - Self and other<br>Linkable</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/Z8PccqJ9Svy9sV0QODZ6">Algebraic</a><br><br>API: <a href="/pages/IdQez0vTDCbeKxt5qWg8">AlgebraicGenerator</a></td><td valign="top"><p>Identifies the algebraic relationship between 3 or more numeric values, including at least one non-integer.</p><p>Based on the relationship, generates new values to match. If there is no relationship, uses the Categorical generator.</p></td><td valign="top">Linkable - linking is required<br><br>Privacy ranking: 3</td></tr><tr><td valign="top"><a href="/pages/CfuJagRPVBZmPM0oxBhU">Alphanumeric String Key</a><br><br>API: <a href="/pages/y0f5voM6MoBGv6EhtxZ5">AlphaNumericPkGenerator</a></td><td valign="top"><p>Generates unique alphanumeric strings of the same length as the input.</p><p>For example, for the origin value <code>ABC123</code>, the output value is a six-character alphanumeric string such as <code>D24N05</code>.</p></td><td valign="top"><p>Consistency - Self only</p><p>Primary key generator</p><p>Unique columns allowed</p><p>Format-preserving encryption (FPE)<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/SdRljlLIRwX5LBDUObJG">Array Character Scramble</a><br><br>API: <a href="/pages/XNn6JUVYLWaK5ss6vSSm">ArrayTextMaskGenerator</a></td><td valign="top"><p>Within an array, replaces letters with random other letters, and numbers with random other numbers.</p><p>Preserves punctuation and whitespace.</p></td><td valign="top"><p>Consistency - Self only<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/aqu6M4o7eOUf4BxCxw4m">Array JSON Mask</a><br><br>API: <a href="/pages/u7EpGuc14cDWkxhIwDur">ArrayJsonMaskGenerator</a></td><td valign="top"><p>Used to transform array values in JSON.</p><p>To identify values to transform, you provide a list of JSONPaths.</p><p>For each JSONPath, you assign a sub-generator to apply to matching values.</p></td><td valign="top">Composite generator. Feature support is based on the sub-generators.<br><br>Privacy ranking: 5</td></tr><tr><td valign="top"><a href="/pages/h4RCRnTH4yeX6hIDtIiV">Array Regex Mask</a><br><br>API: <a href="/pages/u95DTjy0veeI9D3Jh05U">ArrayRegexMaskGenerator</a></td><td valign="top"><p>Used to transform values in an array.</p><p>To identify values to transform, you provide a regular expression.</p><p>For each capture group in an expression, you assign a sub-generator to apply to matching values.</p></td><td valign="top">Composite generator. Feature support is based on the sub-generators.<br><br>Privacy ranking: 5</td></tr><tr><td valign="top"><a href="/pages/qeq2VIVXiMjO54X2J9Ez">ASCII Key</a><br><br>API: <a href="/pages/clFBetMsKpmmJTIuSUSN">AsciiPkGenerator</a></td><td valign="top"><p>Generates unique alpha-numeric strings based on any printable ASCII characters.</p><p>You can optionally exclude lowercase letters from the generated values.</p><p>The replacement value does not preserve the length of the original value.</p></td><td valign="top"><p>Consistency - Self only</p><p>Primary key generator</p><p>Unique columns allowed</p><p>Format-preserving encryption (FPE)<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/V2gL7zC9OepFyB5Fvwcj">Business Name</a><br><br>API: <a href="/pages/qhEUntD9aZcNPS4CsMPz">BusinessNameGenerator</a></td><td valign="top">Generates a random company name-like string.</td><td valign="top"><p>Consistency - Self or other</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/JRbQS9Aj4nQn2To8ncff">Categorical</a><br><br>API: <a href="/pages/guL2oBjIWsY1KUKFWzNe">CategoricalGenerator</a></td><td valign="top"><p>Shuffles the original values for a column to different rows. Maintains the overall frequency of each value.</p><p>For example, a column contains the values <code>Small</code> (3 times), <code>Medium</code> (4 times), and <code>Large</code> (5 times).</p><p>In the transformed data, each value appears the same number of times, but the values are shuffled to different rows.</p></td><td valign="top"><p>Linkable</p><p>Differential privacy is configurable<br><br>Privacy ranking:</p><ul><li>2 with differential privac</li><li>3 without differential privacy</li></ul></td></tr><tr><td valign="top"><a href="/pages/YkyIbAnIucBzXXgehrmT">Character Scramble</a><br><br>API: <a href="/pages/rkl8AFhgEjfzTZnuNTya">TextMaskGenerator</a></td><td valign="top"><p>Replaces letters with random other letters and numbers with random other numbers.</p><p>Preserves punctuation, whitespace, and mathematical symbols.</p></td><td valign="top"><p>Consistency - Self only<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/cUTLku4sXzcOo8oyXfZV">Character Substitution</a><br><br>API: <a href="/pages/fy8n3fsQgTSDMuuKuSIt">StringMaskGenerator</a></td><td valign="top"><p>Replaces characters with other random characters. Preserves punctuation, capitalization, and whitespace.</p><p>A replacement character is always from within the same Unicode Block as the source character.</p><p>A source character is always mapped to the same destination character. For example, <code>M</code> might always map to <code>V</code>.</p></td><td valign="top"><p>Always self-consistent </p><p>Unique columns allowed<br><br>Privacy ranking: 4</p></td></tr><tr><td valign="top"><a href="/pages/OtQuLWmqqEkyWMBuQMt4">Company Name</a> (Deprecated)<br><br>API: <a href="/pages/QDHR5WXFUdZvlhWJHA08">CompanyNameGenerator</a></td><td valign="top"><p>This generator is deprecated. Use the <a href="/pages/0Ut5IaDYLB4ZhtomxgZ9#business-name">Business Name</a> generator instead.</p><p>Generates a random company name-like string.</p></td><td valign="top"><p>Consistency - Self or other</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/I2CiiM0fByBwEjZSE6sI">Conditional</a><br><br>API: <a href="/pages/MVk7kwA8JmL2rTTe90xI">ConditionalGenerator</a></td><td valign="top"><p>Applies different generators to rows conditionally based on the column value.</p><p>For example, apply the Character Scramble generator for values other than Test.</p><p>You configure a list of conditions. Each condition performs a check against the column value.</p><p>For each condition, you assign a sub-generator to apply to matching values.</p></td><td valign="top"><p>Unique columns allowed</p><p>Composite generator. Other feature support is based on the sub-generators.</p><p></p><p>Privacy ranking:</p><ul><li>If a fallback generator is selected, then the lower of 5 or the fallback generator.</li><li>5 if no fallback generator is selected.</li></ul></td></tr><tr><td valign="top"><a href="/pages/KH9F697KstcRePbhBe1V">Constant</a><br><br>API: <a href="/pages/7YhXuxNZqKjSPVkhcF0a">ConstantGenerator</a></td><td valign="top"><p>Uses a single specified value to replace all of the values in the column.</p><p>The replacement value must be compatible with the column data type.</p></td><td valign="top"><p>Differential privacy</p><p>Data-free<br><br>Privacy ranking: 1</p></td></tr><tr><td valign="top"><a href="/pages/WcDrd9HqklGLQliXDxIE">Continuous</a><br><br>API: <a href="/pages/ibZpgFFKaeYJgeBahlkY">GaussianGenerator</a></td><td valign="top"><p>Generates a continuous distribution to fit the underlying data.</p><p>Can link to other columns to create multivariate distributions.</p><p>Can also be partitioned by other columns.</p></td><td valign="top"><p>Linkable</p><p>Differential privacy is configurable<br><br>Privacy ranking:</p><ul><li>2 with differential privacy</li><li>3 without differential privacy</li></ul></td></tr><tr><td valign="top"><a href="/pages/tf7X7fg4sfL5kitEO8Le">Cross Table Sum</a><br><br>API: <a href="/pages/OnB96XREUMxGohHqnbuN">CrossTableAggregateGenerator</a></td><td valign="top"><p>Populates the column using the sum of values from a column in another table.</p><p>To select the rows to use, uses a foreign key value that matches the primary key value for the current row.</p><p>For example, to transform the <strong>Total_Sales</strong> column in the <strong>Customers</strong> table, from the <strong>Transactions</strong> table, use the sum of the <strong>Amount</strong> values for rows where the <strong>Customer_ID</strong> value matches the primary key value for the current customer.</p></td><td valign="top">Privacy ranking: 3</td></tr><tr><td valign="top"><a href="/pages/Z55blETTPvkFK2j5g3f3">CSV Mask</a><br><br>API: <a href="/pages/OFKSQZQ52dE7G3mLzOkC">CsvMaskGenerator</a></td><td valign="top"><p>Used to mask text in a delimited format.</p><p>Parses the text as a row where the columns are delimited by a specified character.</p><p>For each index, you assign a sub-generator to apply to the index value.</p></td><td valign="top">Composite generator. Feature support is based on the sub-generators.<br><br>Privacy ranking: 5</td></tr><tr><td valign="top"><a href="/pages/fRNZZPOEPGICF4gQsL1j">Custom Categorical</a><br><br>API: <a href="/pages/AsyoJDj5DdRAZoieTjp5">CustomCategoricalGenerator</a></td><td valign="top">Replaces the original column value with a value from list of values that you provide.</td><td valign="top"><p>Consistency - Self and other</p><p>Linkable</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/zFcGQfMbzYUhu2FxIBsP">Date Truncation</a><br><br>API: <a href="/pages/sIv7iAJxM0EqwLdkBhVc">DateTruncationGenerator</a></td><td valign="top"><p>Truncates dates or timestamps to a specific date or time component.</p><p>For example, you might truncate a date value to the month or a timestamp to the hour.<br>You can specify a fallback generator to use for values that the generator cannot process.</p></td><td valign="top">Privacy ranking: 5</td></tr><tr><td valign="top"><a href="/pages/AaJCKfvi0RThh0Fold19">Email</a><br><br>API: <a href="/pages/cSiodmqjXSXTjm030plR">EmailGenerator</a></td><td valign="top"><p>Scrambles characters in an email address.</p><p>Preserves the formatting and keeps the <code>@</code> and <code>.</code>. </p><p>You can identify specific email domains to not scramble.</p></td><td valign="top"><p>Consistency - Self only<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/c2QaKf5WNMB0eI9S8EX1">Event Timestamps</a><br><br>API: <a href="/pages/zbWO545ha1u50UdO0L13">EventGenerator</a></td><td valign="top"><p>Generates timestamps that fit an event distribution.</p><p>You can link columns to create a sequence of events across multiple columns.</p><p>You can also partition the generator by other columns.</p></td><td valign="top">Linkable<br><br>Privacy ranking: 3</td></tr><tr><td valign="top"><a href="/pages/aguF2E3lGT2yslfJLJTa">File Name</a><br><br>API: <a href="/pages/mRQCOU8teo52JgDaEG0t">FileNameGenerator</a></td><td valign="top"><p>Scrambles characters in a file name.</p><p>Preserves the formatting and the file extension.</p></td><td valign="top"><p>Consistency - Self only<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/0jbJZHtHpLka5FMSiH4s">Find and Replace</a><br><br>API: <a href="/pages/TepUJR3tP7VCvvztI8mZ">FindAndReplaceGenerator</a></td><td valign="top"><p>Replaces all instances of the find string with the replace string.</p><p>For the find string, you can optionally provide a regular expression.</p></td><td valign="top">Privacy ranking: 5</td></tr><tr><td valign="top"><p><a href="/pages/qRUy6GHhWvlWeTHJeRNv">Finnish Personal Identity Code</a><br></p><p>API: <a href="/pages/7J0bQTHx2gdp1DQKiwIC">FinnishPicGenerator</a></p></td><td valign="top"><p>Generates a valid Finnish Personal Identity Code (PIC).</p><p>You configure the date range during which the PIC was issued.</p></td><td valign="top"><p>Consistency - Self only</p><p>Data-free if not consistent</p><p>Unique columns allowed</p><p>Format-preserving encryption (FPE)<br></p><p>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/j6T24MpHmdjNqUbomdiL">FNR</a><br><br>API: <a href="/pages/YCgMnGPO7rJsflQ8v92J">FnrGenerator</a></td><td valign="top"><p>Transforms Norwegian national identity numbers.</p><p>You can optionally preserve the gender and birthdate portions of the identifier values.</p></td><td valign="top"><p>Consistency - Self and other</p><p>Unique columns allowed<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/Jw6LyuQf8dAPbhVvghXt">Geo</a><br><br>API: <a href="/pages/Yrd7JmcySjDcAI9aHAkh">GeoGenerator</a></td><td valign="top">Used to transform columns that contain latitude and longitude values.</td><td valign="top"><p>Linkable</p><p>Unique columns allowed<br><br>Privacy ranking: 3</p></td></tr><tr><td valign="top"><a href="/pages/odSiwZYTNVWoHsIqkxWu">HIPAA Address</a><br><br>API: <a href="/pages/Myr5CNhdSaHmsjdbfwOQ">HipaaAddressGenerator</a></td><td valign="top">Can be used to generate cities, states, zip codes, and latitude/longitude values that follow HIPAA guidelines for safe harbor.</td><td valign="top"><p>Consistency - Self only<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/yOaXi1zpRvqtKPIi8LV9">Hostname</a><br><br>API: <a href="/pages/9QUF3jFy70V79ZS4JBiw">HostnameGenerator</a></td><td valign="top">Generates random host names, based on the English language.</td><td valign="top"><p>Consistency - Self and other</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/VTTM6x7sMxY6mOYl1nLS">HStore Mask</a><br><br>API: <a href="/pages/G07RJPVa3OJP9RFhquty">HStoreMaskGenerator</a></td><td valign="top"><p>Used to transform values in an HStore column in a PostgreSQL database.</p><p>You specify a list of keys for which to transform the values.</p><p>For each key, you assign a generator to apply to the key value.</p></td><td valign="top">Composite generator. Feature support is based on the sub-generators.<br><br>Privacy ranking: 5</td></tr><tr><td valign="top"><a href="/pages/EJBjN3p71wRjD4x5ja7c">HTML Mask</a><br><br>API: <a href="/pages/xGkzP2rFfjHAPN0MmnOb">HtmlMaskGenerator</a></td><td valign="top"><p>Used to transform columns that contain HTML content.</p><p>To identify the values to transform, you provide a list of path expressions.</p><p>For each path expression, you assign a generator to apply to the matching value.</p></td><td valign="top">Composite generator. Feature support is based on the sub-generators.<br><br>Privacy ranking: 5</td></tr><tr><td valign="top"><p><a href="/pages/3mz5Zu4bCMPQ8JZCAd2F">IBAN</a><br></p><p>API: <a href="/pages/Ser2WaJyXVOe8eu9mVCz">IbanGenerator</a></p></td><td valign="top"><p>Generates an International Bank Account Number (IBAN).</p><p>You determine whether to preserve the banking code and country code from the original value.</p></td><td valign="top"><p>Consistency - Self only</p><p>Unique columns allowed</p><p>Format-preserving encryption (FPE) when either:</p><ul><li>Assigned to a primary key column.</li><li>Consistency is enabled.</li></ul><p></p><p>Privacy ranking - </p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/2KDUZbkl4mGozBdm7vog">Integer Key</a><br><br>API: <a href="/pages/G9868jXaFcVADJJxYJhz">IntegerPkGenerator</a></td><td valign="top"><p>Generates unique integer values.</p><p>By default, the generated values are within the range of the column’s data type.</p><p>You can also specify a range for the generated values. The source values must be within that range.</p></td><td valign="top"><p>Consistency - Self only</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent</p><p>Primary key generator</p><p>Unique columns allowed</p><p>Format-preserving encryption (FPE)<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/30Xu7urpP01uo3UeX1PQ">International Address</a><br><br>API: <a href="/pages/6jFugteG83ssc6xo4XJH">InternationalAddressGenerator</a></td><td valign="top"><p>For Canadian mailing addresses, can generate:</p><ul><li>Street name</li><li>Postal code</li></ul><p>For United Kingdom (UK) mailing addresses, can generate:</p><ul><li>City</li><li>County</li><li>District</li><li>Country</li><li>Postal code</li></ul></td><td valign="top"><p>Consistency - Self only</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/KduWaTvOoFwua7IXNaWx">IP Address</a><br><br>API: <a href="/pages/cqhOghPXmzBZ6imSfMeL">IPAddressGenerator</a></td><td valign="top"><p>Generates a random IP address-formatted string.</p><p>You specify the percentage of IPv4 addresses.</p><p>The remaining addresses are IPv6.</p></td><td valign="top"><p>Consistency - Self or other</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/DuCeR6mVkXvBqA8p34h5">JSON Mask</a><br><br>API: <a href="/pages/WWUdcfsgep5Uw4BWhmMP">JsonMaskGenerator</a></td><td valign="top"><p>Used to transform values in JSON columns.</p><p>To identify values to transform, you provide a list of JSONPaths.</p><p>For each JSONPath, you assign a sub-generator to apply to matching values.</p></td><td valign="top">Composite generator. Feature support is based on the sub-generators.<br><br>Privacy ranking: 5</td></tr><tr><td valign="top"><a href="/pages/DCIwJMeIf96Pkx82inIz">MAC Address</a><br><br>API: <a href="/pages/luQk5Opzxqq2KtkqVOH2">MACAddressGenerator</a></td><td valign="top">Generates a random MAC address formatted string.</td><td valign="top"><p>Consistency - Self only</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent</p><p>Format-preserving encryption (FPE)<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/FxvV01IUZ1tTht1c2SF7">Mongo ObjectId Key</a><br><br>API: <a href="/pages/iPkO3meIe0zGhQR0pwbS">ObjectIdPkGenerator</a></td><td valign="top"><p>Generates unique MongoDB objectId values.</p><p>Can be assigned to text columns that contain MongoDB ObjectId values.</p><p>The column value must be 12 bytes long.</p></td><td valign="top"><p>Consistency - Self only<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/yTj2MFU4g8qp7BfSsE1g">Name</a><br><br>API: <a href="/pages/BvNQ4vvWJYxZLuIjFD86">NameGenerator</a></td><td valign="top"><p>Generates a random name string from a dictionary of first and last names.</p><p>You specify the name format.</p><p>For example, a column might contain only a first name, or a full name that is last name first.</p></td><td valign="top"><p>Consistency - Self or other</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/BcUxKABStDhe0Qy2jTdQ">Noise Generator</a><br><br>API: <a href="/pages/tTt0z7vATigzXDyV544z">NoiseGenerator</a></td><td valign="top"><p>Masks values in numeric columns.</p><p>Either adds or multiplies the original value by random noise.</p></td><td valign="top"><p>Consistency - Self or other<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/FZ1Tccf9nHDUbfjY9dJG">Null</a><br><br>API: <a href="/pages/sWuS54GoRM4wKlN7RfsW">NullGenerator</a></td><td valign="top">Replaces all of the column values with <code>NULL</code> values.</td><td valign="top"><p>Differential privacy</p><p>Data-free</p><p>Unique columns allowed<br><br>Privacy ranking: 1</p></td></tr><tr><td valign="top"><a href="/pages/dV9aZtcRZdnNEXx7CJEr">Numeric String Key</a><br><br>API: <a href="/pages/CkEpHn6DoMovaqNFFDBQ">NumericStringPkGenerator</a></td><td valign="top">Generates unique numeric strings of the same length as the input numeric string.</td><td valign="top"><p>Consistency - Self only</p><p>Primary key generator</p><p>Unique columns allowed</p><p>Format-preserving encryption (FPE)<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/9UJhLJtuDqxViipYrauB">Passthrough</a><br><br>API: <a href="/pages/Uj0K7yWLvWPfXPjKF8aJ">PassthroughGenerator</a></td><td valign="top"><p>Default generator.</p><p>Does not perform any transformation on the source data.</p></td><td valign="top">Unique columns allowed<br><br>Privacy ranking: 6</td></tr><tr><td valign="top"><a href="/pages/muBo0FasU044YZ9WcPRG">Phone</a><br><br>API: <a href="/pages/EFPhZCzc60GKwBShPl0P">USPhoneNumberGenerator</a></td><td valign="top"><p>Generates a random telephone number that matches the country or region and format of the input telephone number.</p><p>For invalid telephone numbers, either replaces individual numbers or generates a valid replacement number.</p></td><td valign="top">Consistency - Self only<br><br>Privacy ranking: 3</td></tr><tr><td valign="top"><a href="/pages/00UvmmnzkwyY2aVyrRkZ">Random Boolean</a><br><br>API: <a href="/pages/6olQz5JyHUFbxOB2zq0I">RandomBooleanGenerator</a></td><td valign="top"><p>Generates a random boolean value.</p><p>You specify the percentage of true values. The remaining values are false.</p></td><td valign="top"><p>Differential privacy</p><p>Data-free<br><br>Privacy ranking: 1</p></td></tr><tr><td valign="top"><a href="/pages/XlbTgf3f5IPlg1ePNLuX">Random Double</a><br><br>API: <a href="/pages/i90AqIzn1GHBFxyMZYd9">RandomDoubleGenerator</a></td><td valign="top">Generates a random double number that is between the specified minimum (inclusive) and maximum (exclusive) values.</td><td valign="top"><p>Differential privacy</p><p>Data-free<br><br>Privacy ranking: 1</p></td></tr><tr><td valign="top"><a href="/pages/ZRoWdtHnVThdgDJAFtnq">Random Hash</a><br><br>API: <a href="/pages/yZqDz5NPdIOWClt9Ri4u">RandomStringGenerator</a></td><td valign="top">Generates a random hash string.</td><td valign="top"><p>Differential privacy</p><p>Data-free<br><br>Privacy ranking: 1</p></td></tr><tr><td valign="top"><a href="/pages/J0no3tPglJjbX7pcB3Rj">Random Integer</a><br><br>API: <a href="/pages/IdAYVVk6vTAfbhkGPHxA">RandomIntegerGenerator</a></td><td valign="top">Returns a random integer that is between the specified minimum (inclusive) and maximum (exclusive) values.</td><td valign="top"><p>Differential privacy</p><p>Data-free<br><br>Privacy ranking: 1</p></td></tr><tr><td valign="top"><a href="/pages/y3Ko1JJbu1073EdEk87c">Random Timestamp</a><br><br>API: <a href="/pages/ugiVelMleB3JVEtMhujX">RandomTimestampGenerator</a></td><td valign="top">Generates random dates, times, and timestamps that fall within a specified range.</td><td valign="top"><p>Differential privacy</p><p>Data-free<br><br>Privacy ranking: 1</p></td></tr><tr><td valign="top"><a href="/pages/6mcOp7hMjQG64xzgQmHX">Random UUID</a><br><br>API: <a href="/pages/mKhHMxcwVZ4173P5jABj">UUIDGenerator</a></td><td valign="top">Generates a random new UUID string.</td><td valign="top"><p>Differential privacy</p><p>Data-free</p><p>Unique columns allowed<br><br>Privacy ranking: 1</p></td></tr><tr><td valign="top"><a href="/pages/wnst1bPkt24cDGEvXQFz">Regex Mask</a><br><br>API: <a href="/pages/EL2vffWYSJWjXB1myN6b">RegexMaskGenerator</a></td><td valign="top"><p>To identify values to transform, you provide a regular expression.</p><p>For each capture group in an expression, you assign a sub-generator to apply to matching values.</p></td><td valign="top"><p>Unique columns allowed</p><p>Composite generator. Other feature support is based on the sub-generators.<br><br>Privacy ranking: 5</p></td></tr><tr><td valign="top"><a href="/pages/dxgdfnALkeVYgwAI41Mu">Sequential Integer</a><br><br>API: <a href="/pages/4uupe7QNPCKaBotobqNI">UniqueIntegerGenerator</a></td><td valign="top">Generates a column of unique integer values that start with specified value, and then increment by 1 for each processed row.</td><td valign="top"><p>Linkable</p><p>Unique columns allowed<br><br>Privacy ranking: 3</p></td></tr><tr><td valign="top"><a href="/pages/lUlMa86LMU4TQaN6BOGY">Shipping Container</a><br><br>API: <a href="/pages/4IM8nJsEYw6HCSAxKTXW">ShippingContainerGenerator</a></td><td valign="top"><p>Generates values of ISO 6346 compliant shipping container codes.</p><p>The codes are all in the freight ("U") category.</p></td><td valign="top"><p>Consistency - Self or other</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/oUZCRJ9qVIAT5OGhOmwH">SIN</a><br><br>API: <a href="/pages/Mz9mS42FRkHd2RYwn7vn">SINGenerator</a></td><td valign="top"><p>Generates a new valid Canadian Social Insurance Number.</p><p>Preserves the formatting from the original value.</p></td><td valign="top"><p>Consistency - Self only</p><p>Data-free if not consistent</p><p>Unique columns allowed</p><p>Format-preserving encryption (FPE)<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/V5Fv4f0Y7nCPYXNRZySY">SSN</a><br><br>API: <a href="/pages/n11fQqYw33VmaZFiRRLD">SsnGenerator</a></td><td valign="top"><p>Generates a new valid United States Social Security Number.</p><p>For numeric columns, the dashes (xxx-xx-xxxx) are always excluded.</p><p>Otherwise, you can specify the percentage of values for which to include the dashes.</p></td><td valign="top"><p>Consistency - Self or other</p><p>Differential privacy if not consistent</p><p>Data-free if not consistent<br><br>Privacy ranking:</p><ul><li>1 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/O93C5heA0jclbt3E0m1a">Struct Mask</a><br><br>API: <a href="/pages/CcbHoYTZYfS9D0p4UYGi">StructMaskGenerator</a></td><td valign="top"><p>Used to transform StructFields within a StructType in Databricks data.</p><p>To identify the StructField value to transform, you provide a path expression.</p><p>For each path expression, you assign a sub-generator to apply to the matching values.</p></td><td valign="top">Composite generator. Feature support is based on the sub-generators.<br><br>Privacy ranking: 5</td></tr><tr><td valign="top"><p><a href="/pages/oXYh3vmtTBe5lqcELOgW">Text Composition</a></p><p></p><p>API: <a href="/pages/qbwsuDb0Oq2kjLATvu90">TextCompositionGenerator</a></p></td><td valign="top">Generates a replacement text value that includes values from other columns in the same row.</td><td valign="top"><p>Consistent by default with the included columns.</p><p></p><p>Privacy ranking: 5</p></td></tr><tr><td valign="top"><a href="/pages/fk3ME8SWpUNErj5wHXU9">Timestamp Shift</a><br><br>API: <a href="/pages/RcKnFROcA6kW0PwapX7B">TimestampShiftGenerator</a></td><td valign="top"><p>Shifts timestamps by a random amount of a specific unit of time, within a set range.</p><p>The range can start before the original value.<br>You can specify a fallback generator to use for values that the generator cannot process.</p></td><td valign="top"><p>Consistency - Self or other<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/ImAAXAtbv51r0U5locyg">Unique Email</a><br><br>API: <a href="/pages/Y7Ji3rcAcGWys1sk8o3D">UniqueEmailGenerator</a></td><td valign="top"><p>Generates unique email addresses.</p><p>Replaces the username with a randomly generated GUID, and masks the domain with a character scramble.</p></td><td valign="top"><p>Consistency - Self only</p><p>Unique columns allowed<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/5QIAu2bGdTAJWMLcvhpP">URL</a><br><br>API: <a href="/pages/sPGiEl1VwSnZiWVoMla0">UrlGenerator</a></td><td valign="top"><p>Used to transform URLs.</p><p>Preserves the formatting. Keeps the URL scheme and top-level domain intact.</p></td><td valign="top">Unique columns allowed<br><br>Privacy ranking: 3</td></tr><tr><td valign="top"><a href="/pages/ltEMEZ8lClXIOLV3EWrk">UUID Key</a><br><br>API: <a href="/pages/svNCkXvq7BfySjKLJjKZ">UuidPkGenerator</a></td><td valign="top">Generates UUIDs.</td><td valign="top"><p>Consistency - Self only</p><p>Primary key generator</p><p>Unique columns allowed</p><p>Format-preserving encryption (FPE)<br><br>Privacy ranking:</p><ul><li>3 if not consistent</li><li>4 if consistent</li></ul></td></tr><tr><td valign="top"><a href="/pages/ApVlvOeIW4OwiEmivdhr">XML Mask</a><br><br>API: <a href="/pages/dIttKiW7ByeVYtoSkosK">XmlMaskGenerator</a></td><td valign="top"><p>Used to transform values in XML columns.</p><p>To identify the values to transform, you provide XPaths.</p><p>For each XPath, you assign a sub-generator to apply to the matching values.</p></td><td valign="top">Composite generator. Feature support is based on the sub-generators.<br><br>Privacy ranking: 5</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tonic.ai/app/generation/generators/generator-summary.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
