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:

  1. Collection variables — defined on the collection
  2. Environment variables — from the active environment
  3. Dynamic built-in variables — resolved at send time (this document)
  4. 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

VariableExample outputDescription
{{$guid}}3d4f1b2a-9c8e-4a7d-b5f6-1e2c3d4f5a6bRandom UUID v4
{{$randomUUID}}7b8c9d0e-1f2a-4b3c-8d4e-5f6a7b8c9d0eAlias for $guid

Timestamps

VariableExample outputDescription
{{$timestamp}}1741910400Current Unix time in seconds
{{$isoTimestamp}}2026-03-14T10:30:00.000ZCurrent time as ISO 8601 UTC string
{{$randomDateFuture}}2026-09-21T14:22:11.000ZRandom date within the next 365 days
{{$randomDatePast}}2025-08-03T07:45:30.000ZRandom date within the past 365 days
{{$randomDateRecent}}2026-03-10T18:12:04.000ZRandom date within the past 7 days
{{$randomMonth}}AugustRandom full month name
{{$randomWeekday}}ThursdayRandom full weekday name

Numbers & booleans

VariableExample outputDescription
{{$randomInt}}742Random integer between 0 and 1000
{{$randomFloat}}483.27Random float between 0 and 1000, 2 decimal places
{{$randomBoolean}}trueRandom boolean (true or false)

Characters & words

VariableExample outputDescription
{{$randomAlphaNumeric}}kSingle random alphanumeric character (a-z, 0-9)
{{$randomAlpha}}mSingle random lowercase letter
{{$randomHexadecimal}}aSingle random hexadecimal character (0-9, a-f)
{{$randomWord}}eagleSingle random English word
{{$randomWords}}cloud tiger river2 to 5 random words
{{$randomSemver}}2.14.7Random semantic version string

Lorem ipsum

VariableExample outputDescription
{{$randomLoremWord}}adipiscingSingle lorem ipsum word
{{$randomLoremSentence}}Lorem ipsum dolor sit amet.Random lorem ipsum sentence
{{$randomLoremParagraph}}Lorem ipsum...Random lorem ipsum paragraph (3–5 sentences)

Person

VariableExample outputDescription
{{$randomFirstName}}OliviaRandom first name
{{$randomLastName}}MartinezRandom last name
{{$randomFullName}}Grace ThompsonRandom 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.thompson42Random username (firstname.lastname + 2 digits)
{{$randomEmail}}grace.thompson17@gmail.comRandom email address
{{$randomPassword}}X7kLm#nQp2Rv!Random 12–20 character password
{{$randomPhoneNumber}}+1-415-732-8901Random US phone number
{{$randomJobTitle}}Senior Backend DeveloperRandom job title

Network

VariableExample outputDescription
{{$randomIP}}192.168.42.10Random IPv4 address
{{$randomIPV6}}2001:0db8:85a3:0000:0000:8a2e:0370:7334Random IPv6 address
{{$randomMACAddress}}4a:f3:2c:9b:17:e5Random MAC address
{{$randomProtocol}}httpshttp or https
{{$randomDomainSuffix}}.ioRandom TLD (.com, .net, .org, .io, .dev, .co, .app, .ai)
{{$randomDomainName}}river.ioRandom domain name
{{$randomUrl}}https://storm.dev/oceanRandom full URL

Location

VariableExample outputDescription
{{$randomCity}}SingaporeRandom city name
{{$randomStreetName}}Maple AvenueRandom street name with type
{{$randomStreetAddress}}4721 Oak BoulevardRandom full street address
{{$randomCountry}}NetherlandsRandom country name
{{$randomCountryCode}}NLRandom 2-letter ISO 3166-1 alpha-2 country code
{{$randomLatitude}}52.370216Random latitude between -90 and 90
{{$randomLongitude}}4.895168Random longitude between -180 and 180

Color

VariableExample outputDescription
{{$randomColor}}tealRandom color name
{{$randomHexColor}}#3a9ef2Random hex color code

Company

VariableExample outputDescription
{{$randomCompanyName}}Nexus TechnologiesRandom company name
{{$randomCatchPhrase}}Streamline your workflow with seamless integrationRandom marketing catch phrase

Finance

VariableExample outputDescription
{{$randomBankAccount}}48271935Random 8-digit bank account number
{{$randomCurrencyCode}}EURRandom 3-letter ISO 4217 currency code
{{$randomCurrencySymbol}}Random currency symbol
{{$randomCurrencyAmount}}3481.92Random currency amount (0.00–10000.00)
{{$randomCreditCardMask}}xxxx-xxxx-xxxx-4829Masked credit card number

Files & MIME types

VariableExample outputDescription
{{$randomMimeType}}application/jsonRandom MIME type
{{$randomFileExtension}}xlsxRandom file extension (no dot)
{{$randomFileName}}tiger_382.pdfRandom file name with extension
{{$randomCommonFileName}}report.xlsxRandom file with a common office extension
{{$randomCommonFileType}}documentRandom file category name
{{$randomCommonFileExtension}}pdfRandom 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}}"
}

Idempotency keys in headers

KeyValue
Idempotency-Key{{$guid}}
X-Request-Time{{$timestamp}}

File upload metadata

{
  "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:

// Pre-request script
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.