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

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowVoice API - iOS

# NowVoice API - iOS {#ariaid-title1}

Release version: Australia  
Updated July 14, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read  
NowVoice is a top-level global API for embedding voice agent sessions in iOS applications.

Use NowVoice to create a [NowVoiceService](https://servicenow-prod.fluidtopics.net/s_OvVdDJDVew6swvY7zHBA#NowVoiceServiceiOSAPI "The NowVoiceService class manages voice agent sessions for a single ServiceNow instance.") for a given ServiceNow instance, then use
that service to start and manage voice agent sessions.

For more information about configuring NowVoice, including prerequisites and call order, see [Embed an AI voice agent with NowVoice](https://servicenow-prod.fluidtopics.net/aY0hRHECC4AXthItta1u9w#mobsdk-ios-nowvoice "Use the NowVoice module to embed a real-time AI voice agent session into your iOS application.").

## NowVoice - makeVoiceService(instanceUrl: URL) async throws {#ariaid-title2}

Creates an instance of NowVoiceService for the specified ServiceNow instance.
Note:  
Call this function from an async context, after calling [NowSDK.configure(with:)](https://servicenow-prod.fluidtopics.net/FghfNKN7lTh4ix~ZDUFv7Q#NSDK-configure_O "Configures NowSDK for use. You must call this function before calling any of the feature services within the Mobile SDK."). This function fetches instance settings over the network; call it when launching a voice session, not at app startup.

This function validates that voice is enabled on the ServiceNow instance and retrieves available endpoint configurations. It throws a `NowServiceError` if setup fails.  
{#NVoice-makeVoiceService_S__table_hbp_hxg_yjc__entry__2}

| Case | Description |
|-|-|
| `.sdkNotConfigured` | NowSDK.configure(with:) was not called before creating the service. |
| `.serviceConfigurationInvalid` | The provided instanceUrl is malformed or can't be used to build a service configuration. |
| `.serviceSettingsRetrievalFailed(SettingsError)` | A network or authentication error occurred while fetching instance settings. |
| `.serviceSettingsNotFound` | The instance does not have `sdk.voice` settings configured. |
| `.serviceSettingsInvalid` | The `sdk.voice.enabled` key is missing from the instance settings. |
| `.serviceDisabled` | Voice is turned off on the instance (`sdk.voice.enabled` is `false`). |
[Table 1. NowServiceError]

{#NVoice-makeVoiceService_S__table_hbp_hxg_yjc}
{#NVoice-makeVoiceService_S__table_pft_qzv_nvo1__entry__3}

| Name | Type | Description |
|-|-|-|
| instanceUrl | URL | URL of the ServiceNow instance, such as `https://instancename.service-now.com`. |
[Table 2. Parameters]

{#NVoice-makeVoiceService_S__table_pft_qzv_nvo1} {#NVoice-makeVoiceService_S__table_qft_qzv_nvo1__entry__2}

| Type | Description |
|-|-|
| [NowVoiceService](https://servicenow-prod.fluidtopics.net/s_OvVdDJDVew6swvY7zHBA#NowVoiceServiceiOSAPI "The NowVoiceService class manages voice agent sessions for a single ServiceNow instance.") | An initialized NowVoiceService ready to start voice sessions. |
[Table 3. Returns]

{#NVoice-makeVoiceService_S__table_qft_qzv_nvo1}  
The following code example shows how to create an instance of NowVoiceService.

    import NowVoice

    let instanceUrl = URL(string: "https://your-instance.service-now.com")!

    do {
        let voiceService = try await NowVoice.makeVoiceService(instanceUrl: instanceUrl)
    } catch {
        // Handle NowServiceError
        print("Failed to create voice service: \(error)")
    }


