Contentstack - .Net Delivery SDK
.NET SDK for Contentstack's Content Delivery API
Contentstack is a headless CMS with an API-first approach. It is a CMS that developers can use to build powerful cross-platform applications in their favorite languages. Build your application frontend, and Contentstack will take care of the rest.
For more information, you can check out the GitHub page of our .NET Delivery SDK.
Prerequisites
To get started with C#, you will need:
- .Net platform
- IDE (Visual Studio)
- NuGet.
SDK installation and setup
The .Net SDK provided by contentstack.io is available for Xamarin, Windows Phone and legacy .Net applications. You can integrate contentstack with your application by following these steps.
Open the terminal and install the contentstack module via 'Package Manager' command
PM> Install-Package contentstack.csharp
And via ‘.Net CLI’
dotnet add package contentstack.csharp
To use the module in your application, you need to first Add Namespace to your class
using Contentstack.Core; // ContentstackClient using Contentstack.Core.Models; // Stack, Query, Entry, Asset, ContentType, ContentstackCollection using Contentstack.Core.Configuration; // ContentstackOptions
Quickstart in 5 mins
Initialize SDK
You will need to specify the API key, Access token, and Environment Name of your stack to initialize the SDK:
// Initialize the Contentstack ContentstackClient client = new ContentstackClient("api_key", "delivery_token", "enviroment_name");
or:
ContentstackOptions options = new ContentstackOptions() { ApiKey = "<api_key>", DeliveryToken = "<access_token>", Environment = "<environment>" } ContentstackClient client = new ContentstackClient(options);
Once you have initialized the SDK, you can start getting content in your app
For Setting other regions:
Refer the below code if you want to use the Europe, Azure North America, Azure Europe, GCP North America, or GCP Europe region.
ContentstackOptions options = new ContentstackOptions() { ApiKey = "<api_key>", DeliveryToken = "<delivery_token>", Environment = "<environment>", Region = ContentstackRegion.EU } ContentstackClient client = new ContentstackClient(options);
Once you have initialized the SDK, you can start getting content in your app.
For Setting the Early Access Header:
Integrating EarlyAccess headers into the ContentstackOptions grants access to features included in the early access program.
ContentstackOptions options = new ContentstackOptions() { ApiKey = "<api_key>", DeliveryToken = "<delivery_token>", Environment = "<environment>", Branch = "<branch>" EarlyAccess = new string [] {"Taxonomy", "Teams", "Terms", "LivePreview"} }; ContentstackClient client = new ContentstackClient(options);
Parameters:
Name | Type | Description |
---|---|---|
EarlyAccess (Optional) | Array of Strings | Array of header strings for early access features. |
Basic Queries
Get a Single Entry
To retrieve a single entry from a content type, use the code snippet given below:
ContentstackClient client = new ContentstackClient("api_key", "delivery_token", "enviroment_name"); Entry entry = client.ContentType("product").Entry("entry_uid"); entry.Fetch<Product>().ContinueWith((t) => { if (!t.IsFaulted) { Console.WriteLine("entry:" + t.Result); } });
Get Multiple Entries
To retrieve multiple entries of a particular content type, use the code snippet given below:
ContentstackClient client = new ContentstackClient("api_key", "delivery_token", "enviroment_name"); Query query = client.ContentType("product").Query(); query.Where("title", "welcome"); query.IncludeSchema(); query.IncludeCount(); query.ToJSON(); query.Find<Product>().ContinueWith((t) => { if (!t.IsFaulted) { ContentstackCollection<Product> result = t.Result; Console.WriteLine("result" + result.items); } });
Note: By default, the limit for response details per request is 100, with the maximum limit set at 250.
Paginating Responses
In a single instance, the Get Multiple Entries query will retrieve only the first 100 items of the specified content type. You can paginate and retrieve the rest of the items in batches using the skip and limit parameters in subsequent requests.
ContentstackClient client = new ContentstackClient("api_key", "delivery_token", "enviroment_name"); Query query = client.ContentType("blog").Query(); query.Skip(20); query.Limit(20); query.Find<Blog>().ContinueWith((t) => { if (!t.IsFaulted) { ContentstackCollection<Blog> result = t.Result; Console.WriteLine("result" + result); } });
ContentstackOptions
Name | Type | Description |
---|---|---|
ApiKey (required) | string | The api key used when communicating with the Contentstack API. |
AccessToken | string | The access token used when communicating with the Contentstack API. |
DeliveryToken (required) | string | The delivery token used when communicating with the Contentstack API. |
Environment (required) | string | The environment used when communicating with the Contentstack API. |
Region | ContentstackRegion | DB region for your stack. You can choose from five regions namely, NA, EU, Azure NA, Azure EU, and GCP NA. |
Host | string | The Host used to set host url for the Contentstack API. |
Version | string | The Version number for the Contentstack API. |
Branch | string | The Branch used to set Branch for the Contentstack API. |
LivePreview | LivePreviewConfig | The Live preview configuration for the Contentstack API. |
LivePreviewConfig
Configuration for enabled live preview to get live content data
Name | Type | Description |
---|---|---|
Enable | bool | To enable live preview |
Host | string | Host for getting live preview content |
PreviewToken | string | Preview Token for the stack to get content |
ContentstackRegion
Fields
Name | Description |
---|---|
EU | To specify the EU region. |
US | To specify the US region. |
AZURE_NA | To specify the AZURE NA region |
AZURE_EU | To specify the AZURE EU region |
GCP_NA | To specify the GCP NA region |
GCP_EU | To specify the GCP EU region |
ContentstackCollection
Name | Type | Description |
---|---|---|
Count | int | The total number of items available. |
Items | IEnumerable<T> | The System.Collections.Generic.IEnumerable<T> of items to be serialized from the API response. |
Limit | int | The maximum number of items returned in this result. |
Skip | int | The number of items skipped in this resultset. |
ContentstackException
The ContentstackError class is abstraction of general exception class.
Name | Type | Description |
---|---|---|
ErrorCode | int | Contentstack error code. |
ErrorMessage | string | Contentstack error message |
Errors | Dictionary<string, object> | Set of errors in detail. |
SyncStack
Name | Type | Description |
---|---|---|
Items | IEnumerable<dynamic> | Readonly property contains all the Contents |
PaginationToken | string | Readonly property for paginating sync |
SyncToken | string | Readonly property to delta sync. |
TotalCount | int | Readonly property to check totalCount |
SyncType
The different types of items you can request a sync for.
Fields
Name |
Description |
---|---|
All |
Only published entries and assets |
AssetDeleted |
Only deleted assets |
AssetPublished |
Only published assets |
AssetUnpublished |
Only unpublished assets |
ContentTypeDeleted |
Only deleted Content-Types entries |
Default |
This will bring all published entries and published assets |
EntryDeleted |
Only deleted entries |
EntryPublished |
Only published entries |
EntryUnpublished |
Only unpublished entries |
ContentstackClient
Name | Type | Description |
---|---|---|
SerializerSettings | JsonSerializerSettings | Gets or sets the settings that should be used for deserialization. |
ContentstackClient
Initializes an instance of the ContentstackClient class.
Name | Type | Description |
---|---|---|
apiKey | string | API Key of your stack on Contentstack. |
deliveryToken | string | Delivery token of your stack on Contentstack. |
environment | string | Environment from where you want to fetch content. |
host | string | Specifies the base URL for the Contentstack API. Default: cdn.contentstack.io |
region | ContentstackRegion | Specifies the database region for your stack. You can choose from the following: NA, EU, Azure NA, Azure EU, and GCP NA. Default: ContentstackRegion.US |
version | string | Specifies the version of the Contentstack API to use. Default: v3 |
ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment");
Name | Type | Description |
---|---|---|
options | ContentstackOptions | used to get stack details via class ContentstackOptions to create client. |
var options = new ContentstackOptions() { ApiKey = "api_key", DeliveryToken = "delivery_token" Environment = "environment" } ContentstackClient stack = new ContentstackClient(options);
GetVersion
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); String url = stack.GetVersion();
Asset
Represents a Asset. Creates Asset Instance.
Name | Type | Description |
---|---|---|
Uid | string | This is Asset Uid of an Asset. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = stack.Asset("asset_uid");
AssetLibrary
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); AssetLibrary assetLibrary = stack.AssetLibrary();
ContentType
Name | Type | Description |
---|---|---|
contentTypeUid | string | ContentType UID. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentType contentType = stack.ContentType("content_type_uid");
GetApplicationKey
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); String apiKey = stack.GetApplicationKey();
GetAccessToken
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); String accessToken = stack.GetAccessToken();
GetEnvironment
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); String environment = stack.GetEnvironment();
GetContentTypes
Name | Type | Description |
---|---|---|
param | Dictionary<string, object> | dictionary of additional parameter |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); var param = new Dictionary<string, object>(); param.Add("include_global_field_schema",true); param.Add("limit", 10); param.Add("skip", 10); param.Add("include_count", "true"); var result = await stack.GetContentTypes(param);
LivePreviewQuery
Name | Type | Description |
---|---|---|
query | Dictionary<string, string> | Query parameter containing hash and content type UID |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); await client.LivePreviewQueryAsync(new System.Collections.Generic.Dictionary<string, string>() { {"live_preview" , "live_preview_hash_from_url_query" }, {"content_type_uid", "content_type_uid<span>_from_url_query</span>" }, {"entry_uid", "entry_uid<span>_from_url_query</span>" } });
RemoveHeader
Name | Type | Description |
---|---|---|
key | string | key to be remove from header |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); stack.RemoveHeader("custom_header_key")
SyncToken
Name | Type | Description |
---|---|---|
SyncToken | string | Sync token. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); SyncStack result = await client.SyncToken("sync_token");
SyncRecursive
Name | Type | Description |
---|---|---|
Locale | string | Locale |
SyncType | SyncType | Sync type. |
ContentTypeUid | string | Content type uid. |
StartFrom | DateTime | Start from. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); SyncStack result = await client.SyncRecursive();
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); SyncStack result = await client.SyncRecursive(SyncType: SyncType.AssetPublished);
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); SyncStack result = await client.SyncRecursive(ContentTypeUid: "source");
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); SyncStack result = await client.SyncRecursive(StartFrom:DateTime.Now);
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); SyncStack result = await client.SyncRecursive(SyncType: SyncType.EntryPublished, ContentTypeUid: "source");
SyncPaginationToken
Name | Type | Description |
---|---|---|
paginationToken | string | Pagination token. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); SyncStack result = await stack.SyncPaginationTokenn("pagination_token");
Asset
Creates an instance of Assets. Use a UID to fetch a specific asset, or use the AssetLibrary class to retrieve all assets.
Name | Type | Description |
---|---|---|
Uid (required) | string | Asset uid |
Url | string | Asset URL |
Description | string | Asset Description |
FileName | string | File name for Asset |
FileSize | string | File size of asset |
Tags | object[] | Tags assign to asset |
SetHeader
Name | Type | Description |
---|---|---|
key | string | header name. |
value | string | header value against given header name. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").SetHeader("custom_key", "custom_value").Fetch();
RemoveHeader
Name | Type | Description |
---|---|---|
key | string | key to be remove from header |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").RemoveHeader("header_to_remove").Fetch();
GetCreateAt
Get created at time.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").Fetch(); DateTime date = asset.GetCreateAt();
GetCreatedBy
Get created by user uid
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").Fetch(); string createBy = asset.GetCreatedBy();
GetUpdateAt
Get updated at time.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").Fetch(); DateTime date = asset.GetUpdateAt();
GetUpdatedBy
Get Update by user uid
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").Fetch(); string createBy = asset.GetUpdatedBy();
GetDeleteAt
Get deleted at time.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").Fetch(); DateTime date = asset.GetDeleteAt();
GetDeletedBy
Get Deleted by user uid
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").fetch(); string createBy = asset.GetDeletedBy();
IncludeBranch
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").IncludeBranch().Fetch();
IncludeFallback
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").IncludeFallback().Fetch();
IncludeMetadata
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").IncludeMetadata().Fetch();
Fetch
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Asset asset = await stack.Asset("asset_uid").Fetch();
AssetLibrary
Get all asset from Stack
SetHeader
Name | Type | Description |
---|---|---|
key | string | header name. |
value | string | header value against given header name. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> asset = await stack.AssetLibrary().SetHeader("custom_key", "custom_value").FindAll();
RemoveHeader
Name | Type | Description |
---|---|---|
key | string | key to be remove from header |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> asset = await stack.AssetLibrary("asset_uid").RemoveHeader("header_to_remove").FindAll();
SortWithKeyAndOrderBy
Name | Type | Description |
---|---|---|
key | string | Field UID |
order | string | ordering for sorting from key |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> asset = await stack.AssetLibrary().SortWithKeyAndOrderBy("field_uid", "order").FindAll();
SetLocale
Sets the locale.
Name | Type | Description |
---|---|---|
locale | string | Locale to be fetch |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().SetLocale("en-us").FetchAll();
Skip
The number of objects to skip before returning any.
Name | Type | Description |
---|---|---|
number | int | No of objects to skip from returned objects. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().Skip(20).FetchAll();
Limit
Name | Type | Description |
---|---|---|
number | int | No of objects to limit. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().Limit(20).FetchAll();
IncludeBranch
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().IncludeBranch().FindAll();
IncludeCount
This method also includes the total number of assets returned in the response.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().IncludeCount().FindAll();
IncludeFallback
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().IncludeFallback().FindAll();
IncludeMetadata
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().IncludeMetadata().FindAll();
Except
Specifies list of field uids that would be excluded from the response.
Name | Type | Description |
---|---|---|
fieldUids | System.String[] |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); AssetLibrary assetLibrary = await stack.AssetLibrary().Except(new String[]{"name", "description"}).FetchAll();
Only
Specifies an array of 'only' keys in BASE object that would be 'included' in the response.
Name | Type | Description |
---|---|---|
fieldUid | System.String[] |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); AssetLibrary assetLibrary = await stack.AssetLibrary().Only(new String[]{"name", "description"}).FetchAll();
IncludeRelativeUrls
This method includes the relative url of assets.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().IncludeRelativeUrls().FindAll();
FetchAll
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Asset> assets = await stack.AssetLibrary().FetchAll();
Count
Total count of the asset in specified Stack
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); AssetLibrary assetLibrary = await stack.AssetLibrary().Count();
Query
AssetLibrary Query allows you to retrieve assets that match specific query criteria, returning a comprehensive list of assets that meet the defined parameters.
Name | Type | Description |
---|---|---|
queryObject | JObject | The query contains the parameters needed to fetch assets and supports nested structures when required. |
Example:
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); JObject queryObject = new JObject { { "filename", "image3.png" } }; ContentstackCollection<Asset> assets = await stack.AssetLibrary().Query(queryObject).FetchAll();
JObject queryObject = new JObject { { "bank_offers.card_type", new JObject { { "$ne", "Debit Card" } } } };
Tags
The tags method retrieves all assets associated with the specified tag
Name | Type | Description |
---|---|---|
tags | string[] | An array of tag strings used to filter assets; returns assets matching any specified tag. If null or empty, no tag filtering is applied. |
Example:
ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); AssetLibrary assetLibrary = stack.AssetLibrary(); assetLibrary.Tags(new string[] {"banner"}); ContentstackCollection<Asset> assets = await assetLibrary.FetchAll();
ContentType
ContentType provides Entry and Query instance.
Name | Type | Description |
---|---|---|
ContentTypeId | string | Content type uid |
SetHeader
To set headers for Contentstack rest calls.
Name | Type | Description |
---|---|---|
key | string | header name. |
value | string | header value against given header name. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentType contentType = stack.ContentType("content_type_uid").SetHeader("custom_key", "custom_value");
RemoveHeader
Remove header key.
Name | Type | Description |
---|---|---|
key | string | key to be remove from header |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentType contentType = await stack.ContentType("content_type_uid").RemoveHeader("header_to_remove");
Fetch
This method returns the complete information, of a specific content type.
Name | Type | Description |
---|---|---|
param | Dictionary<Object> | Dictionary of additional parameter |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); var param = new Dictionary<string, object>(); param.Add("include_global_field_schema",true); var result = await stack.ContentType("content_Type_uid").Fetch(param);
Entry
Represents a Entry. Create Entry Instance.
Name | Type | Description |
---|---|---|
entryUid | string | Set entry uid. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = stack.ContentType("content_Type_uid").Entry("entry_uid");
Query
Represents a Query Create Query Instance.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Query query = stack.ContentType("content_Type_uid").Query();
Entry
An initializer is responsible for creating Entry object.
Name | Type | Description |
---|---|---|
Metadata | Dictionary<string, object> | Set key/value attributes of Metadata. |
Object | Dictionary<string, object> | Set key/value attributes of an current entry instance. |
Tags | object[] | Set array of Tags |
Title | string | Title of an entry |
Uid | string | This is Entry Uid of an entry. |
GetContentType
Get contentType name.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); string contentType = stack.ContentType("content_Type_uid").Entry("entry_uid").GetContentType();
GetUid
Get entry uid
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); var uid = entry.GetUid();
GetTitle
Get entry title
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); var title = entry.GetTitle();
GetTags
Returns tags of this entry.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); var tags = entry.GetTags();
GetMetadata
Get metadata of entry.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); var metadata = entry.GetMetadata();
GetHTMLText
Get html text for markdown data type
Name | Type | Description |
---|---|---|
markdownKey | string | field_uid as key. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); var result = entry.GetHTMLText("markdownKey");
GetMultipleHTMLText
Get html text for markdown data type which is multiple true
Name | Type | Description |
---|---|---|
markdownKey | string | Field_uid as key. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); List<string> metadata = entry.GetMultipleHTMLText("markdown_field_uid");
GetCreateAt
Get value of creation time of entry.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); DateTime datetime = entry.GetCreateAt();
GetCreatedBy
Get uid who created this entry.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); string createdBy = entry.GetCreatedBy();
GetUpdateAt
Get value of updating time of entry.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); DateTime datetime = entry.GetUpdateAt();
GetUpdatedBy
Get uid who updated this entry.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); string updatedBy = entry.GetUpdatedBy();
GetDeletedAt
Get value of deleting time of entry.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); DateTime datetime = entry.GetDeletedAt();
GetDeletedBy
Get uid who created this entry.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); string deletedBy = entry.GetDeletedBy();
Get
Get object value for key.
Name | Type | Description |
---|---|---|
key | Object | Key to get value |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Entry>(); Object value = entry.Get("key");
SetCachePolicy
To set cache policy using Entry instance.
Name | Type | Description |
---|---|---|
cachePolicy | CachePolicy | CachePolicy instance |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_type_uid").Entry("entry_uid").SetCachePolicy(CachePolicy.NetworkElseCache).Fetch<Entry>();
SetHeader
To set headers for Contentstack rest calls.
Name | Type | Description |
---|---|---|
key | string | header name. |
value | string | header value against given header name. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_type_uid").Entry("entry_uid").SetHeader("custom_key", "custom_value").Fetch();
RemoveHeader
Remove header key.
Name | Type | Description |
---|---|---|
key | string | key to be remove from header |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_type_uid").Entry("entry_uid").RemoveHeader("header_to_remove").Fetch();
SetLocale
Sets the locale.
Name | Type | Description |
---|---|---|
Locale | string | Locale to fetch entry |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_type_uid").Entry("entry_uid").SetLocale("en-us").Fetch<Entry>();
SetUid
Assigns a uid to current instance of an entry.
Name | Type | Description |
---|---|---|
uid | string | Uid for entry to fetch |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.Entry().SetUid("entry_uid").SetLocale("en-us").Fetch<Entry>();
SetTags
Assign a tag(s) for this Entry.
Name | Type | Description |
---|---|---|
tags | string[] | Collection of tags. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.Entry("entry_uid").SetTags(new List<string>() { "tag_1" }).Fetch<Entry>();
IncludeReferenceContentTypeUID
This method also includes the content type UIDs of the referenced entries returned in the response.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeReferenceContentTypeUID().Fetch<Entry>();
IncludeReference
Add a constraint that requires a particular reference key details.
Name | Type | Description |
---|---|---|
referenceFields | string[] | Array key that to be constrained. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeReference(new String[]{"reference_uid_1", "reference_uid_2"}).Fetch<Entry>();
IncludeReference
Add a constraint that requires a particular reference key details.
Name | Type | Description |
---|---|---|
referenceField | String | Key that to be constrained. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeReference("reference_uid_1").Fetch<Entry>();
IncludeOnlyReference
Specifies an array of except keys that would be excluded in the response.
Name | Type | Description |
---|---|---|
keys | string[] | Array of the only reference keys to be included in response. |
referenceKey | string | Key who has reference to some other class object. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeOnlyReference(new String[]{"name", "description"},"referenceUid").Fetch<Entry>();
IncludeExceptReference
Specifies an array of except keys that would be excluded in the response.
Name | Type | Description |
---|---|---|
keys | string[] | Array of the except reference keys to be excluded in response. |
referenceKey | string | Key who has reference to some other class object. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeExceptReference(new String[]{"name", "description"},"referenceUid").Fetch<Entry>();
IncludeEmbeddedItems
Include Embedded Objects (Entries and Assets) along with entry/entries details.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeEmbeddedItems().Fetch<Entry>();
IncludeFallback
Include fallback locale publish content, if specified locale content is not publish.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeFallback().Fetch<Entry>();
IncludeMetadata
The includeMetadata method will add the meta information to the response.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeMetadata().Fetch<Entry>();
IncludeBranch
Include branch for publish content.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeBranch().Fetch<Entry>();
Only
Specifies an array of 'only' keys in BASE object that would be 'included' in the response.
Name | Type | Description |
---|---|---|
fieldUid | System.String[] | Array of the only reference keys to be included in response. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); AssetLibrary assetLibrary = await stack.Entry().Only(new String[]{"name", "description"}).Fetch();
Except
Specifies list of field uids that would be excluded from the response.
Name | Type | Description |
---|---|---|
fieldUids | System.String[] | Field uid which get excluded from the response. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); AssetLibrary assetLibrary = await stack.Entry("entry_uid").Except(new String[]{"name", "description"}).Fetch();
ToJson
Get key/value pairs in json of current instance.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack.ContentType("content_Type_uid").Entry("entry_uid").IncludeReferenceContentTypeUID().Fetch<Entry>(); JObject jObject = entry.ToJson();
Fetch
Fetches the latest version of the entries from Contentstack.io content stack
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Product product = await stack.ContentType("content_Type_uid").Entry("entry_uid").Fetch<Product>();
Variants
The variants method retrieves details of a specific entry variant or an array of entry variants based on the applied query.
When Personalize creates a variant in the CMS, it assigns a "Variant Alias" to identify that specific variant. When fetching entry variants using the Delivery API, you can pass variant aliases in place of variant UIDs in the x-cs-variant-uid header.
Name | Type | Description |
---|---|---|
variant_headers (required) | string | string[] | List of variants |
Example:
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Entry entry = await stack .ContentType("content_Type_uid") .Entry("entry_uid") .Variant(new String[]{"variant_uid1/variant_alias1", "variant_uid2/variant_alias2"}) .Fetch<Entry>();
Global Fields
A Global field is a reusable field or group of fields that you define once and reuse across any content type in your stack. This helps you avoid recreating the same set of fields multiple times, saving time and effort.
IncludeGlobalFieldSchema
The IncludeGlobalFieldSchema method fetches the complete schema of a specified Global Field, including all nested fields and configurations
Example:
using Contentstack.Core; using Contentstack.Core.Configuration; var options = new ContentstackOptions() { ApiKey = "your_api_key", DeliveryToken = "your_delivery_token", Environment = "your_environment" }; ContentstackClient stack = new ContentstackClient(options); GlobalField globalField = stack.GlobalField("global_field_uid") .IncludeGlobalFieldSchema() .Fetch();
SetHeader
The SetHeader method sets custom headers when fetching a Global Field, allowing you to pass additional information such as authentication tokens, localization settings, or custom metadata with the API request.
Example:
using Contentstack.Core; using Contentstack.Core.Configuration; var options = new ContentstackOptions() { ApiKey = "your_api_key", DeliveryToken = "your_delivery_token", Environment = "your_environment" }; ContentstackClient stack = new ContentstackClient(options); GlobalField globalField = stack.GlobalField("global_field_uid"); globalField.SetHeader("custom_key", "custom_value"); var result = await globalField.Fetch();
fetch
The fetch method retrieves the details of the specified global field.
Example:
using Contentstack.Core; using Contentstack.Core.Configuration; var options = new ContentstackOptions() { ApiKey = "your_api_key", DeliveryToken = "your_delivery_token", Environment = "your_environment" }; ContentstackClient stack = new ContentstackClient(options); GlobalField globalField = stack.GlobalField("global_field_uid"); var result = await globalField.Fetch(); Console.WriteLine(result.ToString());
Global Field Query
A Global field is a reusable field or group of fields that you define once and reuse across any content type in your stack. This helps you avoid recreating the same set of fields multiple times, saving time and effort.
find
The find method retrieves all Global Fields from your stack using a Global Field query, providing access to the complete collection of Global Field data.
Example:
using Contentstack.Core; using Contentstack.Core.Configuration; var options = new ContentstackOptions() { ApiKey = "your_api_key", DeliveryToken = "your_delivery_token", Environment = "your_environment" }; ContentstackClient stack = new ContentstackClient(options); GlobalFieldQuery query = stack.GlobalFieldQuery(); var result = await query.Find(); Console.WriteLine(result.ToString());
IncludeGlobalFieldSchema
The IncludeGlobalFieldSchema method includes the complete schema for each Global Field when fetching all Global Fields using a query.
Example:
using Contentstack.Core; using Contentstack.Core.Configuration; var options = new ContentstackOptions() { ApiKey = "your_api_key", DeliveryToken = "your_delivery_token", Environment = "your_environment" }; ContentstackClient stack = new ContentstackClient(options); var result = await stack.GlobalFieldQuery() .IncludeGlobalFieldSchema() .Find();
Query
A class that defines a query that is used to query for Entry instance.
When Personalize creates a variant in the CMS, it assigns a "Variant Alias" to identify that specific variant. When fetching entry variants using the Delivery API, you can pass variant aliases in place of variant UIDs in thex-cs-variant-uidheader.
AddQuery
Add a custom query against specified key.
Name | Type | Description |
---|---|---|
key | string | field uid. |
value | string | field value |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().AddQuery("key", "value").Find<Entry>();
IncludeCount
Retrieve count and data of objects in result.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().IncludeCount().Find<Entry>();
IncludeBranch
Include branch for publish content.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().IncludeBranch().Find<Entry>();
IncludeFallback
Include fallback locale publish content, if specified locale content is not publish.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_Type_uid").Query().IncludeFallback().Find<Entry>();
IncludeMetadata
The includeMetadata method will add the meta information to the response.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_Type_uid").Query().IncludeMetadata().Find<Entry>();
IncludeEmbeddedItems
Include Embedded Objects (Entries and Assets) along with entry/entries details.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_Type_uid").Query().IncludeEmbeddedItems().Find<Entry>();
IncludeOnlyReference
Specifies an array of except keys that would be excluded in the response.
Name | Type | Description |
---|---|---|
keys | string[] | Array of the only reference keys to be included in response. |
referenceKey | string | Key who has reference to some other class object. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_Type_uid").Query().IncludeOnlyReference(new String[]{"name", "description"},"referenceUid").Find<Entry>();
IncludeExceptReference
Specifies an array of except keys that would be excluded in the response.
Name | Type | Description |
---|---|---|
keys | string[] | Array of the except reference keys to be excluded in response. |
referenceKey | string | Key who has reference to some other class object. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_Type_uid").Query().IncludeExceptReference(new String[]{"name", "description"},"referenceUid").Find<Entry>();
IncludeReference
Add a constraint that requires a particular reference key details.
Name | Type | Description |
---|---|---|
referenceField | String | Key that to be constrained. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_Type_uid").Query().IncludeReference("reference_uid_1").Find<Entry>();
IncludeReferenceContentTypeUID
This method also includes the content type UIDs of the referenced entries returned in the response.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().IncludeReferenceContentTypeUID().Find<Entry>();
IncludeReference
Add a constraint that requires a particular reference key details.
Name | Type | Description |
---|---|---|
referenceFields | string[] | Array key that to be constrained. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().IncludeReference(new String[]{"reference_uid_1", "reference_uid_2"}).Find<Entry>();
ReferenceIn
Retrieve entries based reference in query
Name | Type | Description |
---|---|---|
key | string | They key to constraint on |
query | Query | Query object |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentType contentTypeObj = stack.ContentType("contentType_id"); Query query = contentTypeObj.Query(); query.Where("email_address","[email protected]"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().ReferenceIn("user", query).Find<Entry>();
ReferenceNotIn
Retrieve entries based reference not in query
Name | Type | Description |
---|---|---|
key | string | The key to constraint on |
query | Query | Query object |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentType contentTypeObj = stack.ContentType("contentType_id"); Query query = contentTypeObj.Query(); query.Where("email_address","[email protected]"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().ReferenceNotIn("user", query).Find<Entry>();
Regex
Name | Type | Description |
---|---|---|
key | string | The key to be constrained. |
regex | string | The regular expression pattern to match. |
modifiers | string | Any of the following supported Regular expression modifiers.
|
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_type_uid").Query().Regex("name", "^browser").Find<Entry>();
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_type_uid").Query().Regex("name", "^browser", "i").Find<Entry>();
RemoveQuery
Name | Type | Description |
---|---|---|
key | string | Query name to remove. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_type_uid").Query().RemoveQuery("query_key").Find<Entry>();
SetCachePolicy
Name | Type | Description |
---|---|---|
cachePolicy | CachePolicy | CachePolicy instance |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_type_uid").Query().SetCachePolicy(CachePolicy.NetworkElseCache).Find<Entry>();
SetLocale
Name | Type | Description |
---|---|---|
Locale | string | Locale to fetch entry |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_type_uid").Query().SetLocale("en-us").Find<Entry>();
SetHeader
Name | Type | Description |
---|---|---|
key | string | header name. |
value | string | header value against given header name. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_type_uid").Query().SetHeader("custom_key", "custom_value").Find<Entry>();
RemoveHeader
Name | Type | Description |
---|---|---|
key | string | key to be remove from header |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> entry = await stack.ContentType("content_type_uid").Query().RemoveHeader("header_to_remove").Find<Entry>();
WhereTags
Include tags with which to search entries.
Name | Type | Description |
---|---|---|
tags (required) | string[] | Array of tags you want to match in the entries |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().WhereTags(new String[] {"tag_1", tag_2}).Find<Entry>();
Skip
The number of objects to skip before returning any.
Name | Type | Description |
---|---|---|
number | string | No of objects to skip. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Skip(20).Find<Entry>();
Limit
A limit on the number of objects to return.
Name | Type | Description |
---|---|---|
number | string | No of objects to limit. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Limit(20).Find<Entry>();
Ascending
Sort the results in ascending order with the given key.
Name | Type | Description |
---|---|---|
fieldUid | string | The key to order by. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Ascending("name").Find<Entry>();
Descending
Sort the results in descending order with the given key.
Name | Type | Description |
---|---|---|
fieldUid | string | The key to order by. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Descending("name").Find<Entry>();
And
Combines all the queries together using AND operator
Name | Type | Description |
---|---|---|
queryObjects | List<Query> | List of Query instances on which AND query executes. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentType contentTypeObj = stack.ContentType("contentType_id"); Query query1 = contentTypeObj.Query(); query1.Where("username","content"); Query query2 = contentTypeObj.Query(); query2.Where("email_address","[email protected]"); List<Query> queryList = new List<Query>(); queryList.Add(query1); queryList.Add(query2); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().And(queryList).Find<Entry>();
Or
Add a constraint to fetch all entries which satisfy any queries.
Name | Type | Description |
---|---|---|
queryObjects | List<Query> | List of Query instances on which OR query executes. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentType contentTypeObj = stack.ContentType("contentType_id"); Query query1 = contentTypeObj.Query(); query1.Where("username","content"); Query query2 = contentTypeObj.Query(); query2.Where("email_address","[email protected]"); List<Query> queryList = new List<Query>(); queryList.Add(query1); queryList.Add(query2); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Or(queryList).Find<Entry>();
Except
Specifies list of field uids that would be excluded from the response.
Name | Type | Description |
---|---|---|
fieldUid | string[] | field uid which get excluded from the response. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Except(new String[] {"name", description }).Find<Entry>();
Only
Specifies an array of 'only' keys in BASE object that would be 'included' in the response.
Name | Type | Description |
---|---|---|
fieldUid | string[] | Array of the 'only' keys to be included in response. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Only(new String[] {"name", description }).Find<Entry>();
Exists
Add a constraint that requires, a specified key exists in response.
Name | Type | Description |
---|---|---|
key | string | The key to be constrained. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Exist("title").Find<Entry>();
NotExists
Add a constraint that requires, a specified key does not exists in response.
Name | Type | Description |
---|---|---|
key | string | The key to be constrained. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().NotExist("title").Find<Entry>();
NotEqualTo
Add a constraint to the query that requires a particular key's entry to be not equal to the provided value.
Name | Type | Description |
---|---|---|
key | string | the key to be constrained. |
value | Object | The object that must not be equaled. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().NotEqualTo("title", "Demo").Find<Entry>();
Where
Add a constraint to the query that requires a particular key entry's value not be contained in the provided array.
Name | Type | Description |
---|---|---|
key | string | the key to be constrained. |
value | Object | Field value which get included from the response. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Where("title", "Demo").Find<Entry>();
NotContainedIn
Add a constraint to the query that requires a particular key entry's value not be contained in the provided array.
Name | Type | Description |
---|---|---|
key | string | the key to be constrained. |
value | Object[] | The list of values the key object should not be. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().NotContainedIn("title", new Object[]{ "Demo", "Welcome"}).Find<Entry>();
ContainedIn
Add a constraint to the query that requires a particular key's entry to be contained in the provided array.
Name | Type | Description |
---|---|---|
key | string | the key to be constrained. |
value | Object[] | The possible values for the key's object. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().ContainedIn("title", new Object[]{ "Demo", "Welcome"}).Find<Entry>();
LessThanOrEqualTo
Add a constraint to the query that requires a particular key entry to be less than or equal to the provided value.
Name | Type | Description |
---|---|---|
key | string | the key to be constrained. |
value | Object | The value that provides an upper bound or equal. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().LessThanOrEqualTo("age", 20).Find<Entry>();
LessThan
Add a constraint to the query that requires a particular key entry to be less than the provided value.
Name | Type | Description |
---|---|---|
key | string | the key to be constrained. |
value | Object | The value that provides an upper bound. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().LessThan("age", 20).Find<Entry>();
GreaterThanOrEqualTo
Add a constraint to the query that requires a particular key entry to be greater than or equal to the provided value.
Name | Type | Description |
---|---|---|
key | string | the key to be constrained. |
value | Object | The value that provides a lower bound or equal. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().GreaterThanOrEqualTo("age", 20).Find<Entry>();
GreaterThan
Add a constraint to the query that requires a particular key entry to be greater than the provided value.
Name | Type | Description |
---|---|---|
key | string | the key to be constrained. |
value | Object | The value that provides an lower bound. |
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().GreaterThan("age", 20).Find<Entry>();
Find
Execute a Query and Caches its result (Optional)
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Find<Entry>();
FindOne
Execute a Query and Caches its result (Optional)
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().FindOne<Entry>();
Count
Retrieve only count of entries in result.
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack.ContentType("content_Type_uid").Query().Count();
Variants
The variants method retrieves details of a specific entry variant or an array of entry variants based on the applied query.
When Personalize creates a variant in the CMS, it assigns a "Variant Alias" to identify that specific variant. When fetching entry variants using the Delivery API, you can pass variant aliases in place of variant UIDs in the x-cs-variant-uid header.
Name | Type | Description |
---|---|---|
variant_headers (required) | string | string[] | List of variants |
Example:
using Contentstack.Core; using Contentstack.Core.Models; ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); ContentstackCollection<Entry> collection = await stack .ContentType("content_Type_uid") .Query() .Variant(new String[]{"variant_uid1/variant_alias1", "variant_uid2/variant_alias2"}) .Find<Entry>();
Taxonomy
Taxonomy helps you categorize pieces of content within your stack to facilitate easy navigation and retrieval of information.
Note: All methods in the Query section are applicable for taxonomy-based filtering as well.
EqualAndBelow
The EqualAndBelow method retrieves all entries for a specific taxonomy that match a specific term and its descendant terms, requiring only the target term.
Note: This query is applicable for the stack.Taxonomies() and stack.ContentType('uid').Query() methods.
Name | Type | Description |
---|---|---|
key (required) | string | Enter the UID of the taxonomy |
value (required) | string | Enter the UID of the term |
levels | int | Enter the level |
Example:
ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Query csQuery = stack.Taxonomies(); csQuery.EqualAndBelow("taxonomies.taxonomy_uid", "term_uid", 3); csQuery.Find<Product>().ContinueWith((queryResult) => { //Your callback code. });
Below
The Below method retrieves all entries for a specific taxonomy that match all of their descendant terms by specifying only the target term and a specific level.
Note: If you don't specify the level, the default behavior is to retrieve terms up to level 10.
Name | Type | Description |
---|---|---|
key (required) | string | Enter the UID of the taxonomy |
value (required) | string | Enter the UID of the term |
levels | int | Enter the level |
Example:
ContentstackClient stack = new ContentstackClinet("api_key", "delivery_token", "environment"); Query csQuery = stack.Taxonomies(); csQuery.Below("taxonomies.taxonomy_uid", "term_uid", 3); csQuery.Find<Product>().ContinueWith((queryResult) => { //Your callback code. });
EqualAndAbove
The EqualAndAbove method retrieves all entries for a specific taxonomy that match a specific term and all its ancestor terms, requiring only the target term and a specified level.
Note: If you don't specify the level, the default behavior is to retrieve terms up to level 10.
Name | Type | Description |
---|---|---|
key (required) | string | Enter the UID of the taxonomy |
value (required) | string | Enter the UID of the term |
levels | int | Enter the level |
Example:
ContentstackClient stack = new ContentstackClient("api_key", "delivery_token", "environment"); Query csQuery = stack.Taxonomies(); csQuery.EqualAndAbove("taxonomies.taxonomy_uid", "term_uid", 3); csQuery.Find<Product>().ContinueWith((queryResult) => { //Your callback code. });
Above
The Above method retrieves all entries for a specific taxonomy that match only the parent terms of a specified target term, excluding the target term itself and a specified level.
Note: If you don't specify the level, the default behavior is to retrieve terms up to level 10.
Name | Type | Description |
---|---|---|
key (required) | string | Enter the UID of the taxonomy |
value (required) | string | Enter the UID of the term |
levels | int | Enter the level |
Example:
ContentstackClient stack = new ContentstackClinet("api_key", "delivery_token", "environment"); Query csQuery = stack.Taxonomies(); csQuery.Above("taxonomies.taxonomy_uid", "term_uid", 3); csQuery.Find<Product>().ContinueWith((queryResult) => { //Your callback code. });