The ItemService


Introduces the implementation and the general usage.

The ItemService provides a single HTTP endpoint and an API that you use to interact with Sitecore items over HTTP.

Sitecore.Services.Client ships with routes that are predefined to interact with the ItemService, and you do not need to do any server-side development to use the ItemService.

You can use the ItemService in three ways:

  • From SPEAK applications, with the StoredQueryDataSource data source. When you use the ItemService this way, it is completely transparent.

  • From client-side JavaScript (in the browser).

  • With the RESTful API that gives direct access to Sitecore items.


The Sitecore.Services.Infrastructure.Sitecore.Controllers.ItemServiceController class implements the service. The class is sealed so that other classes cannot inherit from it. We strongly recommended that you run only one single instance of the ItemService in a Sitecore website.

ItemModel return values

Sitecore.Services.Client maps Sitecore items into instances of Sitecore.Services.Core.Model.ItemModel when the ItemService returns them. The ItemModel instances contain the raw field values of the Sitecore item in a Dictionary<string, object>, with the following additional keys:

  • ItemID

  • ItemName

  • ItemPath

  • ParentID

  • TemplateID

  • TemplateName

  • CloneSource

  • ItemLanguage

  • ItemVersion

  • DisplayName

  • HasChildren

  • ItemIcon

  • ItemMedialUrl

  • ItemUrl

Examples of ItemService requests

The following examples show how to use the ItemService for read-only [GET] operations:

Get item


Get item, including metadata


Get item, including standard template fields


Get item with field projection




Search with paging and field projection


Get media item


Get item, using the content path