# Schema Field Type Reference

Below you can find each of the schema field types available in Apostrophe with links to a complete description of its function, properties, and reference code to help you use them in your project. For more general information on using schemas in Apostrophe, see the Schema Guide. For more information on the usage of specific properties, see the Schema Field Properties reference.

Field Description
area an editable content area
array A field which can store one or more objects as an array. Has its own schema
attachment provides access to upload a file to the server
boolean provides a "True" or "False" input
checkboxes provides an array of checkboxes
color provides a color picker
date provides a date picker
email accepts a valid email address
float accepts input of a decimal number with stepped parameters
integer accepts input of an integer
joinByArray expresses a one-to-many relationship between this document and one or more pieces or pages
joinByArrayReverse allows the user to see the "other side" of a joinByArray relationship
joinByOne expresses a one-to-one relationship between this document and another type of document
joinByOneReverse allows the user to see the "other side" of a joinByOne relationship
object A field which can store a single object with its own schema
password hidden text entry
range "provides an input for selecting a range of numbers"
select provides a single-select dropdown menu
singleton displays a single widget
slug A string which, when saved, is simplified to lowercase, hyphens, etc. suitable for use as part of a URL. All docs in Apostrophe have at least a field of this type named slug, but you may have more.
string accepts text entry
tags accepts text entry to define "tags" as a label for content
time provides entry for a time, which is stored in HH:MM:SS format
url provides an editable URL field
video allows the user to embed a video by pasting a link

TIP

You can also add more field types to the system; check out the source code of the apostrophe-attachments module for a good example.