---
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) 2 minutes to read

The NowSDK is the top-level entity of the Mobile SDK class
framework.
It contains numerous classes, structures, protocols, type aliases, 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.

To use any of the feature services provided by the Mobile SDK, you must 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's 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-ios-nowsdk-arch__ul_e2r_hm5_mqb}  
NowSDK provides the following feature services and associated APIs:

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

  * Primary APIs:
    * [NowAPIService](https://servicenow-prod.fluidtopics.net/Gr1Q4dzJQJ291KR8~xiXQg#NowAPIServiceiOSAPI "The NowAPIService class provides functions that enable you to perform requests to 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/MsIRssV78dlFdkKVybmzNg#NowAttachmentServiceiOSAPI "The NowAttachmentService class provides functions that enable you to upload and query attachments that are associated with records within a table on a ServiceNow instance."): This API provides functionality to upload and query file attachments on your ServiceNow instance within your iOS application.
    * [NowGraphQLService](https://servicenow-prod.fluidtopics.net/AEmOcE5BY9GRAKMwbs6uoA#NowGraphQLServiceiOSAPI "The NowGraphQLService class provides functions that enable you to make requests using GraphQL queries against data on your ServiceNow instance through its GraphQL REST 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/Mg9nOO4u3WPRvIqz4t9SUw#NowTableServiceiOSAPI "The NowTableService class provides functions that enable you to perform create, read, update, and delete operations on records of existing ServiceNow tables."): This API provides functionality that enables you to perform create, read, update, and delete (CRUD) operations on existing tables in your ServiceNow instance that are serviced through the ServiceNow REST Table API.
    {#mobsdk-ios-nowsdk-arch__ul_dbt_r45_mqb}
* NowAnalyticsEnables you to gather and track usage analytics within your mobile
  applications.

  * Primary APIs:
    * [NowAnalyticsService](https://servicenow-prod.fluidtopics.net/BbHYbABSv6yhida7B73Hgw#NowAnalyticsServiceiOSProtocol "The NowAnalyticsService protocol provides functions that enable you to configure analytics properties, user settings, and events for managing the 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.
* NowChatEnables you to embed a native [Virtual Agent](https://www.servicenow.com/docs/access?context=virtual-agent-landing-page&version=xanadu&pubname=xanadu-conversational-interfaces&ft:locale=en-US) chat window in your applications. This service includes UI/UX features.

  * Primary APIs:
    * [NowChatService](https://servicenow-prod.fluidtopics.net/V5g0WnyO4pFrtA3ShZvYew#NowChatServiceiOSAPI "The NowChatService class provides Virtual and Live Agent chat capabilities."): This API provides Virtual Agent and Live Agent chat capabilities to your iOS applications. Leverage the full-service chat capabilities provided by the ServiceNow platform by simply implementing NowChatService within your application.
    {#mobsdk-ios-nowsdk-arch__ul_gbm_sv5_mqb}
  {#mobsdk-ios-nowsdk-arch__ul_m2g_qv5_mqb}
* NowPushEnables you to send unsolicited messages to your applications that leverage
  the NowChat/Virtual Agent functionality.

  * Primary APIs:
    * [NowPushPayload](https://servicenow-prod.fluidtopics.net/uVZE4ECVmu9e9nig0nB2UQ#NowPushPayloadiOSProtocol "NowPushPayload is a generic protocol you can use to define a push notification protocol within the NowSDK framework."): This is a generic protocol that you can use to define a push notification protocol within the `NowSDK` framework.
    * [NowPushService](https://servicenow-prod.fluidtopics.net/bhsSlMGEzTRYOyP_xlw7JA#NowPushServiceiOSAPI "The NowPushService class provides functions that enable interaction with the Push Notification service."): This API provides functions that enable interaction with the Push Notification service.
    {#mobsdk-ios-nowsdk-arch__ul_ubc_zxt_vrb}
  {#mobsdk-ios-nowsdk-arch__ul_wqy_xxt_vrb}
* NowWebEnables you to load web pages hosted on your ServiceNow instance in a native web view, with support for Cabrillo. It automatically handles user authentication and session management instead of forcing users to log in to the instance via a login
  web page.

  * Primary APIs:
    * [NowWebService](https://servicenow-prod.fluidtopics.net/xTRuNcuq8HezUwGuCPkEpA#NowWebServiceiOSAPI "The NowWebService class provides functions that enable the browsing of web pages on a ServiceNow instance."): This API provides functionality that enables the browsing of web pages on your ServiceNow instance.
    {#mobsdk-ios-nowsdk-arch__ul_rnh_gw5_mqb}
  {#mobsdk-ios-nowsdk-arch__ul_ws1_fw5_mqb}

