Dynamic variables
A dynamic variable makes a new value every time you send. Use one when a request needs something fresh: a unique ID, the current time, a made-up name or email for test data. You do not define them. They are built in, and their names start with $.
Use a dynamic variable
Write the name between double curly braces, with the $, anywhere a normal variable works: the URL, params, headers, the body, auth fields.
{
"id": "{{$guid}}",
"email": "{{$randomEmail}}",
"name": "{{$randomFullName}}",
"createdAt": "{{$isoTimestamp}}"
}What goes out looks like this, and differs on every send:
{
"id": "0b8a3c1e-5a0f-4c53-9a44-6f1f2a9d7c10",
"email": "nina.patel@harbor.dev",
"name": "Omar Silva",
"createdAt": "2026-11-09T08:15:30.123456Z"
}Things to know:
- Every occurrence gets its own value. Two
{{$guid}}in one request produce two different IDs. To use the same generated value twice, store it in a normal variable first with a pre-request script. - Names are case-sensitive.
{{$randomInt}}works;{{$randomint}}is left as written. - Unknown names are left as written. A
{{$something}}that is not in the tables below is sent unchanged. - Your own variables win. If you define a variable whose name is exactly
$guid, its value is used instead. - The data is made up. Names, cities and companies come from short built-in lists. Use them for test data, not for realistic samples.
- To see what was sent, open the Console.
The names match Postman's, so imported collections keep working. The generated values are ApiWorkbench's own and will not look identical to Postman's.
Common
| Name | Generates | Example |
|---|---|---|
{{$guid}} | A random UUID (version 4) | 0b8a3c1e-5a0f-4c53-9a44-6f1f2a9d7c10 |
{{$randomUUID}} | The same as {{$guid}} | e2c7f5a4-8d3b-4f19-b6a2-91c0d4e8f7a3 |
{{$timestamp}} | The current time in seconds since 1970 | 1794212130 |
{{$isoTimestamp}} | The current time in ISO 8601, UTC | 2026-11-09T08:15:30.123456Z |
{{$randomInt}} | A whole number from 0 to 1000 | 417 |
{{$randomAlphaNumeric}} | One lower-case letter or digit | k |
{{$randomBoolean}} | true or false | true |
Text and numbers
| Name | Generates | Example |
|---|---|---|
{{$randomWord}} | One word | harbor |
{{$randomWords}} | Two to five words | delta river pixel |
{{$randomLoremWord}} | One word | meadow |
{{$randomLoremWords}} | Three words | orbit ember cloud |
{{$randomLoremSentence}} | A sentence of five to ten words | Signal forest alpha quartz river. |
{{$randomLoremParagraph}} | Three sentences | |
{{$randomLoremSlug}} | Three words joined by hyphens | kernel-island-vector |
{{$randomHexColor}} | A colour as # and six hex digits | #3fa9c2 |
{{$randomColor}} | A colour name | teal |
{{$randomAbbreviation}} | A technical abbreviation | JSON |
{{$randomSemver}} | A version number | 3.14.27 |
Internet
| Name | Generates | Example |
|---|---|---|
{{$randomIP}} | An IPv4 address | 203.17.88.141 |
{{$randomIPV6}} | An IPv6 address | 3f2a:09bc:… (eight groups) |
{{$randomMACAddress}} | A MAC address | 4a:0f:c3:91:7e:2d |
{{$randomPassword}} | 15 lower-case letters and digits | x7k2m9q4a1z8b3c |
{{$randomUserName}} | A first name and a number | priya204 |
{{$randomDomainName}} | A domain name | lantern.io |
{{$randomDomainWord}} | The word part of a domain | nebula |
{{$randomDomainSuffix}} | com, net, org, io or dev | org |
{{$randomUrl}} | An https:// address | https://granite.net |
{{$randomEmail}} | An email address at a made-up domain | ben.chen@cloud.com |
{{$randomExampleEmail}} | An email address at example.com | sofia42@example.com |
{{$randomProtocol}} | http or https | https |
{{$randomUserAgent}} | A Chrome-style user agent string | |
{{$randomLocale}} | A language code | fr |
TIP
{{$randomEmail}} can produce an address at a domain that really exists. For data that may trigger a real email, use {{$randomExampleEmail}}: example.com is reserved for examples and never delivers mail.
Names and people
| Name | Generates | Example |
|---|---|---|
{{$randomFirstName}} | A first name | Elena |
{{$randomLastName}} | A last name | Nakamura |
{{$randomFullName}} | A first and last name | Kai Fernandez |
{{$randomNamePrefix}} | Mr., Ms., Mrs. or Dr. | Dr. |
{{$randomNameSuffix}} | Jr., Sr., II, III or PhD | Jr. |
{{$randomJobTitle}} | A level and a job | Senior Analyst |
{{$randomJobType}} | A job | Designer |
{{$randomPhoneNumber}} | A phone number as three groups of digits | 415-732-9081 |
Location
| Name | Generates | Example |
|---|---|---|
{{$randomCity}} | A city | Lisbon |
{{$randomCountry}} | A country | Kenya |
{{$randomCountryCode}} | A two-letter country code | JP |
{{$randomStreetName}} | A street name | meadow Street |
{{$randomStreetAddress}} | A number and a street name | 221 timber Street |
{{$randomLatitude}} | A latitude from -90 to 90, four decimals | 12.9716 |
{{$randomLongitude}} | A longitude from -180 to 180, four decimals | -73.5674 |
Business and finance
| Name | Generates | Example |
|---|---|---|
{{$randomCompanyName}} | A company name | Globex Ltd |
{{$randomPrice}} | An amount from 0 to 1000, two decimals | 249.90 |
{{$randomCurrencyCode}} | A currency code | EUR |
{{$randomBankAccount}} | An eight-digit number | 48201937 |
Dates
| Name | Generates | Example |
|---|---|---|
{{$randomDateFuture}} | A time within the next year, ISO 8601, UTC | 2027-03-14T19:22:05.482913Z |
{{$randomDatePast}} | A time within the past year, ISO 8601, UTC | 2026-02-01T06:40:51.107264Z |
{{$randomDateRecent}} | A time within the last two days, ISO 8601, UTC | 2026-11-08T11:03:27.951380Z |
{{$randomWeekday}} | A weekday name | Thursday |
{{$randomMonth}} | A month name | August |
Recipes
A unique ID per request
Add a header so you can find the request in server logs.
| Header | Value |
|---|---|
X-Request-Id | {{$guid}} |
A new user on every send
{
"username": "{{$randomUserName}}",
"email": "{{$randomExampleEmail}}",
"password": "{{$randomPassword}}",
"city": "{{$randomCity}}"
}Sending this repeatedly from the runner or the load tester creates a different user each time.
A fresh timestamp in a signed token
In JWT Bearer auth, put {{$timestamp}} in the payload so the iat claim is always now:
{ "sub": "1234567890", "iat": {{$timestamp}} }Avoid a cached answer
Add a query parameter that changes every time.
| Parameter | Value |
|---|---|
nocache | {{$timestamp}} |