Skip to content


url adds an editable URL field to the schema.

Apostrophe will detect common mistakes, including leaving off https://. Common XSS attack vectors are laundered and discarded. Only "safe" URL schemes, e.g., http, https, ftp and mailto, are permitted.

Module field definition

// Configuring the `portfolio` field in a module's `fields.add` subsection:
portfolio: {
  label: 'Portfolio URL',
  type: 'url'



labelStringn/aSets the visible label for the field in the UI
typeStringn/aSpecifies the field type (string for this type)


autocompleteStringn/aSets the value of the autocomplete attribute on the field.
defStringn/aThe default value for the field
helpStringn/aHelp text for the content editor
hiddenBooleanfalseIf true, the field is hidden
htmlHelpStringn/aHelp text with support for HTML markup
ifObject{}Conditions to meet before the field is active. See the guide for details.
patternStringn/aAccepts a regular expression string to validate the input. Only values matching the pattern are allowed.
readOnlyBooleanfalseIf true, prevents the user from editing the field value
requiredBooleanfalseIf true, the field is mandatory
requiredIfObject{}Conditions to meet before the field is required. See the guide for details.


The string supplied to the autocomplete option is used as the value of the autocomplete attribute for the field, as specified in the HTML standards. This feature suggests possible values based on user inputs and previously entered data, streamlining data entry and improving form usability. This also takes a string of off to disable autocomplete for sensitive fields. For detailed information on how the autocomplete attribute works and the values it accepts, refer to the MDN documentation on autocomplete.

Use in templates

<href="{{ data.piece.portfolio }}">My website</a>