Dynamic Variables
Curlex supports dynamic built-in variables that generate fresh, random values at the moment a request is sent. They follow the same {{...}} syntax as regular environment and collection variables, but their names always start with a $ prefix.
{{$guid}}
{{$timestamp}}
{{$randomEmail}}
Dynamic variables can appear anywhere a regular variable can: URL, query parameters, headers, request body, and authentication fields.
Resolution order
When Curlex resolves a {{...}} placeholder it checks in this order:
- Collection variables — defined on the collection
- Environment variables — from the active environment
- Dynamic built-in variables — resolved at send time (this document)
- Unresolved — the placeholder is left as-is
This means you can override any built-in by defining an environment variable with the same name (including the $ prefix), which is useful for pinning a fixed value in tests.
Every call is independent
If you use the same variable twice in one request, each occurrence produces a separate, independently generated value:
{
"requestId": "{{$guid}}",
"correlationId": "{{$guid}}"
}
Both requestId and correlationId will contain different UUIDs.
Variable reference
Identity & UUIDs
| Variable | Example output | Description |
|---|
{{$guid}} | 3d4f1b2a-9c8e-4a7d-b5f6-1e2c3d4f5a6b | Random UUID v4 |
{{$randomUUID}} | 7b8c9d0e-1f2a-4b3c-8d4e-5f6a7b8c9d0e | Alias for $guid |
Timestamps
| Variable | Example output | Description |
|---|
{{$timestamp}} | 1741910400 | Current Unix time in seconds |
{{$isoTimestamp}} | 2026-03-14T10:30:00.000Z | Current time as ISO 8601 UTC string |
{{$randomDateFuture}} | 2026-09-21T14:22:11.000Z | Random date within the next 365 days |
{{$randomDatePast}} | 2025-08-03T07:45:30.000Z | Random date within the past 365 days |
{{$randomDateRecent}} | 2026-03-10T18:12:04.000Z | Random date within the past 7 days |
{{$randomMonth}} | August | Random full month name |
{{$randomWeekday}} | Thursday | Random full weekday name |
Numbers & booleans
| Variable | Example output | Description |
|---|
{{$randomInt}} | 742 | Random integer between 0 and 1000 |
{{$randomFloat}} | 483.27 | Random float between 0 and 1000, 2 decimal places |
{{$randomBoolean}} | true | Random boolean (true or false) |
Characters & words
| Variable | Example output | Description |
|---|
{{$randomAlphaNumeric}} | k | Single random alphanumeric character (a-z, 0-9) |
{{$randomAlpha}} | m | Single random lowercase letter |
{{$randomHexadecimal}} | a | Single random hexadecimal character (0-9, a-f) |
{{$randomWord}} | eagle | Single random English word |
{{$randomWords}} | cloud tiger river | 2 to 5 random words |
{{$randomSemver}} | 2.14.7 | Random semantic version string |
Lorem ipsum
| Variable | Example output | Description |
|---|
{{$randomLoremWord}} | adipiscing | Single lorem ipsum word |
{{$randomLoremSentence}} | Lorem ipsum dolor sit amet. | Random lorem ipsum sentence |
{{$randomLoremParagraph}} | Lorem ipsum... | Random lorem ipsum paragraph (3–5 sentences) |
Person
| Variable | Example output | Description |
|---|
{{$randomFirstName}} | Olivia | Random first name |
{{$randomLastName}} | Martinez | Random last name |
{{$randomFullName}} | Grace Thompson | Random full name |
{{$randomNamePrefix}} | Dr. | Random name prefix (Mr., Mrs., Ms., Dr., Prof.) |
{{$randomNameSuffix}} | Jr. | Random name suffix (Jr., Sr., II, III, PhD, MD) |
{{$randomUserName}} | olivia.thompson42 | Random username (firstname.lastname + 2 digits) |
{{$randomEmail}} | grace.thompson17@gmail.com | Random email address |
{{$randomPassword}} | X7kLm#nQp2Rv! | Random 12–20 character password |
{{$randomPhoneNumber}} | +1-415-732-8901 | Random US phone number |
{{$randomJobTitle}} | Senior Backend Developer | Random job title |
Network
| Variable | Example output | Description |
|---|
{{$randomIP}} | 192.168.42.10 | Random IPv4 address |
{{$randomIPV6}} | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 | Random IPv6 address |
{{$randomMACAddress}} | 4a:f3:2c:9b:17:e5 | Random MAC address |
{{$randomProtocol}} | https | http or https |
{{$randomDomainSuffix}} | .io | Random TLD (.com, .net, .org, .io, .dev, .co, .app, .ai) |
{{$randomDomainName}} | river.io | Random domain name |
{{$randomUrl}} | https://storm.dev/ocean | Random full URL |
Location
| Variable | Example output | Description |
|---|
{{$randomCity}} | Singapore | Random city name |
{{$randomStreetName}} | Maple Avenue | Random street name with type |
{{$randomStreetAddress}} | 4721 Oak Boulevard | Random full street address |
{{$randomCountry}} | Netherlands | Random country name |
{{$randomCountryCode}} | NL | Random 2-letter ISO 3166-1 alpha-2 country code |
{{$randomLatitude}} | 52.370216 | Random latitude between -90 and 90 |
{{$randomLongitude}} | 4.895168 | Random longitude between -180 and 180 |
Color
| Variable | Example output | Description |
|---|
{{$randomColor}} | teal | Random color name |
{{$randomHexColor}} | #3a9ef2 | Random hex color code |
Company
| Variable | Example output | Description |
|---|
{{$randomCompanyName}} | Nexus Technologies | Random company name |
{{$randomCatchPhrase}} | Streamline your workflow with seamless integration | Random marketing catch phrase |
Finance
| Variable | Example output | Description |
|---|
{{$randomBankAccount}} | 48271935 | Random 8-digit bank account number |
{{$randomCurrencyCode}} | EUR | Random 3-letter ISO 4217 currency code |
{{$randomCurrencySymbol}} | € | Random currency symbol |
{{$randomCurrencyAmount}} | 3481.92 | Random currency amount (0.00–10000.00) |
{{$randomCreditCardMask}} | xxxx-xxxx-xxxx-4829 | Masked credit card number |
Files & MIME types
| Variable | Example output | Description |
|---|
{{$randomMimeType}} | application/json | Random MIME type |
{{$randomFileExtension}} | xlsx | Random file extension (no dot) |
{{$randomFileName}} | tiger_382.pdf | Random file name with extension |
{{$randomCommonFileName}} | report.xlsx | Random file with a common office extension |
{{$randomCommonFileType}} | document | Random file category name |
{{$randomCommonFileExtension}} | pdf | Random common file extension |
Usage examples
Unique user creation
POST /users
{
"id": "{{$guid}}",
"name": "{{$randomFullName}}",
"email": "{{$randomEmail}}",
"phone": "{{$randomPhoneNumber}}",
"address": "{{$randomStreetAddress}}, {{$randomCity}}, {{$randomCountryCode}}"
}
Pagination and filtering
GET /products?limit={{$randomInt}}&page=1
Timestamped events
POST /events
{
"eventId": "{{$guid}}",
"occurredAt": "{{$isoTimestamp}}",
"source": "{{$randomUrl}}"
}
| Key | Value |
|---|
Idempotency-Key | {{$guid}} |
X-Request-Time | {{$timestamp}} |
{
"fileId": "{{$guid}}",
"fileName": "{{$randomFileName}}",
"mimeType": "{{$randomMimeType}}",
"uploadedAt": "{{$isoTimestamp}}"
}
Using dynamic variables in test scripts
Dynamic variables are resolved before the request is sent, so their generated values are baked into the actual request. If you need to capture a generated value for assertions in your test script, set it via an environment variable in the pre-request script instead:
const id = fc.environment.get('requestId') || crypto.randomUUID();
fc.environment.set('requestId', id);
Then use {{requestId}} in the request body and assert against fc.environment.get('requestId') in the test script.