Field types
Use the generator names and options exposed by your DataMaker deployment.
The field picker and GET /fields expose the generator catalogue for your installed release. Use its exact names and options in code; labels such as first_name are column names, not the catalogue name First Name.

Common generators
| Purpose | Catalogue names |
|---|---|
| Identity | UUID, Name, First Name, Last Name, E-Mail |
| Numbers and choices | Number, Float, Boolean, Custom |
| Dates | Date, Datetime, Birthdate, Month, Weekday, Time Zone |
| Location and contact | Address, City, Country, Street Name, Phone Number, Zip Code |
| Business | Company Name, Job Title, Product, Product Name, Department |
| Financial and identifiers | IBAN, Country Format, Credit Card Number, Account Number, SSN, IMEI |
| Text and web | Words, Lorem, Random String, RegExp, URL, Domain Name, IPv4, MAC Address |
An address can come from the deployment's configured address dataset. Synthetic generation does not imply that an address or other generated value cannot coincide with a real one.
Smart and dynamic types
| Type | Use |
|---|---|
Derived | Interpolate other fields with {{field}}, or use the supported expression mode. |
Mapped | Map another field's value through a configured lookup. |
Nested | Inline child fields in one object or array. |
Template | Generate from a saved template reference. |
Custom | Choose values from a weighted distribution or reusable value library. |
AI | Generate from a prompt using the configured AI service. |
API Response | Read values from a configured endpoint. |
DB Response | Read values using a configured database query. |
Python Script | Use custom script output. |
Null | Emit an absent value: null by default, or an empty string, [] or {} by option. |
Unknown | A field whose type could not be inferred. Review and replace it rather than generating from it. |
API Response and DB Response can return real source data. Select and review a masking policy before using sensitive source values outside their approved context.
Options
Options are type-specific. For example, Number supports min and max; Custom uses options.distribution; Derived uses options.mode and options.value. Do not assume every type accepts a universal unique, nullable or sensitive option.
curl --fail-with-body "$DATAMAKER_API_URL/fields" \
-H "X-API-Key: $DATAMAKER_API_KEY"The response is an array of {type, options, meta} objects. options provides defaults and meta describes editor controls. Use this response to check names and configuration before creating a template programmatically.
One option is not a generator setting at all. options.invalid declares the constraint a field is under - { "kind": "required" | "type" | "length" | "format" | "enum" | "range" } - and is read only when building a negative-test set. It does not affect ordinary generation.