# NLPearl Documentation - [Welcome to NLPearl](https://developers.nlpearl.ai/pages/introduction.md): Build and deploy AI agents - voice agents that handle real phone conversations in 20+ languages, and text agents across SMS, WhatsApp, email, and chat - all by simply chatting with AI. - [Getting Started](https://developers.nlpearl.ai/pages/getting_started.md): Go from sign-up to your first live AI agent in minutes. - [PearlVibe](https://developers.nlpearl.ai/pages/pearl_vibe.md) - [Dialogue Node](https://developers.nlpearl.ai/pages/dialogue.md) - [Knowledge Base Node](https://developers.nlpearl.ai/pages/knowledge_base_node.md) - [Send Email Node](https://developers.nlpearl.ai/pages/email_action.md) - [API Node](https://developers.nlpearl.ai/pages/api_action.md) - [Send SMS Node](https://developers.nlpearl.ai/pages/sms_action.md) - [Transfer Call Node](https://developers.nlpearl.ai/pages/transfer_call.md) - [Recording Node](https://developers.nlpearl.ai/pages/recording.md) - [Hand-Off Node](https://developers.nlpearl.ai/pages/text/handoff_action.md) - [Variables](https://developers.nlpearl.ai/pages/variables.md) - [Webhooks](https://developers.nlpearl.ai/pages/webhooks.md): Understand the webhook payloads sent by NLPearl.AI for lead and call events in real time. - [IP Whitelisting](https://developers.nlpearl.ai/pages/ip_whitelist.md): The IP addresses NLPearl sends requests from, to allow through your firewall for webhooks, API nodes, and text channel events. - [Groups](https://developers.nlpearl.ai/pages/pearl_groups.md): Organize related Pearls into Groups so they can share the same contacts, interaction history, and optionally a common per-contact memory. - [Payouts](https://developers.nlpearl.ai/pages/payout.md): Earn real money by sharing your Pearls with the NLPearl community. - [Pearl Voice](https://developers.nlpearl.ai/pages/pearl_voice.md): Build AI voice agents that handle real, natural phone conversations - inbound and outbound - in 20+ languages. - [Phone Numbers Overview](https://developers.nlpearl.ai/pages/phone_overview.md): Learn why phone numbers are essential for activities on NLPearl.AI and the available options for purchasing and integrating them. - [NLPearl Phone Numbers](https://developers.nlpearl.ai/pages/nlpearl_phones.md): Learn how to purchase phone numbers directly from the NLPearl.AI platform. - [Twilio Integration](https://developers.nlpearl.ai/pages/twilio_integration.md): Connect your Twilio account and use your Twilio numbers with NLPearl.AI. - [Custom VoIP Integration](https://developers.nlpearl.ai/pages/custom_voip.md): Learn how to integrate your own VoIP service with NLPearl.AI. - [Voices and Languages](https://developers.nlpearl.ai/pages/languages.md): At NLPearl, we offer a wide variety of languages and accents to cater to a global audience. You can configure your Pearl to handle conversations in multiple languages, providing a seamless and personalized experience for your users. - [Pearl Settings](https://developers.nlpearl.ai/pages/agent_customization.md) - [Knowledge Base](https://developers.nlpearl.ai/pages/knowledge_base.md) - [Call Analytics](https://developers.nlpearl.ai/pages/pearl_analytics.md) - [Inbound Calls](https://developers.nlpearl.ai/pages/inbound.md): Configure your Pearl to handle incoming calls, from recording and transcripts to the holding line and webhooks. - [Outbound Calls](https://developers.nlpearl.ai/pages/outbound.md): Configure your Pearl to run outbound campaigns, from budget and recording to retries, scheduling, and webhooks. - [Post-Call](https://developers.nlpearl.ai/pages/postcall.md): All you need to know about Post-Call in NLPearl - [Call Analytics](https://developers.nlpearl.ai/pages/analytics.md): Track every campaign in real time: call outcomes, success and pickup rates, events, tags, sentiment, an activity heatmap, and costs — all from Pearl's automated conversations. - [Pearl Text](https://developers.nlpearl.ai/pages/text/pearl_text.md): Build AI text agents that message your customers across SMS, WhatsApp, email, and chat - on inbound and outbound conversations. - [Pearl Settings](https://developers.nlpearl.ai/pages/text/agent_customization.md) - [Knowledge Base](https://developers.nlpearl.ai/pages/text/knowledge_base.md) - [Chat Analytics](https://developers.nlpearl.ai/pages/text/pearl_analytics.md) - [Inbound](https://developers.nlpearl.ai/pages/text/inbound.md): Configure your text Pearl to handle incoming conversations, from message limits and inactivity handling to transcripts and webhooks. - [Outbound](https://developers.nlpearl.ai/pages/text/outbound.md): Configure your text Pearl to run outbound campaigns, from budget and scheduling to message limits, inactivity handling, and leads. - [Post-Chat](https://developers.nlpearl.ai/pages/text/postchat.md): All you need to know about Post-Chat in NLPearl - [SMS](https://developers.nlpearl.ai/pages/text/channels/sms.md): Connect your Pearl Text agent to SMS through Twilio to send and receive text messages with your customers. - [Telegram](https://developers.nlpearl.ai/pages/text/channels/telegram.md): Connect your Pearl Text agent to Telegram by creating a bot with BotFather and linking its token to the platform. - [WhatsApp](https://developers.nlpearl.ai/pages/text/channels/whatsapp.md): Connect your Pearl Text agent to WhatsApp Business through Meta Embedded Signup, keeping your number active in the WhatsApp Business app or dedicating it to NLPearl. - [Generic](https://developers.nlpearl.ai/pages/text/channels/generic.md): Connect your own messaging system to a Pearl Text agent using asynchronous inbound and outbound webhooks. - [Voice Studio](https://developers.nlpearl.ai/pages/voice_studio.md): Generate speech from text to hear how a voice sounds, browse the voice library, and clone a voice of your own from a short recording. - [Agents](https://developers.nlpearl.ai/pages/agents.md): Agents are your capacity to handle voice calls and text conversations in NLPearl. Learn how they work and how to manage them. - [Users & Workspaces](https://developers.nlpearl.ai/pages/users_workspaces.md): Invite users, assign roles, manage permissions, and switch between workspaces. - [Billing](https://developers.nlpearl.ai/pages/billing.md): Learn how to manage your billing settings, subscriptions, and invoices on the NLPearl.AI platform. - [Account Security Settings](https://developers.nlpearl.ai/pages/security.md): Manage session timeout, audit logs, two-factor authentication, and enterprise access controls. - [Phone Number Blacklist](https://developers.nlpearl.ai/pages/blacklist.md) - [Quick Start](https://developers.nlpearl.ai/api-reference/api_quickstart.md): Get started with the NLPearl.AI API by following these simple steps to set up your subscription, API secret key, and authentication. - [API Authorization](https://developers.nlpearl.ai/api-reference/authorization.md): Every API request carries an Authorization header. Choose the credential that matches who is making the calls. - [API Secret Key](https://developers.nlpearl.ai/api-reference/api_secret_key.md): Authenticate your own backend code with one key: your Account ID and a secret key, sent as a bearer token. - [OAuth 2.0](https://developers.nlpearl.ai/api-reference/oauth.md): Give an integration its own credential: a client ID and secret, only the scopes you grant it, and a secret you can rotate on your own. - [Pearl Flow Variables Guidance](https://developers.nlpearl.ai/api-reference/flow_variables.md) - [Building a Pearl Flow](https://developers.nlpearl.ai/api-reference/building_a_flow.md): How to build a Pearl as a graph of nodes and transitions through the API, for both Voice and Text. - [Python Wrapper](https://developers.nlpearl.ai/api-reference/python_wrapper.md): Learn how to use the NLPearl Python wrapper to interact with the NLPearl API effortlessly. - [Get Account](https://developers.nlpearl.ai/api-reference/v2/account/get-account.md): Retrieves account details - [Get Users](https://developers.nlpearl.ai/api-reference/v2/account/get-account-users.md): Retrieves the list of users for the account - [Get Audit Log](https://developers.nlpearl.ai/api-reference/v2/account/get-audit-log.md): Retrieves the audit log of the account. The date range cannot exceed 90 days and a call returns at most 100 entries. Returns a flat list by default; set IsPaginate to true to receive a paginated result with the total count. - [Get Voices](https://developers.nlpearl.ai/api-reference/v2/pearlSettings/get-voices.md): Retrieves the available voices grouped by language. - [Get Phone Numbers](https://developers.nlpearl.ai/api-reference/v2/pearlSettings/get-phones.md): Retrieves all active phone numbers of the account. - [Get Text Channels](https://developers.nlpearl.ai/api-reference/v2/pearlSettings/get-text-channels.md): Retrieves the text channels available on the account (for example SMS-capable numbers or WhatsApp accounts). Use a returned channelId as the TextChannelId of the inbound/outbound settings when creating or updating a text Pearl. - [Search Blacklist](https://developers.nlpearl.ai/api-reference/v2/account/search-blacklist.md): Retrieves the paginated blacklist phone numbers of the account. - [Add Phone Numbers To Blacklist](https://developers.nlpearl.ai/api-reference/v2/account/add-to-blacklist.md): Adds one or more phone numbers to the account blacklist. - [Remove Phone Numbers From Blacklist](https://developers.nlpearl.ai/api-reference/v2/account/remove-from-blacklist.md): Removes one or more phone numbers from the account blacklist. - [Get Call](https://developers.nlpearl.ai/api-reference/v2/call/get-call.md): Retrieves all the information about a call - [Get Call Recording](https://developers.nlpearl.ai/api-reference/v2/call/get-recording.md): Retrieves the audio recording for a specific call. If the client has public recordings enabled, the endpoint can be accessed anonymously; otherwise, a valid Authorization header matching the client is required. Recordings hosted on Twilio are returned as a permanent redirect, while recordings stored… - [Delete Calls](https://developers.nlpearl.ai/api-reference/v2/call/delete-call.md): Deletes one or more calls - [Get Pearls](https://developers.nlpearl.ai/api-reference/v2/pearl/get-pearls.md): Retrieves all Pearls - [Get Pearl](https://developers.nlpearl.ai/api-reference/v2/pearl/get-pearl.md): Retrieves a specific Pearl by its ID - [Set Activity State](https://developers.nlpearl.ai/api-reference/v2/pearl/set-activity-state.md): Run or Pause a specific Pearl. - [Get Calls](https://developers.nlpearl.ai/api-reference/v2/pearl/get-calls.md): Retrieves the calls within a specific date range of a pearl - [Get Calls Bulk](https://developers.nlpearl.ai/api-reference/v2/pearl/get-calls-bulk.md): Retrieves calls within a date range like Get Calls, but lets the caller opt into additional fields (transcript, collected info, summary, recording, sentiment, credits, ...) via the Fields property. Only the requested fields are returned. - [Get Ongoing Calls](https://developers.nlpearl.ai/api-reference/v2/pearl/get-ongoing-calls.md): Returns the number of active calls currently in progress for the specified Pearl. If the Pearl has inbound configurations, it also returns the number of calls currently in queue. - [Get Analytics](https://developers.nlpearl.ai/api-reference/v2/pearl/get-analytics.md): Retrieves analytics data for a specific Pearl within a given date range. - [Reset Customer Memory](https://developers.nlpearl.ai/api-reference/v2/pearl/reset-memory.md): Resets stored memory associated with a specific customer's phone number for a given Pearl. - [Get Pearl Settings](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/get-pearl-flow.md): Retrieves the Settings for the specified Pearl. The shape of the response depends on the Pearl: the Pearl section is a Simple Pearl configuration (opening sentence + flow script) or a Pearl configuration (node graph), and the Inbound/Outbound section carries the voice or the text settings according… - [Create Pearl](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-pearl-flow.md): Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice P… - [Create Voice Pearl](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-voice-pearl.md): Creates a new voice Pearl: the conversation is driven by a graph of nodes connected by transitions. The graph must contain one OpeningSentence node (or a PreCallAPI leading to one or two OpeningSentence nodes), one EndCall node, and every node must be reachable. Provide exactly one channel: inbound… - [Create Text Pearl](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-text-pearl.md): Creates a new text Pearl: the conversation is driven by a graph of nodes connected by transitions, and messages are exchanged over a text channel. Provide exactly one channel: inbound settings OR outbound settings, with the TextChannelId of the channel to use. To retrieve available text channels, us… - [Update Pearl](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow.md): Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead. - [Update Voice Pearl](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-voice-pearl.md): Updates a voice Pearl. Only the provided parts are updated: pearl replaces the whole conversation flow (send the complete node graph), inbound/outbound partially update the channel settings (only the fields present in the JSON are applied). Omitted parts are kept unchanged. The Pearl must be a voice… - [Update Text Pearl](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-text-pearl.md): Updates a text Pearl. Only the provided parts are updated: pearl replaces the whole conversation flow (send the complete node graph), inbound/outbound partially update the channel settings (only the fields present in the JSON are applied; when TextChannelId is omitted, the current channel is kept).… - [Update Inbound Settings](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-inbound.md): Updates the inbound settings for the specified Pearl. The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. - [Update Outbound Settings](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-outbound.md): Updates the outbound settings for the specified Pearl. The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. - [Get Pearl Credentials](https://developers.nlpearl.ai/api-reference/v2/pearlFlow/get-pearl-credentials.md): Retrieves the API credentials (Id and Name only) available to the specified Pearl. Use a returned Id as the CredentialId of an API action in the Pearl flow. - [Add Lead](https://developers.nlpearl.ai/api-reference/v2/outbound/add-lead.md): Adds a new lead to a specified outbound - [Add Leads](https://developers.nlpearl.ai/api-reference/v2/outbound/add-leads.md): Adds new leads to a specified outbound - [Update Lead](https://developers.nlpearl.ai/api-reference/v2/outbound/update-lead.md): Updates the details of an existing lead associated with a specific outbound campaign. - [Get Lead](https://developers.nlpearl.ai/api-reference/v2/outbound/get-lead.md): Retrieves details of a specific lead within a outbound - [Get Lead Via External ID](https://developers.nlpearl.ai/api-reference/v2/outbound/get-lead-via-external-id.md): Retrieves details of a specific lead within an outbound - [Find Lead Via Phone Number](https://developers.nlpearl.ai/api-reference/v2/outbound/get-lead-via-phone-number.md): Retrieves details of a specific lead within an outbound via phone number - [Search Leads](https://developers.nlpearl.ai/api-reference/v2/outbound/search-leads.md): Retrieves the leads associated with a specific outbound - [Delete Leads](https://developers.nlpearl.ai/api-reference/v2/outbound/delete-leads.md): Permanently deletes one or more leads associated with a specific outbound campaign. Deleted leads are removed and cannot be restored. - [Delete leads Via External](https://developers.nlpearl.ai/api-reference/v2/outbound/delete-leads-external-id.md): Permanently deletes one or more leads associated with a specific outbound campaign. Deleted leads are removed and cannot be restored. - [Get Account](https://developers.nlpearl.ai/api-reference/v1/account/get-account.md): Retrieves account details - [Get Call](https://developers.nlpearl.ai/api-reference/v1/call/get-call.md): Retrieves all the information about a call - [Delete Calls](https://developers.nlpearl.ai/api-reference/v1/call/delete-call.md): Deletes one or more calls - [Reset Customer Memory](https://developers.nlpearl.ai/api-reference/v1/pearl/reset-memory.md): Resets stored memory associated with a specific customer's phone number for a given Pearl. - [Get Inbounds](https://developers.nlpearl.ai/api-reference/v1/inbound/get-inbounds.md): Retrieves all inbounds - [Get Inbound](https://developers.nlpearl.ai/api-reference/v1/inbound/get-inbound.md): Retrieves a specific inbound by its ID - [Get Inbound Ongoing Calls](https://developers.nlpearl.ai/api-reference/v1/inbound/get-inbound-ongoing-calls.md): Returns the number of active calls currently in progress and in queue for the specified inbound ID. - [Set Activity State](https://developers.nlpearl.ai/api-reference/v1/inbound/set-activity-state.md): Run or Pause a specific inbound - [Search Calls](https://developers.nlpearl.ai/api-reference/v1/inbound/search-calls.md): Retrieves the calls within a specific date range of inbound - [Get Analytics](https://developers.nlpearl.ai/api-reference/v1/inbound/get-analytics.md): Retrieves analytics data for a specific inbound campaign within a given date range. - [Get Outbounds](https://developers.nlpearl.ai/api-reference/v1/outbound/get-outbounds.md): Retreive all the Outbounds - [Get Outbound](https://developers.nlpearl.ai/api-reference/v1/outbound/get-outbound.md): Retrieve a specific outbound by its ID - [Get Lead](https://developers.nlpearl.ai/api-reference/v1/outbound/get-lead.md): Retrieves details of a specific lead within a outbound - [Get Lead via External ID](https://developers.nlpearl.ai/api-reference/v1/outbound/get-lead-via-external-id.md): Retrieves details of a specific lead within an outbound - [Get Lead via Phone Number](https://developers.nlpearl.ai/api-reference/v1/outbound/get-lead-via-phone-number.md): Retrieves details of a specific lead within an outbound via phone number - [Get Call Request](https://developers.nlpearl.ai/api-reference/v1/outbound/get-call-request.md): Fetches detailed information about a specific API request identified by its unique requestId. - [Get Analytics](https://developers.nlpearl.ai/api-reference/v1/outbound/get-analytics.md): Retrieves analytics data for a specific outbound campaign within a given date range. - [Set Activity State](https://developers.nlpearl.ai/api-reference/v1/outbound/set-activity-state.md): Activates or deactivates a specified outbound - [Search Calls](https://developers.nlpearl.ai/api-reference/v1/outbound/search-calls.md): Retrieves the calls within a specific date range for a given outbound - [Search Leads](https://developers.nlpearl.ai/api-reference/v1/outbound/search-leads.md): Retrieves the leads associated with a specific outbound - [Make Call](https://developers.nlpearl.ai/api-reference/v1/outbound/make-call.md): Initiates an outbound phone call associated with the specified outbound ID. The request body must contain the necessary details for making the call. Once initiated, the call will be routed to the first available agent. - [Search Call Requests](https://developers.nlpearl.ai/api-reference/v1/outbound/search-call-requests.md): Fetches a list of API call requests associated with a specific outbound identifier. The search criteria, such as filters or pagination options, should be provided in the request body. - [Add Lead](https://developers.nlpearl.ai/api-reference/v1/outbound/add-lead.md): Adds a new lead to a specified outbound - [Update Lead](https://developers.nlpearl.ai/api-reference/v1/outbound/update-lead.md): Updates the details of an existing lead associated with a specific outbound campaign. - [Delete Leads](https://developers.nlpearl.ai/api-reference/v1/outbound/delete-leads.md): Permanently deletes one or more leads associated with a specific outbound campaign. Deleted leads are removed and cannot be restored. - [Delete leads Via External](https://developers.nlpearl.ai/api-reference/v1/outbound/delete-leads-external-id.md): Permanently deletes one or more leads associated with a specific outbound campaign. Deleted leads are removed and cannot be restored. ## OpenAPI Specs - [openapiV1](/api-reference/v1/openapiV1.json) - [openapiV2](/api-reference/v2/openapiV2.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.