---
title: "Context"
slug: "context"
abstract: "Setting geo-location for requests using Sitecore Search JavaScript SDK for React."
---
# Context

In Sitecore Search, you can get personalized search results that depend on both the page being viewed and the visitor. You can send these values in a `Context` object.

> [!important]
> The JS SDK is built on top of the JS Data package. The context object and its methods available in the JS Data package are also available in the JS SDK.
>
> For documentation on the [Context](https://doc.sitecore.com/search/en/developers/search-developer-guide/en/the-context-interface.html) object, refer to [Search JS Data package](https://doc.sitecore.com/search/en/developers/search-developer-guide/integrating-using-search-data-package.html).

| Name | Type | Description |
| --- | --- | --- |
| `geo` | ContextGeo | Contains information about the visitor's geo location. |
| `ids` | Array<string> | List of ids. |
| `locale` | ContextLocale | Contains information about the country and language the page is being viewed in. |
| `page` | ContextPage | Contains information about the page where the request was made. |
| `time` | ContextTime | Contains information about time of request. |
| `user` | ContextUser | Contains information about the visitor. Required for personalization and accurate analytics. |
| `utm_campaign` | Object | Contains UTM campaign parameters. |

> [!note]
> Unless indicated otherwise, all values are optional.

## ISearchRequest related methods

The following code block lists the various methods related to context and accessible through the `Request` object. After the installation of the JS Data package into your project, these methods and their documentation are available in your IDE.

```

/** context */
getContext(): Context;
setContext(value: Context): ISearchRequest;
resetContext(): ISearchRequest;
updateContext(value: Context): ISearchRequest;

/** context.geo */
getContextGeo(): ContextGeo;
setContextGeo(value: ContextGeo): ISearchRequest;
resetContextGeo(): ISearchRequest;
updateContextGeo(value: ContextGeo): ISearchRequest;

/** context.geo.ip */
getContextGeoIp(): string;
setContextGeoIp(value: string): ISearchRequest;
resetContextGeoIp(): ISearchRequest;

/** context.geo.location */
getContextGeoLocation(): ContextGeoLocation;
setContextGeoLocation(value: ContextGeoLocation): ISearchRequest;
resetContextGeoLocation(): ISearchRequest;
updateContextGeoLocation(value: ContextGeoLocation): ISearchRequest;

/** context.geo.location.lat */
getContextGeoLocationLat(): number;
setContextGeoLocationLat(value: number): ISearchRequest;
resetContextGeoLocationLat(): ISearchRequest;

/** context.geo.location.lon */
getContextGeoLocationLon(): number;
setContextGeoLocationLon(value: number): ISearchRequest;
resetContextGeoLocationLon(): ISearchRequest;

/** context.ids */
getContextIds(): MapModel<ContextEntityIds>;
setContextIds(value: MapModel<ContextEntityIds>): ISearchRequest;
resetContextIds(): ISearchRequest;

/** context.ids.__constructor__ */
getContextEntityIds(entity: Entity): Array<EntityId>;
setContextEntityIds(entity: Entity, value: Array<EntityId>): ISearchRequest;
resetContextEntityIds(entity: Entity): ISearchRequest;
addContextEntityId(entity: Entity, value: EntityId): ISearchRequest;
removeContextEntityId(entity: Entity, value: EntityId, filter?: (v: any) => boolean): ISearchRequest;

/** context.locale */
getContextLocale(): ContextLocale;
setContextLocale(value: ContextLocale): ISearchRequest;
resetContextLocale(): ISearchRequest;
updateContextLocale(value: ContextLocale): ISearchRequest;

/** context.locale.country */
getContextLocaleCountry(): string;
setContextLocaleCountry(value: string): ISearchRequest;
resetContextLocaleCountry(): ISearchRequest;

/** context.locale.language */
getContextLocaleLanguage(): string;
setContextLocaleLanguage(value: string): ISearchRequest;
resetContextLocaleLanguage(): ISearchRequest;

/** context.page */
getContextPage(): ContextPage;
setContextPage(value: ContextPage): ISearchRequest;
resetContextPage(): ISearchRequest;
updateContextPage(value: ContextPage): ISearchRequest;

/** context.page.custom */
getContextPageCustom(): ContextPageCustom;
setContextPageCustom(value: ContextPageCustom): ISearchRequest;
resetContextPageCustom(): ISearchRequest;

/** context.page.uri */
getContextPageUri(): string;
setContextPageUri(value: string): ISearchRequest;
resetContextPageUri(): ISearchRequest;

/** context.time */
getContextTime(): ContextTime;
setContextTime(value: ContextTime): ISearchRequest;
resetContextTime(): ISearchRequest;
updateContextTime(value: ContextTime): ISearchRequest;

/** context.time.epoch */
getContextTimeEpoch(): number;
setContextTimeEpoch(value: number): ISearchRequest;
resetContextTimeEpoch(): ISearchRequest;

/** context.user */
getContextUser(): ContextUser;
setContextUser(value: ContextUser): ISearchRequest;
resetContextUser(): ISearchRequest;
updateContextUser(value: ContextUser): ISearchRequest;

/** context.user.uuid */
getContextUserUuid(): string;
setContextUserUuid(value: string): ISearchRequest;
resetContextUserUuid(): ISearchRequest;

/** context.utm_source */
context.setUtmSource('utm source');

/** context.utm_medium */
context.setUtmMedium('utm medium');

/** context.utm_campaign */
context.setUtmCampaign('utm campaign');

/** context.utm_term */
context.setUtmTerm('utm term');

/** context.utm_content */
context.setUtmContent('utm content');
```