---
sourceDocument: Xanadu API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowSDK architecture

# NowSDK architecture {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read

The NowSDK is the top-level entity of the Mobile SDK class
framework.
It contains numerous classes, interfaces, and functions that enable you to leverage the
significant capabilities provided by the Mobile SDK and your ServiceNow instance. This document focuses on describing the primary
feature services exposed in the Mobile SDK that enable you to interact with
your ServiceNow instance.

In order to use any of the feature services provided by the Mobile SDK, you
need to integrate the NowSDK library into your code. You must call the core library to
configure and initialize the SDK before using any SDK functionality.

NowSDK provides the following capabilities:

* SDK initialization and settings retrieval and configuration.
* Seamless authorization and user session handling.
* Logging interface. The NowSDK provides logging services to all feature services. By default, log messages are written to system logs using platform-specific functionality. You can control the logging threshold through a parameter that is part of the call to configure the SDK. There is also an option to suppress all log messages generated by the SDK and its feature services (`log level = none`). If you already have your own logging solution in place, the Mobile SDK allows you to use it.
* Build and release infrastructure.

{#mobsdk-and-nowsdk-arch__ul_e2r_hm5_mqb}  
NowSDK provides the following feature services and associated APIs:

* NowDataSDKEnables third party applications to access the public REST APIs exposed
  by your ServiceNow instance. Development is streamlined because
  the NowDataSDK utilizes the authentication and session handling features provided by
  the NowSDK.

  * Primary APIs:
    * [NowAPIService](https://servicenow-prod.fluidtopics.net/Ruy5EdQ~h~QM1b7RygbeiA#NowAPIServiceAndroidInterface "The NowAPIService interface provides the ability to perform requests on a specified ServiceNow REST API."): This API provides functionality that enables you to interact with the publicly exposed [REST APIs](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.") on your ServiceNow instance.
    * [NowAttachmentService](https://servicenow-prod.fluidtopics.net/MzxIZLpkAaolAxPzSiJS9w#NowAttachServiceAndroidInterface "The NowAttachmentService interface provides functions that enable the manipulation of file attachments and their associated metadata."): This API provides functionality to upload and query file attachments on your ServiceNow instance within your Android application.
    * [NowGraphQLService](https://servicenow-prod.fluidtopics.net/6wCA26T16PvjOoCD20P6Ww#NowGQLServiceAndroidInterface "The NowGraphQLService interface provides functions that allow you to make GraphQL requests to your ServiceNow through its GraphQL API."): This API provides functionality that enables you to use GraphQL queries to obtain data from tables within your ServiceNow instance using the ServiceNow REST GraphQL API.
    * [NowTableService](https://servicenow-prod.fluidtopics.net/~PAdtMrfZ_OvXaZGqbX2lA#NowTableServiceAndroidInterface "The NowTableService interface provides functions that enable you to create, read, delete, and update records within a table on a ServiceNow instance."): This API provides functionality that enables you to perform create, read, update, and delete (CRUD) operations on existing tables in your ServiceNow instance that get serviced through the ServiceNow REST Table API.
    {#mobsdk-and-nowsdk-arch__ul_dbt_r45_mqb}
* NowAnalyticsEnables you to gather and track usage analytics within your mobile applications.

  * Primary APIs:
    * [NowAnalytics](https://servicenow-prod.fluidtopics.net/tcAuGxWxsbkR0Efsuiuyuw#NowAnalyticsAndroidInterface "The NowAnalyticsSDK interface provides functions that enable you to configure analytics properties, user settings, and events for managing a collection of user analytics data."): This API provides functionality to gather user analytics data and store it within the ServiceNow platform for later analysis and tracking.
    {#mobsdk-and-nowsdk-arch__ul_uff_fwx_pqb}
* NowChatEnables you to embed a native Virtual Agent chat window in your applications. This service includes UI/UX features.

  * Primary APIs:
    * [NowChatService](https://servicenow-prod.fluidtopics.net/Q3l5E6Rkr2057VkSlu6ktQ#NowChatServiceAndroidAPI "The NowChatService class provides functions that enable you to launch the NowChat activity and set error configurations."): This API provides Virtual Agent and Live Agent chat capabilities to your Android applications. Leverage the full service chat capabilities provided by the ServiceNow platform by simply implementing NowChatService within your application.
* NowPushEnables you to send unsolicited messages to your applications that leverage
  the NowChat/Virtual Agent functionality.

  * Primary APIs:
    * [NowPushSDK](https://servicenow-prod.fluidtopics.net/tnhb3eAsAdQea~2Lyk0hSg#NowPushSDKAndroidAPI "The NowPushSDK class provides the function necessary to create a NowPushService that enables the sending of unsolicited (push) notifications to Android devices."): This API provides the function necessary to create a `NowPushService` that enables the sending of unsolicited (push) notifications to Android devices.
    * [NowPushService](https://servicenow-prod.fluidtopics.net/aWKEcGak6TilR6DL3sczCw#NowPushServiceAndroidAPI "The NowPushService class provides functions that enable interaction with the Push Notification service."): This API provides functions that enable interaction with the Push Service.
  {#mobsdk-and-nowsdk-arch__ul_wqy_xxt_vrb}
* NowWebEnables you to load web pages hosted on your ServiceNow instance in a native web view or Cabrillo. It automatically handles user authentication and session management instead of forcing users to log into the instance via a login web
  page.

  When the webview is requested to load a web page hosted on a ServiceNow instance, it creates an HTTP request with the appropriate bearer header containing the OAuth access token provided by the NowSDK. When the instance receives this request, it starts a new user
  session and returns cookies related to that session. As the user interacts with the web pages in the webview, the instance uses the cookies to validate that the session is still valid. At this point, the bearer header is no
  longer relevant, only the cookies are used for session validation. The web session expires if the user stops interacting with the website for longer than the timeout period. After the session expires, if the user tries to
  interact with the web page, they are automatically redirected to the login page. The NowWebViewController detects the redirection and attempts to start a new web session by requesting a refreshed access token from the NowSDK
  and using the token to create a HTTP request (with bearer header) for the last known loaded page.
  * Primary APIs:[NowWebSDK](https://servicenow-prod.fluidtopics.net/e7LHLVvwbVwapep1o8RL5A#NowWebSDKAndroidAPI "The NowWebSDK class provides a single function that enables you to load web pages hosted on your ServiceNow instance in a native web view and Cabrillo. It automatically handles user authentication and session management instead of forcing users to log into the instance through a login web page."): This API provides functionality to create a NowWeb service object that enables web pages from your ServiceNow instance to be displayed in your Android application.

{#mobsdk-and-nowsdk-arch__ul_rff_fwx_pqb}

