System Fields

All default, and custom content types come with some managed system fields. These fields reflect certain states of your content, such as when it was last updated, or published at.

Default model fields

These fields are included with all content models you create within GraphCMS.

idInteger!Unique for each content entry
createdAtDateTime!Timestamp for when the content entry was created
updatedAtDateTime!Timestamp for when the content entry was updated
publishedAtDateTime!Timestamp for when the content entry was published

Asset fields

Since the Asset model is included with every project, it also comes with some predefined fields, as well as all of the system fields above.

The Asset field type has all of the default fields, as well as:

urlString!The URL of the asset, with any transformations.
handleString!The file handle.
fileNameString!The document file name that was uploaded.
heightFloatThe height of the file (for images only).
widthFloatThe width of the file (for images only).
sizeFloatThe total file size.
mimeTypeStringThe mime type of the file.
localeLocale!The system locale enumeration for your projects locales. E.g. en, de.
localizations[Asset!]!An array of localized assets for the asset you are querying.

Asset fields are localized by default, and always include the localization fields described below.

Localization fields

When you localize fields within GraphCMS, the model will be updated to contain the following fields:

localeLocale!The system locale enumeration for your projects locales. E.g. en, de.
localizations[modelName!]!An array of localized entries for the model you are querying.

Learn more about working with Localization.

Version history fields

One of the auto-generated queries GraphCMS will create is around versioning. Each time you publish content to a stage, a version is saved.

You can fetch the version history of a content entry by using the history field on a model. This field is managed automatically by GraphCMS.

idID!The id of the content entry you are querying.
stageStage!The content stage the content entry was published to. E.g. PUBLISHED.
revisionInt!The revision number. Auto incrementing from 1.
createdAtDateTime!The timestamp when the version was created.
dataJsonA snapshot of the document in JSON.

Connection type fields

Since GraphCMS implements the Relay specification, when fetching with Relay you will have some fields made available to you automatically.

For example, let's imagine we have the model Post. The postsConnection would look a little something like:

edges[PostEdge!]!A list of edges, containing cursor, and the node.
pageInfoPageInfo!Information used for paginating nodes.
aggregateAggregate!The count of records, relative to any filters.


cursorString!The edge cursor, used for paginating records.
nodePost!The actual entry of the record, for example the Post entry.


GraphCMS exposes the PageInfo type on the field pageInfo for connection queries. This is useful with cursor based pagination.

hasNextPageBoolean!When paginating forwards, are there more items?
hasPreviousPageBoolean!When paginating backwards, are there more items?
startCursorStringWhen paginating backwards, the cursor to continue
endCursorStringWhen paginating forwards, the cursor to continue
pageSizeIntThe number of items in the current page

Learn more about Relay cursor pagination.


It is possible using the connection type query to perform an aggregate count.

countInt!The count of results matching the query, and filters.

Did you find this page useful?

Your feedback helps us improve our docs, and product.

This site uses cookies to provide you with a better user experience. For more information, refer to our Privacy Policy