# Reference Field

### About this export

| Field | Value |
| --- | --- |
| **content_type** | lesson |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/contentstack-end-user-training-eut-/reference-field |
| **course_slug** | contentstack-end-user-training-eut- |
| **lesson_slug** | reference-field |
| **markdown_file_url** | /academy/md/courses/contentstack-end-user-training-eut-/reference-field.md |
| **generated_at** | 2026-05-28T12:30:01.809Z |

> Part of **[Contentstack End User Training (EUT)](https://www.contentstack.com/academy/courses/contentstack-end-user-training-eut-)** on Contentstack Academy. **Academy MD v3** — structured for retrieval; no quiz or assessment keys.

<!-- ai_metadata: {"lesson_id":"16","type":"text","duration_minutes":1,"topics":["Reference","Field"]} -->

#### Lesson text

The **Reference** field allows you to create references to entries of the same or another content type(s). It lets you access and use entries of other content types as input within your field.

![CSendUserTraining\_L16\_img-1.png](https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/blt4ef22b511fe7734d/67ddc5854a89c30494a307e6/CSendUserTraining_L16_img-1.png)

# **Understanding with an example**

Let's understand this using the below diagram:

![CSendUserTraining\_L16\_img-2.png](https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltb500d868733cf3d7/67ddc5a0983a65c79d3b808b/CSendUserTraining_L16_img-2.png)

Consider a 'Blog page,' for example. There can be multiple blogs, each with the same or different authors. In such use cases, we will create two content types to avoid repeatability and create reusable components. The first content type will be 'Blog Page,' which consists of fields such as 'Title,' 'Description,' 'Image,' 'Author,' and 'Published Date.' The second content type will be 'Authors,' consisting of fields such as 'Title,' 'Description,' and 'Image.'

Now you can add the 'Author' content type as a reference field in the 'Blog Page' content type. When you create an entry for the 'Blog Page' content type, you will refer to one of the entries from the 'Author' content type for the 'Author' field. When the page is rendered using [**Contentstack APIs**](https://www.contentstack.com/docs/developers/apis/), the final Blog Page will contain all the content, including the Author details.

Referencing can be classified into ' Self Referencing' and 'Include Referencing.' We can further classify 'Include Referencing' into two more sub-types: ' Single Content Type Referencing' and 'Multiple Content Type Referencing.'

Let's have a look at each of these with examples:

*   **Self-Referencing** - This refers to creating references of the same content type.  
    Example: If a user buys a mobile phone belonging to XYZ brand, they should get recommendations of headsets, chargers, or mobile phone covers of the same brand. In this case, you can create a 'Product' content type with a field named 'Recommendations' as a reference to the same content type 'Product.'
    
*   **Include Referencing** - This refers to creating references of another content type(s).
    

1.  **Single Content Type Referencing** - Here, the Reference field allows you to create references to entries of a single content type.  
    Example: The Blog page and Author example you have seen above best suit this. The 'Author' field in the 'Blog Page' content type references the 'Author' content type. When you create an entry for the 'Blog Page' content type, you will refer to one of the entries from the 'Author' content type for the 'Author' field.
    
2.  **Multiple Content Type Referencing** - Here, the Reference field allows you to create references to entries of various content types.  
    Example: For an e-commerce site, you may have primary items like Clothes, Shoes, and Bags, and you want to create a page that displays all the products of a selected brand. First, you would create content types like 'Clothes,' 'Shoes,' and 'Bags' and their entries. Then, you would make the 'Brand' content type with the necessary fields and add a 'Reference' field named 'Products' that refers to the three content types 'Clothes,' 'Shoes,' and 'Bags.' When you create an entry for the 'Products,' you can select the entries from the three referenced content types.
    

The Reference field possesses specific properties you can change anytime per your requirements.

The properties that can be modified are:

*   **Basic**
    
    *   **Display Name**
        
    *   **Unique ID**
        
    *   **Instruction Value**
        
    *   **Help Text**
        
    *   **Referenced Content Type**
        
    

![CSendUserTraining\_L16\_img-3.png](https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltad470e7226852c56/67ddc5bdb1a1f3a86d3efd0f/CSendUserTraining_L16_img-3.png)

*   **Advanced**
    
    *   **Options**
        
        *   **Mandatory**
            
        *   **Multiple**
            
        *   **Non-localizable**
            
        
    

![CSendUserTraining\_L16\_img-4.png](https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/blt0f31348e30b51c06/67ddc5d417f7b465c90d05e3/CSendUserTraining_L16_img-4.png)

**Potential Use Case**:

*   A reference field can be used to add links between two entries. In the Blog Entries page, the Author can be a reference entry with a separate Author Page, and it's easy to update Author details in one place in the Author content type entry due to referencing instead of each blog article of that Author.
    
*   Categories are another use case of reference where we can create a separate content type and add them as a reference in articles.
    
*   In the Navigation Menu, instead of a static link, we can add entry pages as reference menu items for each menu.
    

**Quick Tips**:  
It's advised to limit content reference depth levels to 3 for better visibility and governance of content.  
Also, the maximum number of content types should be limited to 20 in a reference field.

# **Further Reading**

*   [About Reference Field](https://www.contentstack.com/docs/developers/create-content-types/reference/)

#### Key takeaways

- Connect **Reference Field** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

## Supplement for indexing

### Content summary

Reference Field. The Reference field allows you to create references to entries of the same or another content type(s). It lets you access and use entries of other content types as input within your field. ! CSendUserTraining\ L16\ img-1.png (https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/blt4ef22b511fe7734d/67ddc5854a89c30494a307e6/CSendUserTraining L16 img-1.png) Understanding with an example Let's understand this using the below diagram: ! CSendUserTraining\ L16\ img-2.png (https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltb500d868733cf3d7/67ddc5a0983a65c79d3b808b/CSendUserTraining L16 img-2.png) Consider a 'Blog page,' for example. There can be multiple blogs, each with the sa

### Retrieval tags

- Reference
- Field
- contentstack-end-user-training-eut-
- lesson 16
- Reference Field
- contentstack-end-user-training-eut- lesson

### Indexing notes

Index this lesson as a primary chunk tagged with lesson_id "16" and topics: [Reference, Field].
Parent course slug: contentstack-end-user-training-eut-. Use asset_references URLs as thumbnail hints in search results when present.
Never surface LMS quiz content or assessment answers from this file.

### Asset references

| Label | URL |
| --- | --- |
| CSendUserTraining\_L16\_img-1.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/blt4ef22b511fe7734d/67ddc5854a89c30494a307e6/CSendUserTraining_L16_img-1.png` |
| CSendUserTraining\_L16\_img-2.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltb500d868733cf3d7/67ddc5a0983a65c79d3b808b/CSendUserTraining_L16_img-2.png` |
| CSendUserTraining\_L16\_img-3.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltad470e7226852c56/67ddc5bdb1a1f3a86d3efd0f/CSendUserTraining_L16_img-3.png` |
| CSendUserTraining\_L16\_img-4.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/blt0f31348e30b51c06/67ddc5d417f7b465c90d05e3/CSendUserTraining_L16_img-4.png` |

### External links

| Label | URL |
| --- | --- |
| Contentstack Academy home | `https://www.contentstack.com/academy/` |
| Training instance setup | `https://www.contentstack.com/academy/training-instance` |
| Academy playground (GitHub) | `https://github.com/contentstack/contentstack-academy-playground` |
| Contentstack documentation | `https://www.contentstack.com/docs/` |
| CSendUserTraining\_L16\_img-1.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/blt4ef22b511fe7734d/67ddc5854a89c30494a307e6/CSendUserTraining_L16_img-1.png` |
| CSendUserTraining\_L16\_img-2.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltb500d868733cf3d7/67ddc5a0983a65c79d3b808b/CSendUserTraining_L16_img-2.png` |
| **Contentstack APIs** | `https://www.contentstack.com/docs/developers/apis/` |
| CSendUserTraining\_L16\_img-3.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltad470e7226852c56/67ddc5bdb1a1f3a86d3efd0f/CSendUserTraining_L16_img-3.png` |
| CSendUserTraining\_L16\_img-4.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/blt0f31348e30b51c06/67ddc5d417f7b465c90d05e3/CSendUserTraining_L16_img-4.png` |
| About Reference Field | `https://www.contentstack.com/docs/developers/create-content-types/reference/` |
