diff --git a/fern/docs.yml b/fern/docs.yml
index f18bcbd0da..6351c58c32 100644
--- a/fern/docs.yml
+++ b/fern/docs.yml
@@ -80,6 +80,12 @@ products:
availability: deprecated
slug: v2
+ - display-name: SDK Reference
+ slug: sdk-reference
+ path: products/sdk-reference/sdk-reference.yml
+ icon: fa-regular fa-books
+ subtitle: Auto-generated reference for every SignalWire SDK
+
# Column 3 (APIs)
- display-name: APIs
slug: apis
diff --git a/fern/products/sdk-reference/cpp/_meta.json b/fern/products/sdk-reference/cpp/_meta.json
new file mode 100644
index 0000000000..ffd6311149
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/_meta.json
@@ -0,0 +1,10 @@
+{
+ "language": "cpp",
+ "sdk_name": "cpp-sdk",
+ "version": null,
+ "source_repo": "https://github.com/signalwire/signalwire-cpp",
+ "format": "mdx",
+ "platform": "fern",
+ "base_slug": "/reference/cpp",
+ "item_count": 1633
+}
\ No newline at end of file
diff --git a/fern/products/sdk-reference/cpp/c-tool-context/index.mdx b/fern/products/sdk-reference/cpp/c-tool-context/index.mdx
new file mode 100644
index 0000000000..6fdedff726
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/c-tool-context/index.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/c-tool-context"
+title: "CToolContext"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "CToolContext"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/c_api/signalwire_c.cpp"
+ visibility: "public"
+---
+# `CToolContext`
+
+## Signature
+
+```cpp
+struct CToolContext
+```
+
+## Properties
+
+
+
+
+
+## Source
+
+[`src/c_api/signalwire_c.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/c_api/signalwire_c.cpp)
+
+Line 83.
diff --git a/fern/products/sdk-reference/cpp/httplib/index.mdx b/fern/products/sdk-reference/cpp/httplib/index.mdx
new file mode 100644
index 0000000000..afe1689ad0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/httplib/index.mdx
@@ -0,0 +1,25 @@
+---
+slug: "/reference/cpp/httplib"
+title: "httplib"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "httplib"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+---
+# `httplib`
+
+## Signature
+
+```cpp
+namespace httplib
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/index.mdx b/fern/products/sdk-reference/cpp/index.mdx
new file mode 100644
index 0000000000..ae8bf837bf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/index.mdx
@@ -0,0 +1,16 @@
+---
+title: "C++ SDK"
+slug: "/reference/cpp"
+lustri:
+ auto_generated: true
+ language: "cpp"
+ kind: "sdk"
+---
+# C++ SDK Reference
+
+## Modules
+
+- [`httplib`](/reference/cpp/httplib)
+- [`signalwire`](/reference/cpp/signalwire)
+- [`std`](/reference/cpp/std)
+
diff --git a/fern/products/sdk-reference/cpp/signalwire/add-skill-directory.mdx b/fern/products/sdk-reference/cpp/signalwire/add-skill-directory.mdx
new file mode 100644
index 0000000000..4146f462f4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/add-skill-directory.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/add-skill-directory"
+title: "add_skill_directory"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::add_skill_directory"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/signalwire.cpp"
+ visibility: "public"
+---
+# `add_skill_directory`
+
+Add a directory to search for skills.
+Mirrors Python's signalwire.add\_skill\_directory(path) — delegates to the singleton skills::SkillRegistry instance so third-party skill collections can be registered by path.
+
+std::invalid\_argument
+
+when the path doesn't exist or isn't a directory.
+
+## Signature
+
+```cpp
+void add_skill_directory(const std::string & path)
+```
+
+## Parameters
+
+
+
+## Throws
+
+- `std::invalid_argument` — when the path doesn't exist or isn't a directory.
+
+## Source
+
+[`src/signalwire.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/signalwire.cpp)
+
+Line 94.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-answer-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-answer-verb.mdx
new file mode 100644
index 0000000000..01b3d20f18
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-answer-verb.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-answer-verb"
+title: "add_answer_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_answer_verb"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_answer_verb`
+
+## Signature
+
+```cpp
+AgentBase & add_answer_verb(const std::string & verb_name, const json & params)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-context.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-context.mdx
new file mode 100644
index 0000000000..67f072a57f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-context.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-context"
+title: "add_context"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_context"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_context`
+
+## Signature
+
+```cpp
+contexts::Context & add_context(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`contexts::Context &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 391.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-function-include.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-function-include.mdx
new file mode 100644
index 0000000000..770efa8883
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-function-include.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-function-include"
+title: "add_function_include"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_function_include"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_function_include`
+
+## Signature
+
+```cpp
+AgentBase & add_function_include(const json & include)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 369.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-hint.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-hint.mdx
new file mode 100644
index 0000000000..98bcc1d114
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-hint.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-hint"
+title: "add_hint"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_hint"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_hint`
+
+## Signature
+
+```cpp
+AgentBase & add_hint(const std::string & hint)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 290.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-hints.mdx
new file mode 100644
index 0000000000..79c824b457
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-hints"
+title: "add_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_hints"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_hints`
+
+## Signature
+
+```cpp
+AgentBase & add_hints(const std::vector< std::string > & hints)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 291.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-internal-filler.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-internal-filler.mdx
new file mode 100644
index 0000000000..0d220820ea
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-internal-filler.mdx
@@ -0,0 +1,69 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-internal-filler"
+title: "add_internal_filler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_internal_filler"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_internal_filler`
+
+Add internal fillers for a single language (legacy overload; stored under the given language key at the top level).
+
+## Signature
+
+
+
+ ```cpp
+ AgentBase & add_internal_filler(
+ const std::string & lang,
+ const std::vector< std::string > & fillers
+ )
+ ```
+
+
+
+ ```cpp
+ AgentBase & add_internal_filler(
+ const std::string & function_name,
+ const std::string & language_code,
+ const std::vector< std::string > & fillers
+ )
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+
+
+## Returns (Overload 1)
+
+`AgentBase &`
+
+## Returns (Overload 2)
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 358.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-language.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-language.mdx
new file mode 100644
index 0000000000..75fe6021f3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-language.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-language"
+title: "add_language"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_language"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_language`
+
+## Signature
+
+```cpp
+AgentBase & add_language(const LanguageConfig & lang)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 293.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-mcp-server.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-mcp-server.mdx
new file mode 100644
index 0000000000..2fce4d4fb5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-mcp-server.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-mcp-server"
+title: "add_mcp_server"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_mcp_server"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_mcp_server`
+
+## Signature
+
+```cpp
+AgentBase & add_mcp_server(
+ const std::string & url,
+ const std::map< std::string, std::string > & headers = {},
+ bool resources = false,
+ const std::map< std::string, std::string > & resource_vars = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 411.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pattern-hint.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pattern-hint.mdx
new file mode 100644
index 0000000000..180e041a65
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pattern-hint.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-pattern-hint"
+title: "add_pattern_hint"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_pattern_hint"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_pattern_hint`
+
+## Signature
+
+```cpp
+AgentBase & add_pattern_hint(const std::string & pattern)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 292.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-post-ai-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-post-ai-verb.mdx
new file mode 100644
index 0000000000..90052027bc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-post-ai-verb.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-post-ai-verb"
+title: "add_post_ai_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_post_ai_verb"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_post_ai_verb`
+
+## Signature
+
+```cpp
+AgentBase & add_post_ai_verb(const std::string & verb_name, const json & params)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 381.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-post-answer-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-post-answer-verb.mdx
new file mode 100644
index 0000000000..e4cb8e4bbe
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-post-answer-verb.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-post-answer-verb"
+title: "add_post_answer_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_post_answer_verb"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_post_answer_verb`
+
+## Signature
+
+```cpp
+AgentBase & add_post_answer_verb(
+ const std::string & verb_name,
+ const json & params
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 380.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pre-answer-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pre-answer-verb.mdx
new file mode 100644
index 0000000000..115aacf505
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pre-answer-verb.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-pre-answer-verb"
+title: "add_pre_answer_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_pre_answer_verb"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_pre_answer_verb`
+
+## Signature
+
+```cpp
+AgentBase & add_pre_answer_verb(
+ const std::string & verb_name,
+ const json & params
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 378.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pronunciation.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pronunciation.mdx
new file mode 100644
index 0000000000..efd492ab49
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-pronunciation.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-pronunciation"
+title: "add_pronunciation"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_pronunciation"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_pronunciation`
+
+## Signature
+
+```cpp
+AgentBase & add_pronunciation(
+ const std::string & replace_val,
+ const std::string & with_val,
+ bool ignore_case = false
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 313.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-security-headers.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-security-headers.mdx
new file mode 100644
index 0000000000..b93d08a8f7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-security-headers.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-security-headers"
+title: "add_security_headers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_security_headers"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `add_security_headers`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+void add_security_headers(httplib::Response & res)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 543.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-skill.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-skill.mdx
new file mode 100644
index 0000000000..2c624f7ba5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-skill.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-skill"
+title: "add_skill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_skill"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_skill`
+
+## Signature
+
+```cpp
+AgentBase & add_skill(
+ const std::string & skill_name,
+ const json & params = json::object()
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 402.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-swaig-query-param.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-swaig-query-param.mdx
new file mode 100644
index 0000000000..a64874a329
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/add-swaig-query-param.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/add-swaig-query-param"
+title: "add_swaig_query_param"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::add_swaig_query_param"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `add_swaig_query_param`
+
+## Signature
+
+```cpp
+AgentBase & add_swaig_query_param(
+ const std::string & key,
+ const std::string & value
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 429.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/agent-base.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/agent-base.mdx
new file mode 100644
index 0000000000..650f1ff145
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/agent-base.mdx
@@ -0,0 +1,59 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/agent-base"
+title: "AgentBase"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::AgentBase"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `AgentBase`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+
+
+ ```cpp
+ void AgentBase(
+ const std::string & name = "agent",
+ const std::string & route = "/",
+ const std::string & host = "0.0.0.0",
+ int port = 3000
+ )
+ ```
+
+
+
+ ```cpp
+ void AgentBase(const AgentBase & other)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+
+
+
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 115.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/agent-base__2.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/agent-base__2.mdx
new file mode 100644
index 0000000000..a42373db1d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/agent-base__2.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/agent-base__2"
+title: "~AgentBase"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::~AgentBase"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `~AgentBase`
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+void ~AgentBase()
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 119.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auth-password.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auth-password.mdx
new file mode 100644
index 0000000000..58101da7cf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auth-password.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/auth-password"
+title: "auth_password"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::auth_password"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `auth_password`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & auth_password() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 447.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auth-username.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auth-username.mdx
new file mode 100644
index 0000000000..ecc880da65
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auth-username.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/auth-username"
+title: "auth_username"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::auth_username"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `auth_username`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & auth_username() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 446.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auto-map-sip-usernames.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auto-map-sip-usernames.mdx
new file mode 100644
index 0000000000..ef4e85357b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/auto-map-sip-usernames.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/auto-map-sip-usernames"
+title: "auto_map_sip_usernames"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::auto_map_sip_usernames"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `auto_map_sip_usernames`
+
+## Signature
+
+```cpp
+AgentBase & auto_map_sip_usernames(bool enable = true)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 439.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-ai-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-ai-verb.mdx
new file mode 100644
index 0000000000..9c79846e6f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-ai-verb.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/build-ai-verb"
+title: "build_ai_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::build_ai_verb"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `build_ai_verb`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json build_ai_verb(const std::string & webhook_url) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 516.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-mcp-tool-list.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-mcp-tool-list.mdx
new file mode 100644
index 0000000000..beb3e24edf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-mcp-tool-list.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/build-mcp-tool-list"
+title: "build_mcp_tool_list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::build_mcp_tool_list"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `build_mcp_tool_list`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< json > build_mcp_tool_list() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 418.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-prompt.mdx
new file mode 100644
index 0000000000..d4f23c6555
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-prompt.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/build-prompt"
+title: "build_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::build_prompt"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `build_prompt`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json build_prompt() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 522.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-swaig-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-swaig-functions.mdx
new file mode 100644
index 0000000000..4c2d6c1270
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-swaig-functions.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/build-swaig-functions"
+title: "build_swaig_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::build_swaig_functions"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `build_swaig_functions`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json build_swaig_functions(const std::string & webhook_url) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 519.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-webhook-url.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-webhook-url.mdx
new file mode 100644
index 0000000000..dde29c9f2c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/build-webhook-url.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/build-webhook-url"
+title: "build_webhook_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::build_webhook_url"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `build_webhook_url`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string build_webhook_url(const std::string & base_url) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 510.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-post-ai-verbs.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-post-ai-verbs.mdx
new file mode 100644
index 0000000000..8162239374
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-post-ai-verbs.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/clear-post-ai-verbs"
+title: "clear_post_ai_verbs"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::clear_post_ai_verbs"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `clear_post_ai_verbs`
+
+## Signature
+
+```cpp
+AgentBase & clear_post_ai_verbs()
+```
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 384.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-post-answer-verbs.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-post-answer-verbs.mdx
new file mode 100644
index 0000000000..d57dda77da
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-post-answer-verbs.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/clear-post-answer-verbs"
+title: "clear_post_answer_verbs"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::clear_post_answer_verbs"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `clear_post_answer_verbs`
+
+## Signature
+
+```cpp
+AgentBase & clear_post_answer_verbs()
+```
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-pre-answer-verbs.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-pre-answer-verbs.mdx
new file mode 100644
index 0000000000..06751d72ef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-pre-answer-verbs.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/clear-pre-answer-verbs"
+title: "clear_pre_answer_verbs"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::clear_pre_answer_verbs"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `clear_pre_answer_verbs`
+
+## Signature
+
+```cpp
+AgentBase & clear_pre_answer_verbs()
+```
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 382.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-swaig-query-params.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-swaig-query-params.mdx
new file mode 100644
index 0000000000..75ab1d55f4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clear-swaig-query-params.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/clear-swaig-query-params"
+title: "clear_swaig_query_params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::clear_swaig_query_params"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `clear_swaig_query_params`
+
+## Signature
+
+```cpp
+AgentBase & clear_swaig_query_params()
+```
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 430.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clone.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clone.mdx
new file mode 100644
index 0000000000..bccc987351
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/clone.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/clone"
+title: "clone"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::clone"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `clone`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::unique_ptr< AgentBase > clone() const
+```
+
+## Returns
+
+`std::unique_ptr< AgentBase >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 507.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/create-tool-token.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/create-tool-token.mdx
new file mode 100644
index 0000000000..c8e83a946d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/create-tool-token.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/create-tool-token"
+title: "create_tool_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::create_tool_token"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `create_tool_token`
+
+Mint a per-call SWAIG-function token via the agent's SessionManager.
+Python parity: state\_mixin.StateMixin.\_create\_tool\_token — delegates to SessionManager::create\_token and returns an empty string on any thrown exception (Python catches all exceptions and returns "" on error).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string create_tool_token(
+ const std::string & tool_name,
+ const std::string & call_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 273.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/define-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/define-contexts.mdx
new file mode 100644
index 0000000000..ca0898dd2c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/define-contexts.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/define-contexts"
+title: "define_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::define_contexts"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `define_contexts`
+
+## Signature
+
+```cpp
+contexts::ContextBuilder & define_contexts()
+```
+
+## Returns
+
+`contexts::ContextBuilder &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 390.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/define-tool.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/define-tool.mdx
new file mode 100644
index 0000000000..3bc6e1d2c0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/define-tool.mdx
@@ -0,0 +1,84 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/define-tool"
+title: "define_tool"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::define_tool"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `define_tool`
+
+Register a SWAIG tool (function) that the AI can invoke during a call.
+
+How this becomes a tool the model seesA SWAIG function is exactly the same concept as a "tool" in native OpenAI / Anthropic tool calling. On every LLM turn, the SDK renders each registered SWAIG function into the OpenAI tool schema:
+\{ "type": "function", "function": \{ "name": "your\_name\_here", "description": "your description text", "parameters": \{ ... your JSON schema ... \} \} \}
+That schema is sent to the model as part of the same API call that produces the next assistant message. The model reads:
+the function description to decide WHEN to call this tool
+each parameter description (inside parameters) to decide HOW to fill in that argument from the user's utterance
+
+This means descriptions are prompt engineering, not developer comments. A vague description is the #1 cause of "the model has
+the right tool but doesn't call it" failures.
+
+Bad vs good descriptionsBAD : description: "Lookup function" GOOD: description: "Look up a customer's account details by " "account number. Use this BEFORE quoting " "any account-specific info (balance, plan, " "status). Do not use for general product " "questions."
+BAD : parameters: \{"id": \{"type": "string", "description": "the id"\}\} GOOD: parameters: \{"account\_number": \{"type": "string", "description": "The customer's 8-digit account " "number, no dashes or spaces. Ask the user if they " "don't provide it."\}\}
+
+Tool count mattersLLM tool selection accuracy degrades past ~7-8 simultaneously-active tools per call. Use contexts::Step::set\_functions to partition tools across steps so only the relevant subset is active at any moment.
+
+## Signature
+
+
+
+ ```cpp
+ AgentBase & define_tool(const swaig::ToolDefinition & tool)
+ ```
+
+
+
+ ```cpp
+ AgentBase & define_tool(
+ const std::string & name,
+ const std::string & description,
+ const json & parameters,
+ swaig::ToolHandler handler,
+ bool secure = false
+ )
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+
+
+
+
+
+
+## Returns (Overload 1)
+
+`AgentBase &`
+
+## Returns (Overload 2)
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 257.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/detect-proxy-url.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/detect-proxy-url.mdx
new file mode 100644
index 0000000000..9cd989282e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/detect-proxy-url.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/detect-proxy-url"
+title: "detect_proxy_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::detect_proxy_url"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `detect_proxy_url`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string detect_proxy_url(
+ const std::map< std::string, std::string > & headers
+) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 513.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-debug-events.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-debug-events.mdx
new file mode 100644
index 0000000000..5ca30fbde9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-debug-events.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/enable-debug-events"
+title: "enable_debug_events"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::enable_debug_events"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `enable_debug_events`
+
+## Signature
+
+```cpp
+AgentBase & enable_debug_events(bool enable = true)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 368.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-debug-routes.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-debug-routes.mdx
new file mode 100644
index 0000000000..f52a568f10
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-debug-routes.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/enable-debug-routes"
+title: "enable_debug_routes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::enable_debug_routes"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `enable_debug_routes`
+
+## Signature
+
+```cpp
+AgentBase & enable_debug_routes(bool enable = true)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 431.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-mcp-server.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-mcp-server.mdx
new file mode 100644
index 0000000000..dc26ed7ddf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-mcp-server.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/enable-mcp-server"
+title: "enable_mcp_server"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::enable_mcp_server"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `enable_mcp_server`
+
+## Signature
+
+```cpp
+AgentBase & enable_mcp_server(bool enable = true)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 415.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-sip-routing.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-sip-routing.mdx
new file mode 100644
index 0000000000..ece39d897e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/enable-sip-routing.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/enable-sip-routing"
+title: "enable_sip_routing"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::enable_sip_routing"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `enable_sip_routing`
+
+## Signature
+
+```cpp
+AgentBase & enable_sip_routing(bool enable = true)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 437.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-contexts.mdx
new file mode 100644
index 0000000000..40e18c07f4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-contexts.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/get-contexts"
+title: "get_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::get_contexts"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `get_contexts`
+
+Returns the contexts dictionary as a serialised JSON object, or std::nullopt when no contexts have been defined yet.
+Mirrors Python's PromptManager.get\_contexts which returns the contexts dict or None.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::optional< json > get_contexts() const
+```
+
+## Returns
+
+`std::optional< json >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 195.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-language-params.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-language-params.mdx
new file mode 100644
index 0000000000..557b213071
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-language-params.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/get-language-params"
+title: "get_language_params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::get_language_params"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `get_language_params`
+
+Read the per-language params dict for a previously-added language. Returns std::nullopt when the code is unknown or when params were never set on that language — no exception path, mirroring Python's None return.
+Python parity: AIConfigMixin.get\_language\_params (029ca6f).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::optional< json > get_language_params(const std::string & code) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::optional< json >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 312.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-post-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-post-prompt.mdx
new file mode 100644
index 0000000000..9aa197ff1f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-post-prompt.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/get-post-prompt"
+title: "get_post_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::get_post_prompt"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `get_post_prompt`
+
+Returns the post-prompt text whatever set\_post\_prompt stored, or std::nullopt when no post-prompt has been set.
+Mirrors Python's PromptManager.get\_post\_prompt / PromptMixin.get\_post\_prompt — used by SWML rendering when a post-prompt is configured.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::optional< std::string > get_post_prompt() const
+```
+
+## Returns
+
+`std::optional< std::string >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 172.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-prompt.mdx
new file mode 100644
index 0000000000..1c04758eef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-prompt.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/get-prompt"
+title: "get_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::get_prompt"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `get_prompt`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string get_prompt() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 153.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-raw-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-raw-prompt.mdx
new file mode 100644
index 0000000000..de3fb49a06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/get-raw-prompt.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/get-raw-prompt"
+title: "get_raw_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::get_raw_prompt"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `get_raw_prompt`
+
+Returns the raw prompt text whatever set\_prompt\_text stored, or std::nullopt when no raw prompt has been set. Distinct from get\_prompt which renders the POM array when use\_pom is true.
+Mirrors Python's PromptManager.get\_raw\_prompt.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::optional< std::string > get_raw_prompt() const
+```
+
+## Returns
+
+`std::optional< std::string >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 180.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-mcp-request.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-mcp-request.mdx
new file mode 100644
index 0000000000..7162b9129b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-mcp-request.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/handle-mcp-request"
+title: "handle_mcp_request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::handle_mcp_request"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `handle_mcp_request`
+
+## Signature
+
+```cpp
+json handle_mcp_request(const json & body)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 419.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-post-prompt-request.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-post-prompt-request.mdx
new file mode 100644
index 0000000000..89c4303147
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-post-prompt-request.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/handle-post-prompt-request"
+title: "handle_post_prompt_request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::handle_post_prompt_request"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `handle_post_prompt_request`
+
+## Signature
+
+```cpp
+void handle_post_prompt_request(
+ const httplib::Request & req,
+ httplib::Response & res
+)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 537.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-swaig-request.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-swaig-request.mdx
new file mode 100644
index 0000000000..741ad0724b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-swaig-request.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/handle-swaig-request"
+title: "handle_swaig_request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::handle_swaig_request"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `handle_swaig_request`
+
+## Signature
+
+```cpp
+void handle_swaig_request(const httplib::Request & req, httplib::Response & res)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 534.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-swml-request.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-swml-request.mdx
new file mode 100644
index 0000000000..deb0bfe8df
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/handle-swml-request.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/handle-swml-request"
+title: "handle_swml_request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::handle_swml_request"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `handle_swml_request`
+
+## Signature
+
+```cpp
+void handle_swml_request(const httplib::Request & req, httplib::Response & res)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 531.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/has-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/has-contexts.mdx
new file mode 100644
index 0000000000..7f82a467b2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/has-contexts.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/has-contexts"
+title: "has_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::has_contexts"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `has_contexts`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool has_contexts() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 392.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/has-skill.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/has-skill.mdx
new file mode 100644
index 0000000000..9f1651ae2e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/has-skill.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/has-skill"
+title: "has_skill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::has_skill"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `has_skill`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool has_skill(const std::string & skill_name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 404.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/index.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/index.mdx
new file mode 100644
index 0000000000..2885595caf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/index.mdx
@@ -0,0 +1,282 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base"
+title: "AgentBase"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase"
+ parent: "signalwire::agent"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `AgentBase`
+
+## Signature
+
+```cpp
+class signalwire::agent::AgentBase : signalwire::swml::Service
+```
+
+## Inheritance
+
+**Extends:** [signalwire::swml::Service](/reference/cpp/signalwire/swml/service)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add internal fillers for a single language (legacy overload; stored under the given language key at the top level).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mint a per-call SWAIG-function token via the agent's SessionManager. Python parity: state\_mixin.StateMixin.\_create\_tool\_token — delegates to SessionManager::create\_token and returns an empty string on any thrown exception (Python catches all exceptions and returns "" on error).
+
+
+
+
+
+ Register a SWAIG tool (function) that the AI can invoke during a call.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the contexts dictionary as a serialised JSON object, or std::nullopt when no contexts have been defined yet. Mirrors Python's PromptManager.get\_contexts which returns the contexts dict or None.
+
+
+
+ Read the per-language params dict for a previously-added language. Returns std::nullopt when the code is unknown or when params were never set on that language — no exception path, mirroring Python's None return. Python parity: AIConfigMixin.get\_language\_params (029ca6f).
+
+
+
+ Returns the post-prompt text whatever set\_post\_prompt stored, or std::nullopt when no post-prompt has been set. Mirrors Python's PromptManager.get\_post\_prompt / PromptMixin.get\_post\_prompt — used by SWML rendering when a post-prompt is configured.
+
+
+
+
+
+ Returns the raw prompt text whatever set\_prompt\_text stored, or std::nullopt when no raw prompt has been set. Distinct from get\_prompt which renders the POM array when use\_pom is true. Mirrors Python's PromptManager.get\_raw\_prompt.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dispatch a function call to the registered handler. Returns a FunctionResult; if the function isn't registered, returns a FunctionResult with a "Function not found" response.
+
+
+
+
+
+
+
+ Read-only snapshot of the agent's POM as a PromptObjectModel. Python parity: agent.pom instance attribute (agent\_base.py line 209). Returns std::nullopt when use\_pom is false (mirroring Python's self.pom = None); otherwise returns a freshly built signalwire::pom::PromptObjectModel whose sections are deep-copied from the agent's internal section/ subsection structures so callers cannot mutate them in-place.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove all contexts, returning the agent to a no-contexts state. Convenience wrapper around define\_contexts().reset().
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set internal fillers for native SWAIG functions. Internal fillers are short phrases the AI agent speaks (via TTS) while an internal/native function is running, so the caller doesn't hear dead air during transitions or background work. Supported function names (match the SWAIGInternalFiller schema): hangup, check\_time, wait\_for\_user, wait\_seconds, adjust\_response\_latency, next\_step, change\_context, get\_visual\_input, get\_ideal\_strategy. See supported\_internal\_filler\_names(). Notably NOT supported: change\_step, gather\_submit, or arbitrary user-defined SWAIG function names. The runtime only honors fillers for the names listed above; everything else is silently ignored at the SWML level. This method warns at registration time if you pass an unknown name so you catch the typo early. Expected JSON shape: \{"function\_name": \{"language\_code": \["phrase1", ...]\}, ...\}
+
+
+
+ Set (or replace) the per-language params dict on an already-added language. Useful when language entries are built via add\_language() first and engine-specific tuning is added later (e.g. from a config loader). Passing an empty object removes the params key (treated as unset). No-op if code isn't found among previously-added languages. Python parity: AIConfigMixin.set\_language\_params (029ca6f).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the prompt as a list of POM section JSON objects. Each section supports keys "title", "body", "bullets", "numbered", "numbered\_bullets", and "subsections". Switches the agent to POM mode. Mirrors Python's PromptManager.set\_prompt\_pom.
+
+
+
+
+
+
+
+ Set the SignalWire Signing Key (Dashboard → API Credentials). Pass the empty string to clear and revert to env-fallback behavior.
+
+
+
+
+
+
+
+
+
+ Read the resolved signing key (constructor / set\_signing\_key / SIGNALWIRE\_SIGNING\_KEY env), or std::nullopt when unset. The returned value is the secret — never log it.
+
+
+
+
+
+ The complete set of internal SWAIG function names that accept fillers, matching the SWAIGInternalFiller schema definition. Any name outside this set is silently ignored by the runtime — set\_internal\_fillers and add\_internal\_filler warn if you pass an unknown name. Notable absences: change\_step, gather\_submit, and arbitrary user-defined SWAIG function names are NOT supported.
+
+
+
+ If true, X-Forwarded-Proto / X-Forwarded-Host are honored by the webhook middleware when reconstructing the URL. Default false — proxy headers are spoofable so opt in only when the reverse-proxy is trusted.
+
+
+
+
+
+
+
+ Validate a per-call SWAIG-function token. Returns false when the function is not registered, when the SessionManager rejects the token, or on any underlying exception. Python parity: state\_mixin.StateMixin.validate\_tool\_token — rejects unknown function names up-front and swallows exceptions.
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 112.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/init-auth.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/init-auth.mdx
new file mode 100644
index 0000000000..2e198508ce
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/init-auth.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/init-auth"
+title: "init_auth"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::init_auth"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `init_auth`
+
+## Signature
+
+```cpp
+void init_auth()
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 525.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/is-mcp-server-enabled.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/is-mcp-server-enabled.mdx
new file mode 100644
index 0000000000..5f90efa5f2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/is-mcp-server-enabled.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/is-mcp-server-enabled"
+title: "is_mcp_server_enabled"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::is_mcp_server_enabled"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `is_mcp_server_enabled`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_mcp_server_enabled() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 416.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/list-skills.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/list-skills.mdx
new file mode 100644
index 0000000000..98edc4534c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/list-skills.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/list-skills"
+title: "list_skills"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::list_skills"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `list_skills`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< std::string > list_skills() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 405.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/list-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/list-tools.mdx
new file mode 100644
index 0000000000..90274bc75b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/list-tools.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/list-tools"
+title: "list_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::list_tools"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `list_tools`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< std::string > list_tools() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 265.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/manual-set-proxy-url.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/manual-set-proxy-url.mdx
new file mode 100644
index 0000000000..a6de26a0a5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/manual-set-proxy-url.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/manual-set-proxy-url"
+title: "manual_set_proxy_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::manual_set_proxy_url"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `manual_set_proxy_url`
+
+## Signature
+
+```cpp
+AgentBase & manual_set_proxy_url(const std::string & url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 426.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/mcp-servers.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/mcp-servers.mdx
new file mode 100644
index 0000000000..9603e868ec
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/mcp-servers.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/mcp-servers"
+title: "mcp_servers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::mcp_servers"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `mcp_servers`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::vector< json > & mcp_servers() const
+```
+
+## Returns
+
+`const std::vector< json > &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 417.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-debug-event.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-debug-event.mdx
new file mode 100644
index 0000000000..491d86bd07
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-debug-event.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/on-debug-event"
+title: "on_debug_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::on_debug_event"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `on_debug_event`
+
+## Signature
+
+```cpp
+AgentBase & on_debug_event(DebugEventCallback cb)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 483.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-function-call.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-function-call.mdx
new file mode 100644
index 0000000000..0619c59ee0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-function-call.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/on-function-call"
+title: "on_function_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::on_function_call"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `on_function_call`
+
+Dispatch a function call to the registered handler. Returns a FunctionResult; if the function isn't registered, returns a FunctionResult with a "Function not found" response.
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+swaig::FunctionResult on_function_call(
+ const std::string & name,
+ const json & args,
+ const json & raw_data
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`swaig::FunctionResult`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 262.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-summary.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-summary.mdx
new file mode 100644
index 0000000000..216c397654
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/on-summary.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/on-summary"
+title: "on_summary"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::on_summary"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `on_summary`
+
+## Signature
+
+```cpp
+AgentBase & on_summary(SummaryCallback cb)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 482.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/operator.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/operator.mdx
new file mode 100644
index 0000000000..eda3d4b1bc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/operator.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/operator"
+title: "operator="
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::operator="
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `operator=`
+
+## Signature
+
+```cpp
+AgentBase & operator=(const AgentBase &)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 123.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/pom.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/pom.mdx
new file mode 100644
index 0000000000..65b3e580b6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/pom.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/pom"
+title: "pom"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::pom"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `pom`
+
+Read-only snapshot of the agent's POM as a PromptObjectModel.
+Python parity: agent.pom instance attribute (agent\_base.py line 209). Returns std::nullopt when use\_pom is false (mirroring Python's self.pom = None); otherwise returns a freshly built signalwire::pom::PromptObjectModel whose sections are deep-copied from the agent's internal section/ subsection structures so callers cannot mutate them in-place.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::optional< signalwire::pom::PromptObjectModel > pom() const
+```
+
+## Returns
+
+`std::optional< signalwire::pom::PromptObjectModel >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 164.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-section.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-section.mdx
new file mode 100644
index 0000000000..c33601e9d2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-section.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/prompt-add-section"
+title: "prompt_add_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::prompt_add_section"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `prompt_add_section`
+
+## Signature
+
+```cpp
+AgentBase & prompt_add_section(
+ const std::string & title,
+ const std::string & body = "",
+ const std::vector< std::string > & bullets = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 142.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-subsection.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-subsection.mdx
new file mode 100644
index 0000000000..e9b87b9468
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-subsection.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/prompt-add-subsection"
+title: "prompt_add_subsection"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::prompt_add_subsection"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `prompt_add_subsection`
+
+## Signature
+
+```cpp
+AgentBase & prompt_add_subsection(
+ const std::string & parent_title,
+ const std::string & title,
+ const std::string & body = "",
+ const std::vector< std::string > & bullets = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 145.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-to-section.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-to-section.mdx
new file mode 100644
index 0000000000..6a45004857
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-add-to-section.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/prompt-add-to-section"
+title: "prompt_add_to_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::prompt_add_to_section"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `prompt_add_to_section`
+
+## Signature
+
+```cpp
+AgentBase & prompt_add_to_section(
+ const std::string & title,
+ const std::string & body = "",
+ const std::vector< std::string > & bullets = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 149.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-has-section.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-has-section.mdx
new file mode 100644
index 0000000000..b05b815a3f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/prompt-has-section.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/prompt-has-section"
+title: "prompt_has_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::prompt_has_section"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `prompt_has_section`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool prompt_has_section(const std::string & title) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 152.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/register-sip-username.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/register-sip-username.mdx
new file mode 100644
index 0000000000..9648d7ead6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/register-sip-username.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/register-sip-username"
+title: "register_sip_username"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::register_sip_username"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `register_sip_username`
+
+## Signature
+
+```cpp
+AgentBase & register_sip_username(const std::string & username)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 438.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/register-swaig-function.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/register-swaig-function.mdx
new file mode 100644
index 0000000000..d38eff51bd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/register-swaig-function.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/register-swaig-function"
+title: "register_swaig_function"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::register_swaig_function"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `register_swaig_function`
+
+## Signature
+
+```cpp
+AgentBase & register_swaig_function(const json & func_def)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 261.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/remove-skill.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/remove-skill.mdx
new file mode 100644
index 0000000000..169f6c21bb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/remove-skill.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/remove-skill"
+title: "remove_skill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::remove_skill"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `remove_skill`
+
+## Signature
+
+```cpp
+AgentBase & remove_skill(const std::string & skill_name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 403.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml-for-request.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml-for-request.mdx
new file mode 100644
index 0000000000..416c30edb5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml-for-request.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/render-swml-for-request"
+title: "render_swml_for_request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::render_swml_for_request"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `render_swml_for_request`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json render_swml_for_request(
+ const std::map< std::string, std::string > & query_params,
+ const json & body_params,
+ const std::map< std::string, std::string > & headers
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 490.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml-internal.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml-internal.mdx
new file mode 100644
index 0000000000..c74bd12977
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml-internal.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/render-swml-internal"
+title: "render_swml_internal"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::render_swml_internal"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `render_swml_internal`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json render_swml_internal(
+ const std::map< std::string, std::string > & headers
+) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 546.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml.mdx
new file mode 100644
index 0000000000..45e4a743ef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/render-swml.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/render-swml"
+title: "render_swml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::render_swml"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `render_swml`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json render_swml() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 489.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/reset-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/reset-contexts.mdx
new file mode 100644
index 0000000000..d81d9ec111
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/reset-contexts.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/reset-contexts"
+title: "reset_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::reset_contexts"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `reset_contexts`
+
+Remove all contexts, returning the agent to a no-contexts state. Convenience wrapper around define\_contexts().reset().
+
+## Signature
+
+```cpp
+AgentBase & reset_contexts()
+```
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 396.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/run.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/run.mdx
new file mode 100644
index 0000000000..ae9457febe
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/run.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/run"
+title: "run"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::run"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `run`
+
+## Signature
+
+```cpp
+void run()
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 498.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/serve.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/serve.mdx
new file mode 100644
index 0000000000..da3320cfae
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/serve.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/serve"
+title: "serve"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::serve"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `serve`
+
+## Signature
+
+```cpp
+void serve()
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 499.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/session-manager.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/session-manager.mdx
new file mode 100644
index 0000000000..bf9689c151
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/session-manager.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/session-manager"
+title: "session_manager"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::session_manager"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `session_manager`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+security::SessionManager & session_manager()
+```
+
+## Returns
+
+`security::SessionManager &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 503.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-auth.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-auth.mdx
new file mode 100644
index 0000000000..5f67f35c10
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-auth.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-auth"
+title: "set_auth"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_auth"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_auth`
+
+## Signature
+
+```cpp
+AgentBase & set_auth(const std::string & username, const std::string & password)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 445.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-dynamic-config-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-dynamic-config-callback.mdx
new file mode 100644
index 0000000000..83b9f9375e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-dynamic-config-callback.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-dynamic-config-callback"
+title: "set_dynamic_config_callback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_dynamic_config_callback"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_dynamic_config_callback`
+
+## Signature
+
+```cpp
+AgentBase & set_dynamic_config_callback(DynamicConfigCallback cb)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 425.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-function-includes.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-function-includes.mdx
new file mode 100644
index 0000000000..0479d9821b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-function-includes.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-function-includes"
+title: "set_function_includes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_function_includes"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_function_includes`
+
+## Signature
+
+```cpp
+AgentBase & set_function_includes(const std::vector< json > & includes)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 370.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-global-data.mdx
new file mode 100644
index 0000000000..35834a8514
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-global-data"
+title: "set_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_global_data"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_global_data`
+
+## Signature
+
+```cpp
+AgentBase & set_global_data(const json & data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 319.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-internal-fillers.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-internal-fillers.mdx
new file mode 100644
index 0000000000..b34c359f45
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-internal-fillers.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-internal-fillers"
+title: "set_internal_fillers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_internal_fillers"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_internal_fillers`
+
+Set internal fillers for native SWAIG functions.
+Internal fillers are short phrases the AI agent speaks (via TTS) while an internal/native function is running, so the caller doesn't hear dead air during transitions or background work.
+Supported function names (match the SWAIGInternalFiller schema): hangup, check\_time, wait\_for\_user, wait\_seconds, adjust\_response\_latency, next\_step, change\_context, get\_visual\_input, get\_ideal\_strategy. See supported\_internal\_filler\_names().
+Notably NOT supported: change\_step, gather\_submit, or arbitrary user-defined SWAIG function names. The runtime only honors fillers for the names listed above; everything else is silently ignored at the SWML level. This method warns at registration time if you pass an unknown name so you catch the typo early.
+Expected JSON shape: \{"function\_name": \{"language\_code": \["phrase1", ...]\}, ...\}
+
+## Signature
+
+```cpp
+AgentBase & set_internal_fillers(const json & fillers)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 354.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-language-params.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-language-params.mdx
new file mode 100644
index 0000000000..2d998a3e4f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-language-params.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-language-params"
+title: "set_language_params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_language_params"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_language_params`
+
+Set (or replace) the per-language params dict on an already-added language. Useful when language entries are built via add\_language() first and engine-specific tuning is added later (e.g. from a config loader). Passing an empty object removes the params key (treated as unset). No-op if code isn't found among previously-added languages.
+Python parity: AIConfigMixin.set\_language\_params (029ca6f).
+
+## Signature
+
+```cpp
+AgentBase & set_language_params(const std::string & code, const json & params)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 304.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-languages.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-languages.mdx
new file mode 100644
index 0000000000..45bc2527cc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-languages.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-languages"
+title: "set_languages"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_languages"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_languages`
+
+## Signature
+
+```cpp
+AgentBase & set_languages(const std::vector< LanguageConfig > & langs)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 294.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-name.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-name.mdx
new file mode 100644
index 0000000000..b1e5be2685
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-name.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-name"
+title: "set_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_name"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_name`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+AgentBase & set_name(const std::string & n)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 130.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-native-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-native-functions.mdx
new file mode 100644
index 0000000000..c0cf7e36b3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-native-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-native-functions"
+title: "set_native_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_native_functions"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_native_functions`
+
+## Signature
+
+```cpp
+AgentBase & set_native_functions(const std::vector< std::string > & funcs)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 321.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-param.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-param.mdx
new file mode 100644
index 0000000000..45c654e2d6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-param.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-param"
+title: "set_param"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_param"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_param`
+
+## Signature
+
+```cpp
+AgentBase & set_param(const std::string & key, const json & value)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 317.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-params.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-params.mdx
new file mode 100644
index 0000000000..fedf7e8082
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-params.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-params"
+title: "set_params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_params"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_params`
+
+## Signature
+
+```cpp
+AgentBase & set_params(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 318.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-llm-params.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-llm-params.mdx
new file mode 100644
index 0000000000..983e075061
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-llm-params.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-post-prompt-llm-params"
+title: "set_post_prompt_llm_params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_post_prompt_llm_params"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_post_prompt_llm_params`
+
+## Signature
+
+```cpp
+AgentBase & set_post_prompt_llm_params(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 372.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-url-direct.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-url-direct.mdx
new file mode 100644
index 0000000000..d5c1d7df38
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-url-direct.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-post-prompt-url-direct"
+title: "set_post_prompt_url_direct"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_post_prompt_url_direct"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_post_prompt_url_direct`
+
+## Signature
+
+```cpp
+AgentBase & set_post_prompt_url_direct(const std::string & url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 428.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-url.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-url.mdx
new file mode 100644
index 0000000000..14a2c4c41d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt-url.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-post-prompt-url"
+title: "set_post_prompt_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_post_prompt_url"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_post_prompt_url`
+
+## Signature
+
+```cpp
+AgentBase & set_post_prompt_url(const std::string & url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 141.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt.mdx
new file mode 100644
index 0000000000..e882735fa4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-post-prompt.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-post-prompt"
+title: "set_post_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_post_prompt"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_post_prompt`
+
+## Signature
+
+```cpp
+AgentBase & set_post_prompt(const std::string & text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 140.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-llm-params.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-llm-params.mdx
new file mode 100644
index 0000000000..27111bc808
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-llm-params.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-prompt-llm-params"
+title: "set_prompt_llm_params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_prompt_llm_params"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_prompt_llm_params`
+
+## Signature
+
+```cpp
+AgentBase & set_prompt_llm_params(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 371.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-pom.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-pom.mdx
new file mode 100644
index 0000000000..a417eef7f7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-pom.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-prompt-pom"
+title: "set_prompt_pom"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_prompt_pom"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_prompt_pom`
+
+Sets the prompt as a list of POM section JSON objects. Each section supports keys "title", "body", "bullets", "numbered", "numbered\_bullets", and "subsections". Switches the agent to POM mode.
+Mirrors Python's PromptManager.set\_prompt\_pom.
+
+## Signature
+
+```cpp
+AgentBase & set_prompt_pom(const std::vector< json > & pom)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 188.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-text.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-text.mdx
new file mode 100644
index 0000000000..34fb50884f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-prompt-text.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-prompt-text"
+title: "set_prompt_text"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_prompt_text"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_prompt_text`
+
+## Signature
+
+```cpp
+AgentBase & set_prompt_text(const std::string & text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 139.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-pronunciations.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-pronunciations.mdx
new file mode 100644
index 0000000000..05a2bafba3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-pronunciations.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-pronunciations"
+title: "set_pronunciations"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_pronunciations"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_pronunciations`
+
+## Signature
+
+```cpp
+AgentBase & set_pronunciations(const std::vector< Pronunciation > & pronuns)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 316.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-signing-key.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-signing-key.mdx
new file mode 100644
index 0000000000..d2204ff786
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-signing-key.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-signing-key"
+title: "set_signing_key"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_signing_key"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_signing_key`
+
+Set the SignalWire Signing Key (Dashboard → API Credentials). Pass the empty string to clear and revert to env-fallback behavior.
+
+## Signature
+
+```cpp
+AgentBase & set_signing_key(const std::string & key)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 465.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-use-pom.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-use-pom.mdx
new file mode 100644
index 0000000000..93ef23528d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-use-pom.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-use-pom"
+title: "set_use_pom"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_use_pom"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_use_pom`
+
+## Signature
+
+```cpp
+AgentBase & set_use_pom(bool use_pom)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 154.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-webhook-url.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-webhook-url.mdx
new file mode 100644
index 0000000000..7196cc9990
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/set-webhook-url.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/set-webhook-url"
+title: "set_webhook_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::set_webhook_url"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `set_webhook_url`
+
+## Signature
+
+```cpp
+AgentBase & set_webhook_url(const std::string & url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 427.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/setup-routes.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/setup-routes.mdx
new file mode 100644
index 0000000000..d0d839d966
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/setup-routes.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/setup-routes"
+title: "setup_routes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::setup_routes"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `setup_routes`
+
+## Signature
+
+```cpp
+void setup_routes(httplib::Server & server)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 528.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/signing-key.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/signing-key.mdx
new file mode 100644
index 0000000000..9178b92b70
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/signing-key.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/signing-key"
+title: "signing_key"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::signing_key"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `signing_key`
+
+Read the resolved signing key (constructor / set\_signing\_key / SIGNALWIRE\_SIGNING\_KEY env), or std::nullopt when unset. The returned value is the secret — never log it.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::optional< std::string > signing_key() const
+```
+
+## Returns
+
+`std::optional< std::string >`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 470.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/stop.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/stop.mdx
new file mode 100644
index 0000000000..4150e3e928
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/stop.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/stop"
+title: "stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::stop"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `stop`
+
+## Signature
+
+```cpp
+void stop()
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 500.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/supported-internal-filler-names.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/supported-internal-filler-names.mdx
new file mode 100644
index 0000000000..b7ab73b35f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/supported-internal-filler-names.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/supported-internal-filler-names"
+title: "supported_internal_filler_names"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::supported_internal_filler_names"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `supported_internal_filler_names`
+
+The complete set of internal SWAIG function names that accept fillers, matching the SWAIGInternalFiller schema definition. Any name outside this set is silently ignored by the runtime — set\_internal\_fillers and add\_internal\_filler warn if you pass an unknown name.
+Notable absences: change\_step, gather\_submit, and arbitrary user-defined SWAIG function names are NOT supported.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+const std::set< std::string > & supported_internal_filler_names()
+```
+
+## Returns
+
+`const std::set< std::string > &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 330.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/trust-proxy-for-signature.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/trust-proxy-for-signature.mdx
new file mode 100644
index 0000000000..b1784f5e06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/trust-proxy-for-signature.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/trust-proxy-for-signature"
+title: "trust_proxy_for_signature"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::trust_proxy_for_signature"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `trust_proxy_for_signature`
+
+If true, X-Forwarded-Proto / X-Forwarded-Host are honored by the webhook middleware when reconstructing the URL. Default false — proxy headers are spoofable so opt in only when the reverse-proxy is trusted.
+
+## Signature
+
+```cpp
+AgentBase & trust_proxy_for_signature(bool trust)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 476.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/update-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/update-global-data.mdx
new file mode 100644
index 0000000000..eaecc65e1d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/update-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/update-global-data"
+title: "update_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::update_global_data"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `update_global_data`
+
+## Signature
+
+```cpp
+AgentBase & update_global_data(const json & data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentBase &`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 320.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/validate-auth.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/validate-auth.mdx
new file mode 100644
index 0000000000..e4ce7b9d9f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/validate-auth.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/validate-auth"
+title: "validate_auth"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::validate_auth"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "protected"
+---
+# `validate_auth`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool validate_auth(const httplib::Request & req, httplib::Response & res) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 540.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/validate-tool-token.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/validate-tool-token.mdx
new file mode 100644
index 0000000000..5620e92b06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/agent-base/validate-tool-token.mdx
@@ -0,0 +1,49 @@
+---
+slug: "/reference/cpp/signalwire/agent/agent-base/validate-tool-token"
+title: "validate_tool_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::AgentBase::validate_tool_token"
+ parent: "signalwire::agent::AgentBase"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `validate_tool_token`
+
+Validate a per-call SWAIG-function token. Returns false when the function is not registered, when the SessionManager rejects the token, or on any underlying exception.
+Python parity: state\_mixin.StateMixin.validate\_tool\_token — rejects unknown function names up-front and swallows exceptions.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool validate_tool_token(
+ const std::string & function_name,
+ const std::string & token,
+ const std::string & call_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 282.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/debug-event-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/debug-event-callback.mdx
new file mode 100644
index 0000000000..112c08ce70
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/debug-event-callback.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/agent/debug-event-callback"
+title: "DebugEventCallback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::agent::DebugEventCallback"
+ parent: "signalwire::agent"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `DebugEventCallback`
+
+Debug event callback type.
+
+## Signature
+
+```cpp
+typedef std::function< void(const json &event)> DebugEventCallback
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 100.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/dynamic-config-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/dynamic-config-callback.mdx
new file mode 100644
index 0000000000..d19ba5260e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/dynamic-config-callback.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/agent/dynamic-config-callback"
+title: "DynamicConfigCallback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::agent::DynamicConfigCallback"
+ parent: "signalwire::agent"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `DynamicConfigCallback`
+
+Dynamic config callback type.
+
+## Signature
+
+```cpp
+typedef std::function< void( const std::map< std::string, std::string > &query_params, const json &body_params, const std::map< std::string, std::string > &headers, class AgentBase &agent_copy)> DynamicConfigCallback
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 89.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/index.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/index.mdx
new file mode 100644
index 0000000000..a86051789a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/index.mdx
@@ -0,0 +1,73 @@
+---
+slug: "/reference/cpp/signalwire/agent"
+title: "agent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::agent"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+---
+# `agent`
+
+## Signature
+
+```cpp
+namespace signalwire::agent
+```
+
+## Functions
+
+
+
+
+
+## Type Aliases
+
+
+
+ Debug event callback type.
+
+
+
+ Dynamic config callback type.
+
+
+
+
+
+ Back-compat alias for the original signalwire::agent::PomSection type. The implementation now lives in signalwire::pom::Section — see signalwire/pom/pom.hpp for the full API (render\_markdown, render\_xml, numbered/numberedBullets fields, etc.). New code should use signalwire::pom::Section directly.
+
+
+
+ Summary callback type.
+
+
+
+## Classes
+
+
+
+
+
+ Language configuration.
+
+
+
+ Pronunciation rule.
+
+
+
+ SWAIG query parameters.
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/json.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/json.mdx
new file mode 100644
index 0000000000..97b434e4ec
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/agent/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::agent::json"
+ parent: "signalwire::agent"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 33.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/language-config/index.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/language-config/index.mdx
new file mode 100644
index 0000000000..35d86da6c7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/language-config/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/agent/language-config"
+title: "LanguageConfig"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::agent::LanguageConfig"
+ parent: "signalwire::agent"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `LanguageConfig`
+
+Language configuration.
+
+## Signature
+
+```cpp
+struct signalwire::agent::LanguageConfig
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+ Per-language params dict (engine-specific tuning, voice settings, etc.). Emitted as the language object's params key in SWML only when non-empty — matches Python reference commit 029ca6f. Treated as "unset" when null OR when an empty object.
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 43.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/language-config/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/language-config/to-json.mdx
new file mode 100644
index 0000000000..af37c189df
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/language-config/to-json.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/language-config/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::LanguageConfig::to_json"
+ parent: "signalwire::agent::LanguageConfig"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 56.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/pom-section.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/pom-section.mdx
new file mode 100644
index 0000000000..77eea8a26c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/pom-section.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/agent/pom-section"
+title: "PomSection"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::agent::PomSection"
+ parent: "signalwire::agent"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `PomSection`
+
+Back-compat alias for the original signalwire::agent::PomSection type. The implementation now lives in signalwire::pom::Section — see signalwire/pom/pom.hpp for the full API (render\_markdown, render\_xml, numbered/numberedBullets fields, etc.). New code should use signalwire::pom::Section directly.
+
+## Signature
+
+```cpp
+typedef signalwire::pom::Section PomSection
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 40.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/pronunciation/index.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/pronunciation/index.mdx
new file mode 100644
index 0000000000..457458cd4e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/pronunciation/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/agent/pronunciation"
+title: "Pronunciation"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::agent::Pronunciation"
+ parent: "signalwire::agent"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `Pronunciation`
+
+Pronunciation rule.
+
+## Signature
+
+```cpp
+struct signalwire::agent::Pronunciation
+```
+
+## Properties
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 74.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/pronunciation/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/pronunciation/to-json.mdx
new file mode 100644
index 0000000000..e528fa26fe
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/pronunciation/to-json.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/agent/pronunciation/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::agent::Pronunciation::to_json"
+ parent: "signalwire::agent::Pronunciation"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 79.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/sorted-list-str.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/sorted-list-str.mdx
new file mode 100644
index 0000000000..2b8777de81
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/sorted-list-str.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/agent/sorted-list-str"
+title: "sorted_list_str"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::agent::sorted_list_str"
+ parent: "signalwire::agent"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/agent/agent_base.cpp"
+ visibility: "public"
+---
+# `sorted_list_str`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+std::string sorted_list_str(const std::set< std::string > & s)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/agent/agent_base.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/agent/agent_base.cpp)
+
+Line 457.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/summary-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/summary-callback.mdx
new file mode 100644
index 0000000000..816964231d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/summary-callback.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/agent/summary-callback"
+title: "SummaryCallback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::agent::SummaryCallback"
+ parent: "signalwire::agent"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `SummaryCallback`
+
+Summary callback type.
+
+## Signature
+
+```cpp
+typedef std::function< void(const json &summary, const json &raw_data)> SummaryCallback
+```
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 97.
diff --git a/fern/products/sdk-reference/cpp/signalwire/agent/swaig-query-param/index.mdx b/fern/products/sdk-reference/cpp/signalwire/agent/swaig-query-param/index.mdx
new file mode 100644
index 0000000000..db41aa7233
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/agent/swaig-query-param/index.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/agent/swaig-query-param"
+title: "SwaigQueryParam"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::agent::SwaigQueryParam"
+ parent: "signalwire::agent"
+ module: "signalwire.agent"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+ visibility: "public"
+---
+# `SwaigQueryParam`
+
+SWAIG query parameters.
+
+## Signature
+
+```cpp
+struct signalwire::agent::SwaigQueryParam
+```
+
+## Properties
+
+
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 103.
diff --git a/fern/products/sdk-reference/cpp/signalwire/base64-decode.mdx b/fern/products/sdk-reference/cpp/signalwire/base64-decode.mdx
new file mode 100644
index 0000000000..c59b86c11f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/base64-decode.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/base64-decode"
+title: "base64_decode"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::base64_decode"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp"
+ visibility: "public"
+---
+# `base64_decode`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+std::string base64_decode(const std::string & input)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/common.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp)
+
+Line 115.
diff --git a/fern/products/sdk-reference/cpp/signalwire/base64-encode.mdx b/fern/products/sdk-reference/cpp/signalwire/base64-encode.mdx
new file mode 100644
index 0000000000..891ced2ebb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/base64-encode.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/base64-encode"
+title: "base64_encode"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::base64_encode"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp"
+ visibility: "public"
+---
+# `base64_encode`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+std::string base64_encode(const std::string & input)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/common.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp)
+
+Line 97.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/add-context.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/add-context.mdx
new file mode 100644
index 0000000000..df6df92cdb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/add-context.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder/add-context"
+title: "add_context"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder::add_context"
+ parent: "signalwire::contexts::ContextBuilder"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_context`
+
+Add a new context.
+
+## Signature
+
+```cpp
+Context & add_context(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 405.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/attach-tool-name-supplier.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/attach-tool-name-supplier.mdx
new file mode 100644
index 0000000000..35a3ef5c88
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/attach-tool-name-supplier.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder/attach-tool-name-supplier"
+title: "attach_tool_name_supplier"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder::attach_tool_name_supplier"
+ parent: "signalwire::contexts::ContextBuilder"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `attach_tool_name_supplier`
+
+Attach a tool-name supplier so validate() can check user-defined SWAIG tool names against reserved\_native\_tool\_names(). AgentBase::define\_contexts() wires this up automatically.
+
+## Signature
+
+```cpp
+ContextBuilder & attach_tool_name_supplier(
+ std::function< std::vector< std::string >()> supplier
+)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`ContextBuilder &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 414.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/context-builder.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/context-builder.mdx
new file mode 100644
index 0000000000..ec270a7af5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/context-builder.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder/context-builder"
+title: "ContextBuilder"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder::ContextBuilder"
+ parent: "signalwire::contexts::ContextBuilder"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `ContextBuilder`
+
+## Signature
+
+```cpp
+void ContextBuilder()
+```
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 399.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/get-context.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/get-context.mdx
new file mode 100644
index 0000000000..e7630ed0cd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/get-context.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder/get-context"
+title: "get_context"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder::get_context"
+ parent: "signalwire::contexts::ContextBuilder"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `get_context`
+
+Get an existing context.
+
+## Signature
+
+```cpp
+Context * get_context(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context *`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 408.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/has-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/has-contexts.mdx
new file mode 100644
index 0000000000..a433f6a944
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/has-contexts.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder/has-contexts"
+title: "has_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder::has_contexts"
+ parent: "signalwire::contexts::ContextBuilder"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `has_contexts`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool has_contexts() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 429.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/index.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/index.mdx
new file mode 100644
index 0000000000..29407343a8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/index.mdx
@@ -0,0 +1,72 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder"
+title: "ContextBuilder"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder"
+ parent: "signalwire::contexts"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `ContextBuilder`
+
+Builder for multi-step, multi-context AI agent workflows.
+A ContextBuilder owns one or more Contexts; each Context owns an ordered list of Steps. Only one context and one step is active at a time. Per chat turn, the runtime injects the current step's instructions as a system message, then asks the LLM for a response.
+
+Native tools auto-injected by the runtimeWhen a step (or its enclosing context) declares valid\_steps or valid\_contexts, the runtime auto-injects two native tools so the model can navigate the flow:
+
+next\_step(step: enum) — present when valid\_steps is set
+change\_context(context: enum) — present when valid\_contexts is set
+
+A third native tool — gather\_submit — is injected during gather\_info questioning. These three names are reserved: validate() rejects any agent that defines a SWAIG tool with one of them. See reserved\_native\_tool\_names().
+
+Function whitelisting (Step::set\_functions)Each step may declare a functions whitelist. The whitelist is applied in-memory at the start of each LLM turn. CRITICALLY: if a step does NOT declare a functions field, it INHERITS the previous step's active set. See Step::set\_functions for details and examples.
+
+## Signature
+
+```cpp
+class signalwire::contexts::ContextBuilder
+```
+
+## Methods
+
+
+
+ Add a new context.
+
+
+
+ Attach a tool-name supplier so validate() can check user-defined SWAIG tool names against reserved\_native\_tool\_names(). AgentBase::define\_contexts() wires this up automatically.
+
+
+
+
+
+ Get an existing context.
+
+
+
+
+
+ Remove all contexts, returning the builder to its initial state.
+
+
+
+ Serialize all contexts to JSON.
+
+
+
+ Validate all contexts. Checks: At least one context is defined A single context must be named "default" Every context has at least one step gather\_info completion\_action targets an existing step No user-defined SWAIG tool collides with a reserved native name (via the attached tool-name supplier)
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 397.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/reset.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/reset.mdx
new file mode 100644
index 0000000000..51c1c6fe87
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/reset.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder/reset"
+title: "reset"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder::reset"
+ parent: "signalwire::contexts::ContextBuilder"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `reset`
+
+Remove all contexts, returning the builder to its initial state.
+
+## Signature
+
+```cpp
+ContextBuilder & reset()
+```
+
+## Returns
+
+`ContextBuilder &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 402.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/to-json.mdx
new file mode 100644
index 0000000000..91d4b1c931
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/to-json.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder::to_json"
+ parent: "signalwire::contexts::ContextBuilder"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+Serialize all contexts to JSON.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 427.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/validate.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/validate.mdx
new file mode 100644
index 0000000000..122e597daa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context-builder/validate.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context-builder/validate"
+title: "validate"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::ContextBuilder::validate"
+ parent: "signalwire::contexts::ContextBuilder"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `validate`
+
+Validate all contexts. Checks:
+At least one context is defined
+A single context must be named "default"
+Every context has at least one step
+gather\_info completion\_action targets an existing step
+No user-defined SWAIG tool collides with a reserved native name (via the attached tool-name supplier)
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+void validate() const
+```
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 424.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-bullets.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-bullets.mdx
new file mode 100644
index 0000000000..f07703e7a0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-bullets.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/add-bullets"
+title: "add_bullets"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::add_bullets"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_bullets`
+
+Add a POM section with bullets to the context prompt.
+
+## Signature
+
+```cpp
+Context & add_bullets(
+ const std::string & title,
+ const std::vector< std::string > & bullets
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 310.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-enter-filler.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-enter-filler.mdx
new file mode 100644
index 0000000000..e98e355a1c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-enter-filler.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/add-enter-filler"
+title: "add_enter_filler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::add_enter_filler"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_enter_filler`
+
+Add enter filler for a specific language.
+
+## Signature
+
+```cpp
+Context & add_enter_filler(
+ const std::string & lang,
+ const std::vector< std::string > & fillers
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 325.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-exit-filler.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-exit-filler.mdx
new file mode 100644
index 0000000000..151acedaff
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-exit-filler.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/add-exit-filler"
+title: "add_exit_filler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::add_exit_filler"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_exit_filler`
+
+Add exit filler for a specific language.
+
+## Signature
+
+```cpp
+Context & add_exit_filler(
+ const std::string & lang,
+ const std::vector< std::string > & fillers
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 328.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-section.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-section.mdx
new file mode 100644
index 0000000000..f7f28ddff2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-section.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/add-section"
+title: "add_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::add_section"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_section`
+
+Add a POM section to the context prompt.
+
+## Signature
+
+```cpp
+Context & add_section(const std::string & title, const std::string & body)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 307.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-step.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-step.mdx
new file mode 100644
index 0000000000..def1e97502
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-step.mdx
@@ -0,0 +1,55 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/add-step"
+title: "add_step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::add_step"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_step`
+
+Add a new step to this context (returns reference for chaining).
+
+## Signature
+
+```cpp
+Step & add_step(
+ const std::string & name,
+ const std::string & task = "",
+ const std::vector< std::string > & bullets = {},
+ const std::string & criteria = "",
+ const std::optional< std::variant< std::string, std::vector< std::string > > > & functions = std::nullopt,
+ const std::vector< std::string > & valid_steps = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 240.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-system-bullets.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-system-bullets.mdx
new file mode 100644
index 0000000000..47559d452f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-system-bullets.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/add-system-bullets"
+title: "add_system_bullets"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::add_system_bullets"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_system_bullets`
+
+Add a POM section with bullets to the system prompt.
+
+## Signature
+
+```cpp
+Context & add_system_bullets(
+ const std::string & title,
+ const std::vector< std::string > & bullets
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 316.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-system-section.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-system-section.mdx
new file mode 100644
index 0000000000..4dcc6bea2e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/add-system-section.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/add-system-section"
+title: "add_system_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::add_system_section"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_system_section`
+
+Add a POM section to the system prompt.
+
+## Signature
+
+```cpp
+Context & add_system_section(
+ const std::string & title,
+ const std::string & body
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 313.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/context.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/context.mdx
new file mode 100644
index 0000000000..8a91d9d187
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/context.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/context"
+title: "Context"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::Context"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `Context`
+
+## Signature
+
+
+
+ ```cpp
+ void Context()
+ ```
+
+
+
+ ```cpp
+ void Context(const std::string & name)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 236.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/get-step.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/get-step.mdx
new file mode 100644
index 0000000000..6f6df6f8e1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/get-step.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/get-step"
+title: "get_step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::get_step"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `get_step`
+
+Get an existing step by name.
+
+## Signature
+
+```cpp
+Step * get_step(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step *`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 248.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/has-steps.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/has-steps.mdx
new file mode 100644
index 0000000000..66b24f10ba
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/has-steps.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/has-steps"
+title: "has_steps"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::has_steps"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `has_steps`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool has_steps() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 334.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/index.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/index.mdx
new file mode 100644
index 0000000000..a7df86b3fa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/index.mdx
@@ -0,0 +1,138 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context"
+title: "Context"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context"
+ parent: "signalwire::contexts"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `Context`
+
+## Signature
+
+```cpp
+class signalwire::contexts::Context
+```
+
+## Methods
+
+
+
+ Add a POM section with bullets to the context prompt.
+
+
+
+ Add enter filler for a specific language.
+
+
+
+ Add exit filler for a specific language.
+
+
+
+ Add a POM section to the context prompt.
+
+
+
+ Add a new step to this context (returns reference for chaining).
+
+
+
+ Add a POM section with bullets to the system prompt.
+
+
+
+ Add a POM section to the system prompt.
+
+
+
+
+
+ Get an existing step by name.
+
+
+
+
+
+
+
+ Move a step to a specific position.
+
+
+
+
+
+ Remove a step.
+
+
+
+ Set consolidate.
+
+
+
+ Set enter fillers.
+
+
+
+ Set exit fillers.
+
+
+
+ Set full reset.
+
+
+
+ Set which step the context starts on when entered. By default, a context starts on its first step (index 0). Use this to skip a preamble step on re-entry via change\_context.
+
+
+
+ Mark this context as isolated — entering it wipes conversation history. When isolated=true and the context is entered via change\_context, the runtime wipes the conversation array. The model starts fresh with only the new context's system\_prompt + step instructions, with no memory of prior turns. EXCEPTION — reset overrides the wipe: If the context also has a reset configuration (via set\_consolidate or set\_full\_reset), the wipe is skipped in favor of the reset behavior. Use reset with consolidate=true to summarize prior history into a single message instead of dropping it entirely. Use cases: switching to a sensitive billing flow that should not see prior small-talk; handing off to a different agent persona; resetting after a long off-topic detour.
+
+
+
+ Set post prompt override.
+
+
+
+ Set prompt text directly.
+
+
+
+ Set system prompt (for context switching).
+
+
+
+ Set user prompt.
+
+
+
+ Set valid contexts for navigation.
+
+
+
+ Set valid steps for all steps in this context.
+
+
+
+
+
+
+
+ Serialize to JSON.
+
+
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 234.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/initial-step.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/initial-step.mdx
new file mode 100644
index 0000000000..2e32476a2e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/initial-step.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/initial-step"
+title: "initial_step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::initial_step"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `initial_step`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::optional< std::string > & initial_step() const
+```
+
+## Returns
+
+`const std::optional< std::string > &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 337.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/move-step.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/move-step.mdx
new file mode 100644
index 0000000000..9fff978c42
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/move-step.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/move-step"
+title: "move_step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::move_step"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `move_step`
+
+Move a step to a specific position.
+
+## Signature
+
+```cpp
+Context & move_step(const std::string & name, int position)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 254.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/name.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/name.mdx
new file mode 100644
index 0000000000..0e302726c6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/name"
+title: "name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::name"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `name`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & name() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 333.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/remove-step.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/remove-step.mdx
new file mode 100644
index 0000000000..f531cb779a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/remove-step.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/remove-step"
+title: "remove_step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::remove_step"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `remove_step`
+
+Remove a step.
+
+## Signature
+
+```cpp
+Context & remove_step(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 251.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-consolidate.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-consolidate.mdx
new file mode 100644
index 0000000000..e27f3e6d76
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-consolidate.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-consolidate"
+title: "set_consolidate"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_consolidate"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_consolidate`
+
+Set consolidate.
+
+## Signature
+
+```cpp
+Context & set_consolidate(bool c)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 275.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-enter-fillers.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-enter-fillers.mdx
new file mode 100644
index 0000000000..9e5c0be1a5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-enter-fillers.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-enter-fillers"
+title: "set_enter_fillers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_enter_fillers"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_enter_fillers`
+
+Set enter fillers.
+
+## Signature
+
+```cpp
+Context & set_enter_fillers(const json & fillers)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 319.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-exit-fillers.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-exit-fillers.mdx
new file mode 100644
index 0000000000..d44ec2d31c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-exit-fillers.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-exit-fillers"
+title: "set_exit_fillers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_exit_fillers"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_exit_fillers`
+
+Set exit fillers.
+
+## Signature
+
+```cpp
+Context & set_exit_fillers(const json & fillers)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 322.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-full-reset.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-full-reset.mdx
new file mode 100644
index 0000000000..4f28d55021
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-full-reset.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-full-reset"
+title: "set_full_reset"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_full_reset"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_full_reset`
+
+Set full reset.
+
+## Signature
+
+```cpp
+Context & set_full_reset(bool fr)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 278.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-initial-step.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-initial-step.mdx
new file mode 100644
index 0000000000..ee7efdb9d6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-initial-step.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-initial-step"
+title: "set_initial_step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_initial_step"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_initial_step`
+
+Set which step the context starts on when entered.
+By default, a context starts on its first step (index 0). Use this to skip a preamble step on re-entry via change\_context.
+
+## Signature
+
+```cpp
+Context & set_initial_step(const std::string & step_name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 260.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-isolated.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-isolated.mdx
new file mode 100644
index 0000000000..8ec870fa60
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-isolated.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-isolated"
+title: "set_isolated"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_isolated"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_isolated`
+
+Mark this context as isolated — entering it wipes conversation history.
+When isolated=true and the context is entered via change\_context, the runtime wipes the conversation array. The model starts fresh with only the new context's system\_prompt + step instructions, with no memory of prior turns.
+EXCEPTION — reset overrides the wipe: If the context also has a reset configuration (via set\_consolidate or set\_full\_reset), the wipe is skipped in favor of the reset behavior. Use reset with consolidate=true to summarize prior history into a single message instead of dropping it entirely.
+Use cases: switching to a sensitive billing flow that should not see prior small-talk; handing off to a different agent persona; resetting after a long off-topic detour.
+
+## Signature
+
+```cpp
+Context & set_isolated(bool isolated)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 301.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-post-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-post-prompt.mdx
new file mode 100644
index 0000000000..0e094adcdf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-post-prompt.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-post-prompt"
+title: "set_post_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_post_prompt"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_post_prompt`
+
+Set post prompt override.
+
+## Signature
+
+```cpp
+Context & set_post_prompt(const std::string & pp)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 269.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-prompt.mdx
new file mode 100644
index 0000000000..88abef0dca
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-prompt.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-prompt"
+title: "set_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_prompt"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_prompt`
+
+Set prompt text directly.
+
+## Signature
+
+```cpp
+Context & set_prompt(const std::string & prompt)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 304.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-system-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-system-prompt.mdx
new file mode 100644
index 0000000000..56d1644543
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-system-prompt.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-system-prompt"
+title: "set_system_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_system_prompt"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_system_prompt`
+
+Set system prompt (for context switching).
+
+## Signature
+
+```cpp
+Context & set_system_prompt(const std::string & sp)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 272.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-user-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-user-prompt.mdx
new file mode 100644
index 0000000000..64663d538c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-user-prompt.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-user-prompt"
+title: "set_user_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_user_prompt"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_user_prompt`
+
+Set user prompt.
+
+## Signature
+
+```cpp
+Context & set_user_prompt(const std::string & up)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 281.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-valid-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-valid-contexts.mdx
new file mode 100644
index 0000000000..393154cbca
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-valid-contexts.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-valid-contexts"
+title: "set_valid_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_valid_contexts"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_valid_contexts`
+
+Set valid contexts for navigation.
+
+## Signature
+
+```cpp
+Context & set_valid_contexts(const std::vector< std::string > & ctxs)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 263.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-valid-steps.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-valid-steps.mdx
new file mode 100644
index 0000000000..9ac2f2cf99
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/set-valid-steps.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/set-valid-steps"
+title: "set_valid_steps"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::set_valid_steps"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_valid_steps`
+
+Set valid steps for all steps in this context.
+
+## Signature
+
+```cpp
+Context & set_valid_steps(const std::vector< std::string > & steps)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Context &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 266.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/step-order.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/step-order.mdx
new file mode 100644
index 0000000000..959a4a3a38
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/step-order.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/step-order"
+title: "step_order"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::step_order"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `step_order`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::vector< std::string > & step_order() const
+```
+
+## Returns
+
+`const std::vector< std::string > &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 336.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/steps.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/steps.mdx
new file mode 100644
index 0000000000..48c4fe231e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/steps.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/steps"
+title: "steps"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::steps"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `steps`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::map< std::string, Step > & steps() const
+```
+
+## Returns
+
+`const std::map< std::string, Step > &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 335.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/to-json.mdx
new file mode 100644
index 0000000000..9b75cd7314
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/to-json.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::to_json"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+Serialize to JSON.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 331.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/context/valid-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/context/valid-contexts.mdx
new file mode 100644
index 0000000000..33ce39d614
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/context/valid-contexts.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/context/valid-contexts"
+title: "valid_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Context::valid_contexts"
+ parent: "signalwire::contexts::Context"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `valid_contexts`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::optional< std::vector< std::string > > & valid_contexts() const
+```
+
+## Returns
+
+`const std::optional< std::vector< std::string > > &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 338.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/add-question.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/add-question.mdx
new file mode 100644
index 0000000000..f880dc600d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/add-question.mdx
@@ -0,0 +1,53 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-info/add-question"
+title: "add_question"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherInfo::add_question"
+ parent: "signalwire::contexts::GatherInfo"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_question`
+
+## Signature
+
+```cpp
+GatherInfo & add_question(
+ const std::string & key,
+ const std::string & question,
+ const std::string & type = "string",
+ bool confirm = false,
+ const std::string & prompt = "",
+ const std::vector< std::string > & functions = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`GatherInfo &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 65.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/completion-action.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/completion-action.mdx
new file mode 100644
index 0000000000..80cd60a7de
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/completion-action.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-info/completion-action"
+title: "completion_action"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherInfo::completion_action"
+ parent: "signalwire::contexts::GatherInfo"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `completion_action`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & completion_action() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 74.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/gather-info.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/gather-info.mdx
new file mode 100644
index 0000000000..d35055e3b0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/gather-info.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-info/gather-info"
+title: "GatherInfo"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherInfo::GatherInfo"
+ parent: "signalwire::contexts::GatherInfo"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `GatherInfo`
+
+## Signature
+
+```cpp
+void GatherInfo(
+ const std::string & output_key = "",
+ const std::string & completion_action = "",
+ const std::string & prompt = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 61.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/has-questions.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/has-questions.mdx
new file mode 100644
index 0000000000..f05deb5d65
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/has-questions.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-info/has-questions"
+title: "has_questions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherInfo::has_questions"
+ parent: "signalwire::contexts::GatherInfo"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `has_questions`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool has_questions() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 72.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/index.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/index.mdx
new file mode 100644
index 0000000000..55112d5092
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-info"
+title: "GatherInfo"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherInfo"
+ parent: "signalwire::contexts"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `GatherInfo`
+
+## Signature
+
+```cpp
+class signalwire::contexts::GatherInfo
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 59.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/questions.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/questions.mdx
new file mode 100644
index 0000000000..34a93646cd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/questions.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-info/questions"
+title: "questions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherInfo::questions"
+ parent: "signalwire::contexts::GatherInfo"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `questions`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::vector< GatherQuestion > & questions() const
+```
+
+## Returns
+
+`const std::vector< GatherQuestion > &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 73.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/to-json.mdx
new file mode 100644
index 0000000000..a0772fa8cc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-info/to-json.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-info/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherInfo::to_json"
+ parent: "signalwire::contexts::GatherInfo"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 70.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/gather-question.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/gather-question.mdx
new file mode 100644
index 0000000000..529870d403
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/gather-question.mdx
@@ -0,0 +1,49 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-question/gather-question"
+title: "GatherQuestion"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherQuestion::GatherQuestion"
+ parent: "signalwire::contexts::GatherQuestion"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `GatherQuestion`
+
+## Signature
+
+```cpp
+void GatherQuestion(
+ const std::string & key,
+ const std::string & question,
+ const std::string & type = "string",
+ bool confirm = false,
+ const std::string & prompt = "",
+ const std::vector< std::string > & functions = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/index.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/index.mdx
new file mode 100644
index 0000000000..d11bebc00d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/index.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-question"
+title: "GatherQuestion"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherQuestion"
+ parent: "signalwire::contexts"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `GatherQuestion`
+
+## Signature
+
+```cpp
+class signalwire::contexts::GatherQuestion
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/key.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/key.mdx
new file mode 100644
index 0000000000..6373853431
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/key.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-question/key"
+title: "key"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherQuestion::key"
+ parent: "signalwire::contexts::GatherQuestion"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `key`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & key() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 44.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/to-json.mdx
new file mode 100644
index 0000000000..5dbc57217c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/gather-question/to-json.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/gather-question/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::GatherQuestion::to_json"
+ parent: "signalwire::contexts::GatherQuestion"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/index.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/index.mdx
new file mode 100644
index 0000000000..0bc3c4e6c9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/index.mdx
@@ -0,0 +1,63 @@
+---
+slug: "/reference/cpp/signalwire/contexts"
+title: "contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::contexts"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+---
+# `contexts`
+
+## Signature
+
+```cpp
+namespace signalwire::contexts
+```
+
+## Constants
+
+
+
+
+
+## Functions
+
+
+
+ Reserved tool names auto-injected by the runtime when contexts/steps are present. User-defined SWAIG tools must not collide with these names: next\_step / change\_context are injected when valid\_steps or valid\_contexts is set so the model can navigate the flow. gather\_submit is injected while a step's gather\_info is collecting answers. ContextBuilder::validate() rejects any agent that registers a user tool sharing one of these names.
+
+
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+
+
+ Builder for multi-step, multi-context AI agent workflows. A ContextBuilder owns one or more Contexts; each Context owns an ordered list of Steps. Only one context and one step is active at a time. Per chat turn, the runtime injects the current step's instructions as a system message, then asks the LLM for a response.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/json.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/json.mdx
new file mode 100644
index 0000000000..4c3a548a2a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/contexts/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::json"
+ parent: "signalwire::contexts"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/reserved-native-tool-names.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/reserved-native-tool-names.mdx
new file mode 100644
index 0000000000..a4eed2d68f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/reserved-native-tool-names.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/contexts/reserved-native-tool-names"
+title: "reserved_native_tool_names"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::reserved_native_tool_names"
+ parent: "signalwire::contexts"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/contexts/contexts.cpp"
+ visibility: "public"
+---
+# `reserved_native_tool_names`
+
+Reserved tool names auto-injected by the runtime when contexts/steps are present. User-defined SWAIG tools must not collide with these names:
+next\_step / change\_context are injected when valid\_steps or valid\_contexts is set so the model can navigate the flow.
+gather\_submit is injected while a step's gather\_info is collecting answers. ContextBuilder::validate() rejects any agent that registers a user tool sharing one of these names.
+
+## Signature
+
+```cpp
+const std::set< std::string > & reserved_native_tool_names()
+```
+
+## Returns
+
+`const std::set< std::string > &`
+
+## Source
+
+[`src/contexts/contexts.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/contexts/contexts.cpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-bullets.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-bullets.mdx
new file mode 100644
index 0000000000..ad493649c1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-bullets.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/add-bullets"
+title: "add_bullets"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::add_bullets"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_bullets`
+
+Add a POM section with bullet points.
+
+## Signature
+
+```cpp
+Step & add_bullets(
+ const std::string & title,
+ const std::vector< std::string > & bullets
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-gather-question.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-gather-question.mdx
new file mode 100644
index 0000000000..ce2ee9f00f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-gather-question.mdx
@@ -0,0 +1,62 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/add-gather-question"
+title: "add_gather_question"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::add_gather_question"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_gather_question`
+
+Add a gather question (set\_gather\_info must be called first).
+IMPORTANT — gather mode locks function access: While the model is asking gather questions, the runtime forcibly deactivates ALL of the step's other functions. The only callable tools during a gather question are:
+
+gather\_submit (the native answer-submission tool)
+Whatever names you pass in this question's functions argument
+
+next\_step and change\_context are also filtered out — the model cannot navigate away until the gather completes. This is by design: it forces a tight ask → submit → next-question loop.
+If a question needs to call out to a tool (e.g. validate an email, geocode a ZIP), list that tool name in this question's functions argument. Functions listed here are active ONLY for this question.
+
+## Signature
+
+```cpp
+Step & add_gather_question(
+ const std::string & key,
+ const std::string & question,
+ const std::string & type = "string",
+ bool confirm = false,
+ const std::string & prompt = "",
+ const std::vector< std::string > & functions = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 186.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-section.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-section.mdx
new file mode 100644
index 0000000000..ab386c4a09
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/add-section.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/add-section"
+title: "add_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::add_section"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `add_section`
+
+Add a POM section to the step.
+
+## Signature
+
+```cpp
+Step & add_section(const std::string & title, const std::string & body)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 96.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/clear-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/clear-sections.mdx
new file mode 100644
index 0000000000..7318650331
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/clear-sections.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/clear-sections"
+title: "clear_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::clear_sections"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `clear_sections`
+
+Clear all sections and text.
+
+## Signature
+
+```cpp
+Step & clear_sections()
+```
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 192.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/gather-info.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/gather-info.mdx
new file mode 100644
index 0000000000..6e3189b5a7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/gather-info.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/gather-info"
+title: "gather_info"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::gather_info"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `gather_info`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::optional< GatherInfo > & gather_info() const
+```
+
+## Returns
+
+`const std::optional< GatherInfo > &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 206.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/index.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/index.mdx
new file mode 100644
index 0000000000..e147bd50b0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/index.mdx
@@ -0,0 +1,108 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step"
+title: "Step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step"
+ parent: "signalwire::contexts"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `Step`
+
+## Signature
+
+```cpp
+class signalwire::contexts::Step
+```
+
+## Methods
+
+
+
+ Add a POM section with bullet points.
+
+
+
+ Add a gather question (set\_gather\_info must be called first). IMPORTANT — gather mode locks function access: While the model is asking gather questions, the runtime forcibly deactivates ALL of the step's other functions. The only callable tools during a gather question are:
+
+
+
+ Add a POM section to the step.
+
+
+
+ Clear all sections and text.
+
+
+
+
+
+
+
+ Mark this step as terminal for the step flow. IMPORTANT: end=true does NOT end the conversation or hang up the call. It exits step mode entirely after this step executes — clearing the steps list, current step index, valid\_steps, and valid\_contexts. The agent keeps running, but operates only under the base system prompt and the context-level prompt; no more step instructions are injected and no more next\_step tool is offered. To actually end the call, call a hangup tool or define a hangup hook.
+
+
+
+ Set which non-internal functions are callable while this step is active. IMPORTANT — inheritance behavior: If you do NOT call this method, the step inherits whichever function set was active on the previous step (or the previous context's last step). The server-side runtime only resets the active set when a step explicitly declares its functions field. This is the most common source of bugs in multi-step agents: forgetting set\_functions on a later step lets the previous step's tools leak through. Best practice is to call set\_functions explicitly on every step that should differ from the previous one. Keep the per-step active set small: LLM tool selection accuracy degrades noticeably past ~7-8 simultaneously-active tools per call. Use per-step whitelisting to partition large tool collections. Internal functions (e.g. gather\_submit, hangup hook) are ALWAYS protected and cannot be deactivated by this whitelist. The native navigation tools next\_step and change\_context are injected automatically when set\_valid\_steps / set\_valid\_contexts is used; they are not affected by this list.
+
+
+
+ Enable info gathering on this step.
+
+
+
+
+
+
+
+ Set reset parameters for context switching.
+
+
+
+
+
+ Set whether to auto-advance to the next step.
+
+
+
+ Set whether to skip waiting for user input.
+
+
+
+ Set step completion criteria.
+
+
+
+ Set the step's prompt text directly.
+
+
+
+ Set which contexts can be navigated to from this step.
+
+
+
+ Set which steps can be navigated to from this step.
+
+
+
+
+
+ Serialize to JSON.
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 87.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/name.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/name.mdx
new file mode 100644
index 0000000000..7e70b325f9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/name"
+title: "name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::name"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `name`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & name() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 203.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-end.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-end.mdx
new file mode 100644
index 0000000000..320a106e86
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-end.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-end"
+title: "set_end"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_end"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_end`
+
+Mark this step as terminal for the step flow.
+IMPORTANT: end=true does NOT end the conversation or hang up the call. It exits step mode entirely after this step executes — clearing the steps list, current step index, valid\_steps, and valid\_contexts. The agent keeps running, but operates only under the base system prompt and the context-level prompt; no more step instructions are injected and no more next\_step tool is offered.
+To actually end the call, call a hangup tool or define a hangup hook.
+
+## Signature
+
+```cpp
+Step & set_end(bool end)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 153.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-functions.mdx
new file mode 100644
index 0000000000..934396485e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-functions.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-functions"
+title: "set_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_functions"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_functions`
+
+Set which non-internal functions are callable while this step is active.
+IMPORTANT — inheritance behavior: If you do NOT call this method, the step inherits whichever function set was active on the previous step (or the previous context's last step). The server-side runtime only resets the active set when a step explicitly declares its functions field. This is the most common source of bugs in multi-step agents: forgetting set\_functions on a later step lets the previous step's tools leak through. Best practice is to call set\_functions explicitly on every step that should differ from the previous one.
+Keep the per-step active set small: LLM tool selection accuracy degrades noticeably past ~7-8 simultaneously-active tools per call. Use per-step whitelisting to partition large tool collections.
+Internal functions (e.g. gather\_submit, hangup hook) are ALWAYS protected and cannot be deactivated by this whitelist. The native navigation tools next\_step and change\_context are injected automatically when set\_valid\_steps / set\_valid\_contexts is used; they are not affected by this list.
+
+functions
+
+One of:
+std::vector[std::string](std::string) — whitelist of allowed names
+empty std::vector — disable all user functions
+std::string "none" — synonym for the empty vector
+
+## Signature
+
+```cpp
+Step & set_functions(
+ const std::variant< std::string, std::vector< std::string > > & functions
+)
+```
+
+## Parameters
+
+
+ One of: std::vector[std::string](std::string) — whitelist of allowed names empty std::vector — disable all user functions std::string "none" — synonym for the empty vector
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 133.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-gather-info.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-gather-info.mdx
new file mode 100644
index 0000000000..b3925192f4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-gather-info.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-gather-info"
+title: "set_gather_info"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_gather_info"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_gather_info`
+
+Enable info gathering on this step.
+
+## Signature
+
+```cpp
+Step & set_gather_info(
+ const std::string & output_key = "",
+ const std::string & completion_action = "",
+ const std::string & prompt = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 162.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-consolidate.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-consolidate.mdx
new file mode 100644
index 0000000000..35f8d3be44
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-consolidate.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-reset-consolidate"
+title: "set_reset_consolidate"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_reset_consolidate"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_reset_consolidate`
+
+## Signature
+
+```cpp
+Step & set_reset_consolidate(bool c)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 197.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-full-reset.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-full-reset.mdx
new file mode 100644
index 0000000000..7a24079acc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-full-reset.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-reset-full-reset"
+title: "set_reset_full_reset"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_reset_full_reset"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_reset_full_reset`
+
+## Signature
+
+```cpp
+Step & set_reset_full_reset(bool fr)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 198.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-system-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-system-prompt.mdx
new file mode 100644
index 0000000000..0bfbf71737
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-system-prompt.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-reset-system-prompt"
+title: "set_reset_system_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_reset_system_prompt"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_reset_system_prompt`
+
+Set reset parameters for context switching.
+
+## Signature
+
+```cpp
+Step & set_reset_system_prompt(const std::string & sp)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 195.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-user-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-user-prompt.mdx
new file mode 100644
index 0000000000..4ecf8bd389
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-reset-user-prompt.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-reset-user-prompt"
+title: "set_reset_user_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_reset_user_prompt"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_reset_user_prompt`
+
+## Signature
+
+```cpp
+Step & set_reset_user_prompt(const std::string & up)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 196.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-skip-to-next-step.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-skip-to-next-step.mdx
new file mode 100644
index 0000000000..3ebc552f71
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-skip-to-next-step.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-skip-to-next-step"
+title: "set_skip_to_next_step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_skip_to_next_step"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_skip_to_next_step`
+
+Set whether to auto-advance to the next step.
+
+## Signature
+
+```cpp
+Step & set_skip_to_next_step(bool skip)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 159.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-skip-user-turn.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-skip-user-turn.mdx
new file mode 100644
index 0000000000..260f4a6d2c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-skip-user-turn.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-skip-user-turn"
+title: "set_skip_user_turn"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_skip_user_turn"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_skip_user_turn`
+
+Set whether to skip waiting for user input.
+
+## Signature
+
+```cpp
+Step & set_skip_user_turn(bool skip)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 156.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-step-criteria.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-step-criteria.mdx
new file mode 100644
index 0000000000..25adcd38c1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-step-criteria.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-step-criteria"
+title: "set_step_criteria"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_step_criteria"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_step_criteria`
+
+Set step completion criteria.
+
+## Signature
+
+```cpp
+Step & set_step_criteria(const std::string & criteria)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-text.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-text.mdx
new file mode 100644
index 0000000000..d83df097e3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-text.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-text"
+title: "set_text"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_text"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_text`
+
+Set the step's prompt text directly.
+
+## Signature
+
+```cpp
+Step & set_text(const std::string & text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 93.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-valid-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-valid-contexts.mdx
new file mode 100644
index 0000000000..6330cdc43f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-valid-contexts.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-valid-contexts"
+title: "set_valid_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_valid_contexts"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_valid_contexts`
+
+Set which contexts can be navigated to from this step.
+
+## Signature
+
+```cpp
+Step & set_valid_contexts(const std::vector< std::string > & ctxs)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 139.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-valid-steps.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-valid-steps.mdx
new file mode 100644
index 0000000000..a67a930522
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/set-valid-steps.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/set-valid-steps"
+title: "set_valid_steps"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::set_valid_steps"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `set_valid_steps`
+
+Set which steps can be navigated to from this step.
+
+## Signature
+
+```cpp
+Step & set_valid_steps(const std::vector< std::string > & steps)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Step &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 136.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/step.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/step.mdx
new file mode 100644
index 0000000000..97894b62a0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/step.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/step"
+title: "Step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::Step"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `Step`
+
+## Signature
+
+
+
+ ```cpp
+ void Step()
+ ```
+
+
+
+ ```cpp
+ void Step(const std::string & name)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 89.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/to-json.mdx
new file mode 100644
index 0000000000..c93d8dbf23
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/to-json.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::to_json"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+Serialize to JSON.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 201.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/valid-contexts.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/valid-contexts.mdx
new file mode 100644
index 0000000000..2eba847ff3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/valid-contexts.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/valid-contexts"
+title: "valid_contexts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::valid_contexts"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `valid_contexts`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::optional< std::vector< std::string > > & valid_contexts() const
+```
+
+## Returns
+
+`const std::optional< std::vector< std::string > > &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 205.
diff --git a/fern/products/sdk-reference/cpp/signalwire/contexts/step/valid-steps.mdx b/fern/products/sdk-reference/cpp/signalwire/contexts/step/valid-steps.mdx
new file mode 100644
index 0000000000..2f383d9d48
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/contexts/step/valid-steps.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/contexts/step/valid-steps"
+title: "valid_steps"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::contexts::Step::valid_steps"
+ parent: "signalwire::contexts::Step"
+ module: "signalwire.contexts"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp"
+ visibility: "public"
+---
+# `valid_steps`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::optional< std::vector< std::string > > & valid_steps() const
+```
+
+## Returns
+
+`const std::optional< std::vector< std::string > > &`
+
+## Source
+
+[`include/signalwire/contexts/contexts.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/contexts/contexts.hpp)
+
+Line 204.
diff --git a/fern/products/sdk-reference/cpp/signalwire/core/index.mdx b/fern/products/sdk-reference/cpp/signalwire/core/index.mdx
new file mode 100644
index 0000000000..889bc64c97
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/core/index.mdx
@@ -0,0 +1,33 @@
+---
+slug: "/reference/cpp/signalwire/core"
+title: "core"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::core"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/core/logging_config.hpp"
+---
+# `core`
+
+## Signature
+
+```cpp
+namespace signalwire::core
+```
+
+## Modules
+
+
+
+
+
+## Source
+
+[`include/signalwire/core/logging_config.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/core/logging_config.hpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/core/logging-config/get-execution-mode.mdx b/fern/products/sdk-reference/cpp/signalwire/core/logging-config/get-execution-mode.mdx
new file mode 100644
index 0000000000..3b8bc9ed7f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/core/logging-config/get-execution-mode.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/core/logging-config/get-execution-mode"
+title: "get_execution_mode"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::core::logging_config::get_execution_mode"
+ parent: "signalwire::core::logging_config"
+ module: "signalwire.core"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/core/logging_config.cpp"
+ visibility: "public"
+---
+# `get_execution_mode`
+
+Cross-language SDK contract for serverless / deployment-mode detection.
+Mirrors signalwire.core.logging\_config.get\_execution\_mode in the Python reference. Order of precedence (FIRST match wins):
+
+GATEWAY\_INTERFACE -> "cgi"
+AWS\_LAMBDA\_FUNCTION\_NAME or LAMBDA\_TASK\_ROOT -> "lambda"
+FUNCTION\_TARGET, K\_SERVICE, or GOOGLE\_CLOUD\_PROJECT -> "google\_cloud\_function"
+AZURE\_FUNCTIONS\_ENVIRONMENT, FUNCTIONS\_WORKER\_RUNTIME, or AzureWebJobsStorage -> "azure\_function"
+otherwise -> "server"
+
+The detected mode as a canonical lower-case string. One of "cgi", "lambda", "google\_cloud\_function", "azure\_function", or "server".
+
+## Signature
+
+```cpp
+std::string get_execution_mode()
+```
+
+## Returns
+
+`std::string` — The detected mode as a canonical lower-case string. One of "cgi", "lambda", "google\_cloud\_function", "azure\_function", or "server".
+
+## Source
+
+[`src/core/logging_config.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/core/logging_config.cpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/core/logging-config/index.mdx b/fern/products/sdk-reference/cpp/signalwire/core/logging-config/index.mdx
new file mode 100644
index 0000000000..75569d8019
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/core/logging-config/index.mdx
@@ -0,0 +1,35 @@
+---
+slug: "/reference/cpp/signalwire/core/logging-config"
+title: "logging_config"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::core::logging_config"
+ parent: "signalwire::core"
+ module: "signalwire.core"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/core/logging_config.hpp"
+---
+# `logging_config`
+
+## Signature
+
+```cpp
+namespace signalwire::core::logging_config
+```
+
+## Functions
+
+
+
+ Cross-language SDK contract for serverless / deployment-mode detection. Mirrors signalwire.core.logging\_config.get\_execution\_mode in the Python reference. Order of precedence (FIRST match wins):
+
+
+
+## Source
+
+[`include/signalwire/core/logging_config.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/core/logging_config.hpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/body.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/body.mdx
new file mode 100644
index 0000000000..d00c01d672
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/body.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/body"
+title: "body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::body"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `body`
+
+Set request body for the last added webhook.
+
+## Signature
+
+```cpp
+DataMap & body(const json & data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 81.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/data-map.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/data-map.mdx
new file mode 100644
index 0000000000..19b5d91274
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/data-map.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/data-map"
+title: "DataMap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::DataMap"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `DataMap`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+```cpp
+void DataMap(const std::string & function_name)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 20.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/description.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/description.mdx
new file mode 100644
index 0000000000..824125f3de
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/description.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/description"
+title: "description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::description"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `description`
+
+Alias for purpose(). Sets the LLM-facing tool description. This string is read by the model to decide WHEN to call this tool. See purpose() for bad-vs-good examples.
+
+## Signature
+
+```cpp
+DataMap & description(const std::string & desc)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 43.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/error-keys.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/error-keys.mdx
new file mode 100644
index 0000000000..9bcc51a309
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/error-keys.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/error-keys"
+title: "error_keys"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::error_keys"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `error_keys`
+
+Set error keys for the most recent webhook or top-level.
+
+## Signature
+
+```cpp
+DataMap & error_keys(const std::vector< std::string > & keys)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 96.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/expression.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/expression.mdx
new file mode 100644
index 0000000000..f2c0c3cd56
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/expression.mdx
@@ -0,0 +1,49 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/expression"
+title: "expression"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::expression"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `expression`
+
+Add an expression pattern for pattern-based responses.
+
+## Signature
+
+```cpp
+DataMap & expression(
+ const std::string & test_value,
+ const std::string & pattern,
+ const swaig::FunctionResult & output,
+ const swaig::FunctionResult * nomatch_output = nullptr
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 66.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/fallback-output.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/fallback-output.mdx
new file mode 100644
index 0000000000..ee0425877d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/fallback-output.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/fallback-output"
+title: "fallback_output"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::fallback_output"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `fallback_output`
+
+Set a fallback output at the top level.
+
+## Signature
+
+```cpp
+DataMap & fallback_output(const swaig::FunctionResult & result)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 93.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/foreach.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/foreach.mdx
new file mode 100644
index 0000000000..6a070e9d61
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/foreach.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/foreach"
+title: "foreach"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::foreach"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `foreach`
+
+Set foreach configuration for the last webhook.
+
+## Signature
+
+```cpp
+DataMap & foreach(const json & foreach_config)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 87.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/global-error-keys.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/global-error-keys.mdx
new file mode 100644
index 0000000000..f467fe82ae
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/global-error-keys.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/global-error-keys"
+title: "global_error_keys"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::global_error_keys"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `global_error_keys`
+
+Set top-level error keys.
+
+## Signature
+
+```cpp
+DataMap & global_error_keys(const std::vector< std::string > & keys)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/index.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/index.mdx
new file mode 100644
index 0000000000..50608e25e0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/index.mdx
@@ -0,0 +1,92 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map"
+title: "DataMap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap"
+ parent: "signalwire::datamap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `DataMap`
+
+Fluent builder for SWAIG data\_map tools (server-side, no webhook needed). Every setter returns \*this for chaining.
+
+## Signature
+
+```cpp
+class signalwire::datamap::DataMap
+```
+
+## Methods
+
+
+
+ Set request body for the last added webhook.
+
+
+
+
+
+ Alias for purpose(). Sets the LLM-facing tool description. This string is read by the model to decide WHEN to call this tool. See purpose() for bad-vs-good examples.
+
+
+
+ Set error keys for the most recent webhook or top-level.
+
+
+
+ Add an expression pattern for pattern-based responses.
+
+
+
+ Set a fallback output at the top level.
+
+
+
+ Set foreach configuration for the last webhook.
+
+
+
+ Set top-level error keys.
+
+
+
+ Set output for the most recent webhook.
+
+
+
+ Add a parameter to this data-map tool — the desc is LLM-FACING. Each parameter description is rendered into the OpenAI tool schema under parameters.properties.<name>.description and sent to the model. The model uses it to decide HOW to fill in the argument from user speech. It is prompt engineering, not developer FYI. Bad vs good: BAD : .parameter("city", "string", "the city") GOOD: .parameter("city", "string", "The name of the city to get weather for, e.g. " "'San Francisco'. Ask the user if they did not " "provide one. Include the state or country if the " "city name is ambiguous.")
+
+
+
+ Set request params for the last added webhook (alias for body).
+
+
+
+ Set the LLM-facing tool description (the "purpose"). PROMPT ENGINEERING, not developer documentation. The description string is rendered into the OpenAI tool schema description field on every LLM turn. The model reads it to decide WHEN to call this tool. A vague purpose() is the #1 cause of "the model has the right tool but doesn't call it" failures with data-map tools. Bad vs good: BAD : .purpose("weather api") GOOD: .purpose("Get the current weather conditions and " "forecast for a specific city. Use this " "whenever the user asks about weather, " "temperature, rain, or similar conditions in " "a named location.")
+
+
+
+ Convert to a SWAIG function definition JSON.
+
+
+
+ Add a webhook API call.
+
+
+
+ Add expressions that run after the most recent webhook.
+
+
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 18.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/output.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/output.mdx
new file mode 100644
index 0000000000..573c594d46
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/output.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/output"
+title: "output"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::output"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `output`
+
+Set output for the most recent webhook.
+
+## Signature
+
+```cpp
+DataMap & output(const swaig::FunctionResult & result)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 90.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/parameter.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/parameter.mdx
new file mode 100644
index 0000000000..8a94f21694
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/parameter.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/parameter"
+title: "parameter"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::parameter"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `parameter`
+
+Add a parameter to this data-map tool — the desc is LLM-FACING.
+Each parameter description is rendered into the OpenAI tool schema under parameters.properties.<name>.description and sent to the model. The model uses it to decide HOW to fill in the argument from user speech. It is prompt engineering, not developer FYI.
+Bad vs good: BAD : .parameter("city", "string", "the city") GOOD: .parameter("city", "string", "The name of the city to get weather for, e.g. " "'San Francisco'. Ask the user if they did not " "provide one. Include the state or country if the " "city name is ambiguous.")
+
+## Signature
+
+```cpp
+DataMap & parameter(
+ const std::string & name,
+ const std::string & param_type,
+ const std::string & desc,
+ bool required = false,
+ const std::vector< std::string > & enum_values = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 61.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/params.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/params.mdx
new file mode 100644
index 0000000000..828e9ad5ef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/params.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/params"
+title: "params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::params"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `params`
+
+Set request params for the last added webhook (alias for body).
+
+## Signature
+
+```cpp
+DataMap & params(const json & data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 84.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/purpose.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/purpose.mdx
new file mode 100644
index 0000000000..95062274ac
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/purpose.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/purpose"
+title: "purpose"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::purpose"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `purpose`
+
+Set the LLM-facing tool description (the "purpose"). PROMPT ENGINEERING, not developer documentation.
+The description string is rendered into the OpenAI tool schema description field on every LLM turn. The model reads it to decide WHEN to call this tool. A vague purpose() is the #1 cause of "the model has the right tool but doesn't call it" failures with data-map tools.
+Bad vs good: BAD : .purpose("weather api") GOOD: .purpose("Get the current weather conditions and " "forecast for a specific city. Use this " "whenever the user asks about weather, " "temperature, rain, or similar conditions in " "a named location.")
+
+## Signature
+
+```cpp
+DataMap & purpose(const std::string & desc)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 38.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/to-swaig-function.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/to-swaig-function.mdx
new file mode 100644
index 0000000000..6f7d997483
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/to-swaig-function.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/to-swaig-function"
+title: "to_swaig_function"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::to_swaig_function"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `to_swaig_function`
+
+Convert to a SWAIG function definition JSON.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_swaig_function() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/webhook-expressions.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/webhook-expressions.mdx
new file mode 100644
index 0000000000..e72677283a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/webhook-expressions.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/webhook-expressions"
+title: "webhook_expressions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::webhook_expressions"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `webhook_expressions`
+
+Add expressions that run after the most recent webhook.
+
+## Signature
+
+```cpp
+DataMap & webhook_expressions(const std::vector< json > & expressions)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 78.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/webhook.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/webhook.mdx
new file mode 100644
index 0000000000..149f5939cb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/data-map/webhook.mdx
@@ -0,0 +1,55 @@
+---
+slug: "/reference/cpp/signalwire/datamap/data-map/webhook"
+title: "webhook"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::DataMap::webhook"
+ parent: "signalwire::datamap::DataMap"
+ module: "signalwire.datamap"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `webhook`
+
+Add a webhook API call.
+
+## Signature
+
+```cpp
+DataMap & webhook(
+ const std::string & method,
+ const std::string & url,
+ const json & headers = json::object(),
+ const std::string & form_param = "",
+ bool input_args_as_params = false,
+ const std::vector< std::string > & require_args = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`DataMap &`
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 71.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/index.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/index.mdx
new file mode 100644
index 0000000000..6e5966f56f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/index.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/datamap"
+title: "datamap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::datamap"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+---
+# `datamap`
+
+## Signature
+
+```cpp
+namespace signalwire::datamap
+```
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+ Fluent builder for SWAIG data\_map tools (server-side, no webhook needed). Every setter returns \*this for chaining.
+
+
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/datamap/json.mdx b/fern/products/sdk-reference/cpp/signalwire/datamap/json.mdx
new file mode 100644
index 0000000000..a2bc161551
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/datamap/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/datamap/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::datamap::json"
+ parent: "signalwire::datamap"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/datamap/datamap.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/datamap/datamap.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/generate-random-password.mdx b/fern/products/sdk-reference/cpp/signalwire/generate-random-password.mdx
new file mode 100644
index 0000000000..599fe66dba
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/generate-random-password.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/generate-random-password"
+title: "generate_random_password"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::generate_random_password"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp"
+ visibility: "public"
+---
+# `generate_random_password`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+std::string generate_random_password(int length = 32)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/common.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp)
+
+Line 70.
diff --git a/fern/products/sdk-reference/cpp/signalwire/generate-uuid.mdx b/fern/products/sdk-reference/cpp/signalwire/generate-uuid.mdx
new file mode 100644
index 0000000000..4bef04ebba
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/generate-uuid.mdx
@@ -0,0 +1,33 @@
+---
+slug: "/reference/cpp/signalwire/generate-uuid"
+title: "generate_uuid"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::generate_uuid"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp"
+ visibility: "public"
+---
+# `generate_uuid`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+std::string generate_uuid()
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/common.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/get-env.mdx b/fern/products/sdk-reference/cpp/signalwire/get-env.mdx
new file mode 100644
index 0000000000..220a05cbd0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/get-env.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/get-env"
+title: "get_env"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::get_env"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp"
+ visibility: "public"
+---
+# `get_env`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+std::string get_env(
+ const std::string & key,
+ const std::string & default_val = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/common.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp)
+
+Line 49.
diff --git a/fern/products/sdk-reference/cpp/signalwire/get-logger.mdx b/fern/products/sdk-reference/cpp/signalwire/get-logger.mdx
new file mode 100644
index 0000000000..ad91dea849
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/get-logger.mdx
@@ -0,0 +1,33 @@
+---
+slug: "/reference/cpp/signalwire/get-logger"
+title: "get_logger"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::get_logger"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `get_logger`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+Logger & get_logger()
+```
+
+## Returns
+
+`Logger &`
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/index.mdx b/fern/products/sdk-reference/cpp/signalwire/index.mdx
new file mode 100644
index 0000000000..44a7f79b29
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/index.mdx
@@ -0,0 +1,121 @@
+---
+slug: "/reference/cpp/signalwire"
+title: "signalwire"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+---
+# `signalwire`
+
+SignalWire webhook signature validation.
+Implements both schemes from porting-sdk/webhooks.md:
+
+Scheme A (RELAY/SWML/JSON): hex(HMAC-SHA1(key, url + raw\_body))
+Scheme B (Compat/cXML form): base64(HMAC-SHA1(key, url + sortedFormParams)) with optional bodySHA256 query-param fallback for JSON-on-compat-surface.
+
+All comparisons use CRYPTO\_memcmp (constant-time) so the secret is not leaked over repeated requests. The implementation MUST NOT log keys, signatures, or which branch failed — that's a spec requirement.
+
+## Signature
+
+```cpp
+namespace signalwire
+```
+
+## Functions
+
+
+
+ Add a directory to search for skills. Mirrors Python's signalwire.add\_skill\_directory(path) — delegates to the singleton skills::SkillRegistry instance so third-party skill collections can be registered by path.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get complete schema for all available skills. Mirrors Python's signalwire.list\_skills\_with\_params(). Returns a map keyed by skill name where each value contains parameter metadata. Useful for GUI configuration tools, API documentation, or programmatic skill discovery. C++ skills don't carry rich Python-style parameter introspection in v1, so each entry contains the skill name and an empty parameter map; built-in skills that expose parameter\_schema() via SkillBase get richer detail merged in.
+
+
+
+ Register a custom skill class with the global skill registry. Mirrors Python's signalwire.register\_skill(skill\_class). Delegates to skills::SkillRegistry::register\_skill. The skill's name comes from the supplied skills::SkillBase factory (which instantiates a SkillBase to read its skill\_name() accessor).
+
+
+
+ Top-level convenience entry points — mirror Python's signalwire/**init**.py package-level helpers (RestClient, register\_skill, add\_skill\_directory, list\_skills\_with\_params). The audit projects each free function onto the canonical Python signalwire.<name> path. RestClient preserves PascalCase to match Python's same-cased factory function name. Construct a rest::RestClient from positional or keyword credentials. Mirrors Python's top-level signalwire.RestClient(\*args, \*\*kwargs) factory — a thin wrapper that lazy-imports signalwire.rest.RestClient and instantiates it. Supports both positional credentials (args = \{project, token, space\}) and keyword credentials (kwargs\["project"] etc.) with environment-variable fallback.
+
+
+
+
+
+
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+
+
+## Enums
+
+
+
+
+
+## Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/json.mdx b/fern/products/sdk-reference/cpp/signalwire/json.mdx
new file mode 100644
index 0000000000..0c9936d9d3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/json.mdx
@@ -0,0 +1,27 @@
+---
+slug: "/reference/cpp/signalwire/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::json"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/common.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/list-skills-with-params.mdx b/fern/products/sdk-reference/cpp/signalwire/list-skills-with-params.mdx
new file mode 100644
index 0000000000..16ce6200ec
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/list-skills-with-params.mdx
@@ -0,0 +1,35 @@
+---
+slug: "/reference/cpp/signalwire/list-skills-with-params"
+title: "list_skills_with_params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::list_skills_with_params"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/signalwire.cpp"
+ visibility: "public"
+---
+# `list_skills_with_params`
+
+Get complete schema for all available skills.
+Mirrors Python's signalwire.list\_skills\_with\_params(). Returns a map keyed by skill name where each value contains parameter metadata. Useful for GUI configuration tools, API documentation, or programmatic skill discovery.
+C++ skills don't carry rich Python-style parameter introspection in v1, so each entry contains the skill name and an empty parameter map; built-in skills that expose parameter\_schema() via SkillBase get richer detail merged in.
+
+## Signature
+
+```cpp
+std::map< std::string, std::map< std::string, std::string > > list_skills_with_params()
+```
+
+## Returns
+
+`std::map< std::string, std::map< std::string, std::string > >`
+
+## Source
+
+[`src/signalwire.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/signalwire.cpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/log-level/index.mdx b/fern/products/sdk-reference/cpp/signalwire/log-level/index.mdx
new file mode 100644
index 0000000000..1e57ce4899
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/log-level/index.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/log-level"
+title: "LogLevel"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "enum"
+ language: "cpp"
+ qualified_name: "signalwire::LogLevel"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `LogLevel`
+
+## Signature
+
+```cpp
+enum class LogLevel
+```
+
+## Variants
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/debug.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/debug.mdx
new file mode 100644
index 0000000000..a57ea2ffd5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/debug.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logger/debug"
+title: "debug"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::debug"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `debug`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void debug(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 69.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/error.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/error.mdx
new file mode 100644
index 0000000000..ae5e6b5168
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/error.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logger/error"
+title: "error"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::error"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `error`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void error(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 72.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/index.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/index.mdx
new file mode 100644
index 0000000000..24cd78087f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/logger"
+title: "Logger"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::Logger"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `Logger`
+
+## Signature
+
+```cpp
+class signalwire::Logger
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 19.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/info.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/info.mdx
new file mode 100644
index 0000000000..1a63b9143a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/info.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logger/info"
+title: "info"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::info"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `info`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void info(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 70.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/instance.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/instance.mdx
new file mode 100644
index 0000000000..6b9d130f41
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/instance.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logger/instance"
+title: "instance"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::instance"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `instance`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+Logger & instance()
+```
+
+## Returns
+
+`Logger &`
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 21.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/is-suppressed.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/is-suppressed.mdx
new file mode 100644
index 0000000000..b67988c491
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/is-suppressed.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logger/is-suppressed"
+title: "is_suppressed"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::is_suppressed"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `is_suppressed`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_suppressed() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 45.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/level.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/level.mdx
new file mode 100644
index 0000000000..1fd6ea879d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/level.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logger/level"
+title: "level"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::level"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `level`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+LogLevel level() const
+```
+
+## Returns
+
+`LogLevel`
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/log.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/log.mdx
new file mode 100644
index 0000000000..1473ef84e5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/log.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/logger/log"
+title: "log"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::log"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `log`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void log(LogLevel level, const std::string & message)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 49.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/set-level.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/set-level.mdx
new file mode 100644
index 0000000000..c15f971a9a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/set-level.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logger/set-level"
+title: "set_level"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::set_level"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `set_level`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_level(LogLevel level)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/suppress.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/suppress.mdx
new file mode 100644
index 0000000000..8328123913
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/suppress.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/logger/suppress"
+title: "suppress"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::suppress"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `suppress`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void suppress()
+```
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/unsuppress.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/unsuppress.mdx
new file mode 100644
index 0000000000..ee47b61184
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/unsuppress.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/logger/unsuppress"
+title: "unsuppress"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::unsuppress"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `unsuppress`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void unsuppress()
+```
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 40.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logger/warn.mdx b/fern/products/sdk-reference/cpp/signalwire/logger/warn.mdx
new file mode 100644
index 0000000000..ede1e8e913
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logger/warn.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logger/warn"
+title: "warn"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::Logger::warn"
+ parent: "signalwire::Logger"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp"
+ visibility: "public"
+---
+# `warn`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void warn(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging.hpp)
+
+Line 71.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/get-log-level.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/get-log-level.mdx
new file mode 100644
index 0000000000..e0f9c9be98
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/get-log-level.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logging/get-log-level"
+title: "get_log_level"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::logging::get_log_level"
+ parent: "signalwire::logging"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `get_log_level`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+LogLevel get_log_level()
+```
+
+## Returns
+
+`LogLevel`
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/get-logger.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/get-logger.mdx
new file mode 100644
index 0000000000..bacd0e8a75
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/get-logger.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/logging/get-logger"
+title: "get_logger"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::logging::get_logger"
+ parent: "signalwire::logging"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `get_logger`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+Logger get_logger(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Logger`
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 51.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/index.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/index.mdx
new file mode 100644
index 0000000000..97451e300b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/index.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/logging"
+title: "logging"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::logging"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+---
+# `logging`
+
+## Signature
+
+```cpp
+namespace signalwire::logging
+```
+
+## Functions
+
+
+
+
+
+
+
+## Classes
+
+
+
+
+
+## Enums
+
+
+
+
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/log-level/index.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/log-level/index.mdx
new file mode 100644
index 0000000000..bc0464deb2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/log-level/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/logging/log-level"
+title: "LogLevel"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "enum"
+ language: "cpp"
+ qualified_name: "signalwire::logging::LogLevel"
+ parent: "signalwire::logging"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `LogLevel`
+
+## Signature
+
+```cpp
+enum class LogLevel
+```
+
+## Variants
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/logger/debug.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/logger/debug.mdx
new file mode 100644
index 0000000000..70890f9d68
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/logger/debug.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logging/logger/debug"
+title: "debug"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::logging::Logger::debug"
+ parent: "signalwire::logging::Logger"
+ module: "signalwire.logging"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `debug`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+void debug(const std::string & msg) const
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 30.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/logger/error.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/logger/error.mdx
new file mode 100644
index 0000000000..87716acc61
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/logger/error.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logging/logger/error"
+title: "error"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::logging::Logger::error"
+ parent: "signalwire::logging::Logger"
+ module: "signalwire.logging"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `error`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+void error(const std::string & msg) const
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/logger/index.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/logger/index.mdx
new file mode 100644
index 0000000000..62d17734df
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/logger/index.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/logging/logger"
+title: "Logger"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::logging::Logger"
+ parent: "signalwire::logging"
+ module: "signalwire.logging"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `Logger`
+
+## Signature
+
+```cpp
+class signalwire::logging::Logger
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/logger/info.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/logger/info.mdx
new file mode 100644
index 0000000000..51990ce827
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/logger/info.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logging/logger/info"
+title: "info"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::logging::Logger::info"
+ parent: "signalwire::logging::Logger"
+ module: "signalwire.logging"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `info`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+void info(const std::string & msg) const
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 34.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/logger/logger.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/logger/logger.mdx
new file mode 100644
index 0000000000..25de5a2ec1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/logger/logger.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logging/logger/logger"
+title: "Logger"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::logging::Logger::Logger"
+ parent: "signalwire::logging::Logger"
+ module: "signalwire.logging"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `Logger`
+
+**Modifiers:** `explicit` `inline`
+
+## Signature
+
+```cpp
+void Logger(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/logging/logger/warn.mdx b/fern/products/sdk-reference/cpp/signalwire/logging/logger/warn.mdx
new file mode 100644
index 0000000000..cc2e8c6d44
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/logging/logger/warn.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/logging/logger/warn"
+title: "warn"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::logging::Logger::warn"
+ parent: "signalwire::logging::Logger"
+ module: "signalwire.logging"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp"
+ visibility: "public"
+---
+# `warn`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+void warn(const std::string & msg) const
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/logging/logger.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/logging/logger.hpp)
+
+Line 38.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/index.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/index.mdx
new file mode 100644
index 0000000000..07d871ed6e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/index.mdx
@@ -0,0 +1,59 @@
+---
+slug: "/reference/cpp/signalwire/pom"
+title: "pom"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::pom"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+---
+# `pom`
+
+## Signature
+
+```cpp
+namespace signalwire::pom
+```
+
+## Functions
+
+
+
+ Emit a json value as YAML. Inverse of yaml\_parse. Pretty output matches the shape PyYAML's yaml.dump(..., default\_flow\_style=False, sort\_keys=False) produces for the POM shape.
+
+
+
+
+
+ Parse a YAML document (POM-shaped subset only) into a json value. Supports list-of-dicts at top level; values may be strings, booleans, or lists of either. Throws std::invalid\_argument on malformed input.
+
+
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+ Top-level container of an ordered list of sections.
+
+
+
+ One section in the Prompt Object Model tree. Mirrors Python's signalwire.pom.pom.Section. Fields are public to match the Python attribute access pattern section.body, section.bullets, section.subsections.
+
+
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/json.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/json.mdx
new file mode 100644
index 0000000000..25f117692b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/pom/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::pom::json"
+ parent: "signalwire::pom"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 39.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/add-pom-as-subsection.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/add-pom-as-subsection.mdx
new file mode 100644
index 0000000000..ce4bf81c3b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/add-pom-as-subsection.mdx
@@ -0,0 +1,58 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/add-pom-as-subsection"
+title: "add_pom_as_subsection"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::add_pom_as_subsection"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `add_pom_as_subsection`
+
+Add every top-level section of pom\_to\_add as a subsection of the section identified by target\_title. Throws std::invalid\_argument when no matching section exists.
+
+## Signature
+
+
+
+ ```cpp
+ void add_pom_as_subsection(
+ const std::string & target_title,
+ const PromptObjectModel & pom_to_add
+ )
+ ```
+
+
+
+ ```cpp
+ void add_pom_as_subsection(
+ Section & target,
+ const PromptObjectModel & pom_to_add
+ )
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 188.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/add-section.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/add-section.mdx
new file mode 100644
index 0000000000..71fd0f148a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/add-section.mdx
@@ -0,0 +1,53 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/add-section"
+title: "add_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::add_section"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `add_section`
+
+Append a new top-level section. title may be empty only for the very first section (Python enforces "Only the first section can
+have no title"); subsequent calls without a title throw std::invalid\_argument.
+
+## Signature
+
+```cpp
+Section & add_section(
+ const std::string & title = "",
+ const std::string & body = "",
+ const std::vector< std::string > & bullets = {},
+ std::optional< bool > numbered = std::nullopt,
+ bool numbered_bullets = false
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`Section &`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 152.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/find-section.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/find-section.mdx
new file mode 100644
index 0000000000..eef428b224
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/find-section.mdx
@@ -0,0 +1,56 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/find-section"
+title: "find_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::find_section"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `find_section`
+
+Recursively search for a section by title. Returns a pointer to the owned section so callers can mutate it; returns nullptr when nothing matches. Pointer is invalidated by any subsequent mutation of the POM that grows sections or subsections (caller's responsibility — same contract as std::vector::data()).
+
+## Signature
+
+
+
+ ```cpp
+ Section * find_section(const std::string & title)
+ ```
+
+
+
+ ```cpp
+ const Section * find_section(const std::string & title) const
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Returns (Overload 1)
+
+`Section *`
+
+## Returns (Overload 2)
+
+`const Section *`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 163.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/from-json.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/from-json.mdx
new file mode 100644
index 0000000000..1b15329d69
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/from-json.mdx
@@ -0,0 +1,58 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/from-json"
+title: "from_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::from_json"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `from_json`
+
+Build a POM from a JSON string. Throws nlohmann::json::parse\_error on malformed JSON, and std::invalid\_argument on shape violations (missing required fields, wrong types, etc.).
+
+**Modifiers:** `static`
+
+## Signature
+
+
+
+ ```cpp
+ PromptObjectModel from_json(const std::string & json_text)
+ ```
+
+
+
+ ```cpp
+ PromptObjectModel from_json(const json & data)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Returns (Overload 1)
+
+`PromptObjectModel`
+
+## Returns (Overload 2)
+
+`PromptObjectModel`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 142.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/from-yaml.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/from-yaml.mdx
new file mode 100644
index 0000000000..d5b91a1596
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/from-yaml.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/from-yaml"
+title: "from_yaml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::from_yaml"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `from_yaml`
+
+Build a POM from a YAML string (minimal POM-shaped subset only).
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+PromptObjectModel from_yaml(const std::string & yaml_text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`PromptObjectModel`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 146.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/index.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/index.mdx
new file mode 100644
index 0000000000..d88ebe15bb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/index.mdx
@@ -0,0 +1,82 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model"
+title: "PromptObjectModel"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel"
+ parent: "signalwire::pom"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `PromptObjectModel`
+
+Top-level container of an ordered list of sections.
+
+## Signature
+
+```cpp
+class signalwire::pom::PromptObjectModel
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+ Add every top-level section of pom\_to\_add as a subsection of the section identified by target\_title. Throws std::invalid\_argument when no matching section exists.
+
+
+
+ Append a new top-level section. title may be empty only for the very first section (Python enforces "Only the first section can have no title"); subsequent calls without a title throw std::invalid\_argument.
+
+
+
+ Recursively search for a section by title. Returns a pointer to the owned section so callers can mutate it; returns nullptr when nothing matches. Pointer is invalidated by any subsequent mutation of the POM that grows sections or subsections (caller's responsibility — same contract as std::vector::data()).
+
+
+
+ Build a POM from a JSON string. Throws nlohmann::json::parse\_error on malformed JSON, and std::invalid\_argument on shape violations (missing required fields, wrong types, etc.).
+
+
+
+ Build a POM from a YAML string (minimal POM-shaped subset only).
+
+
+
+
+
+ Render entire POM as Markdown.
+
+
+
+ Render entire POM as XML (with <?xml ... ?> prolog and a <prompt> root element).
+
+
+
+ Whole-tree dict view (a json array). Identical content to to\_json, returned as a parsed json value.
+
+
+
+ Whole-tree JSON serializer. Returns a pretty-printed (indent=2) JSON array string, matching Python's json.dumps(..., indent=2).
+
+
+
+ Whole-tree YAML serializer. Returns a YAML document representing the JSON-equivalent list-of-dicts structure.
+
+
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 130.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/prompt-object-model.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/prompt-object-model.mdx
new file mode 100644
index 0000000000..a0042c8677
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/prompt-object-model.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/prompt-object-model"
+title: "PromptObjectModel"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::PromptObjectModel"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `PromptObjectModel`
+
+## Signature
+
+
+
+ ```cpp
+ void PromptObjectModel()
+ ```
+
+
+
+ ```cpp
+ void PromptObjectModel(bool debug_flag)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 135.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/render-markdown.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/render-markdown.mdx
new file mode 100644
index 0000000000..5e4681e894
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/render-markdown.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/render-markdown"
+title: "render_markdown"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::render_markdown"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `render_markdown`
+
+Render entire POM as Markdown.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string render_markdown() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 179.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/render-xml.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/render-xml.mdx
new file mode 100644
index 0000000000..fc7129e7f5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/render-xml.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/render-xml"
+title: "render_xml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::render_xml"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `render_xml`
+
+Render entire POM as XML (with <?xml ... ?> prolog and a <prompt> root element).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string render_xml() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 183.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-dict.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-dict.mdx
new file mode 100644
index 0000000000..84b986540c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-dict.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/to-dict"
+title: "to_dict"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::to_dict"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `to_dict`
+
+Whole-tree dict view (a json array). Identical content to to\_json, returned as a parsed json value.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_dict() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 176.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-json.mdx
new file mode 100644
index 0000000000..81e9adad8b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-json.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::to_json"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+Whole-tree JSON serializer. Returns a pretty-printed (indent=2) JSON array string, matching Python's json.dumps(..., indent=2).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string to_json() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 168.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-yaml.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-yaml.mdx
new file mode 100644
index 0000000000..de6c0a345d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/prompt-object-model/to-yaml.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/pom/prompt-object-model/to-yaml"
+title: "to_yaml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::PromptObjectModel::to_yaml"
+ parent: "signalwire::pom::PromptObjectModel"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `to_yaml`
+
+Whole-tree YAML serializer. Returns a YAML document representing the JSON-equivalent list-of-dicts structure.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string to_yaml() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 172.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/add-body.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/add-body.mdx
new file mode 100644
index 0000000000..a4d86aca55
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/add-body.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/pom/section/add-body"
+title: "add_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section::add_body"
+ parent: "signalwire::pom::Section"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `add_body`
+
+Replace (NOT append) the body text. Mirrors Python's documented "Add OR REPLACE the body text" contract.
+
+## Signature
+
+```cpp
+void add_body(const std::string & b)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 90.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/add-bullets.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/add-bullets.mdx
new file mode 100644
index 0000000000..6d3e414906
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/add-bullets.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/pom/section/add-bullets"
+title: "add_bullets"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section::add_bullets"
+ parent: "signalwire::pom::Section"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `add_bullets`
+
+Append bullets to the existing list.
+
+## Signature
+
+```cpp
+void add_bullets(const std::vector< std::string > & bs)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 93.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/add-subsection.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/add-subsection.mdx
new file mode 100644
index 0000000000..ed877fb8a1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/add-subsection.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/pom/section/add-subsection"
+title: "add_subsection"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section::add_subsection"
+ parent: "signalwire::pom::Section"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `add_subsection`
+
+Add a child subsection. Returns a reference to the newly-created subsection so callers can chain further mutations. Throws std::invalid\_argument if title is empty (Python raises ValueError("Subsections must have a title")).
+
+## Signature
+
+```cpp
+Section & add_subsection(
+ const std::string & title,
+ const std::string & body = "",
+ const std::vector< std::string > & bullets = {},
+ std::optional< bool > numbered = std::nullopt,
+ bool numbered_bullets = false
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`Section &`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/index.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/index.mdx
new file mode 100644
index 0000000000..27c89cb44d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/index.mdx
@@ -0,0 +1,93 @@
+---
+slug: "/reference/cpp/signalwire/pom/section"
+title: "Section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section"
+ parent: "signalwire::pom"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `Section`
+
+One section in the Prompt Object Model tree.
+Mirrors Python's signalwire.pom.pom.Section. Fields are public to match the Python attribute access pattern section.body, section.bullets, section.subsections.
+
+## Signature
+
+```cpp
+class signalwire::pom::Section
+```
+
+## Properties
+
+
+ Optional paragraph of body text.
+
+
+
+ Optional bullet list.
+
+
+
+ Whether this section participates in section numbering. Three-state: std::nullopt — not specified (Python None); inherits. true — explicitly numbered. false — explicitly opted out of numbering. Numbering is "all-or-none per sibling group": if any sibling has numbered == true, every sibling gets numbered unless it explicitly opts out with false.
+
+
+
+ When true, bullets are rendered as a numbered list (1. 2. 3.) in markdown and as <bullet id="1"> in XML, instead of dash bullets.
+
+
+
+ Nested sections (recursively the same shape).
+
+
+
+ Section title. Optional only on the very first top-level section (Python enforces "only the first section can have no title"); for subsections a title is always required.
+
+
+## Methods
+
+
+
+ Replace (NOT append) the body text. Mirrors Python's documented "Add OR REPLACE the body text" contract.
+
+
+
+ Append bullets to the existing list.
+
+
+
+ Add a child subsection. Returns a reference to the newly-created subsection so callers can chain further mutations. Throws std::invalid\_argument if title is empty (Python raises ValueError("Subsections must have a title")).
+
+
+
+ Render this section + subtree as Markdown. level is the heading level for this section (default 2 = ## ); section\_number is the parent path that will prefix this section's title (e.g. \{1, 2\} -> "1.2. "); empty means "no numbering".
+
+
+
+ Render this section + subtree as XML. indent is the number of 2-space indents to use; section\_number follows the same rule as render\_markdown.
+
+
+
+ Build a Section. title is optional; everything else has sensible defaults so empty Sections can be created and populated incrementally via add\_body / add\_bullets / add\_subsection.
+
+
+
+ Python-compatible alias for to\_json — Python exposes to\_dict. Returns the same JSON object.
+
+
+
+ Convert the section (and its subtree) to a JSON object. Matches the Python key order: title, body, bullets, subsections, numbered, numberedBullets.
+
+
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/render-markdown.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/render-markdown.mdx
new file mode 100644
index 0000000000..2619102ad8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/render-markdown.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/pom/section/render-markdown"
+title: "render_markdown"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section::render_markdown"
+ parent: "signalwire::pom::Section"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `render_markdown`
+
+Render this section + subtree as Markdown. level is the heading level for this section (default 2 = ## ); section\_number is the parent path that will prefix this section's title (e.g. \{1, 2\} -> "1.2. "); empty means "no numbering".
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string render_markdown(
+ int level = 2,
+ const std::vector< int > & section_number = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 118.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/render-xml.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/render-xml.mdx
new file mode 100644
index 0000000000..4a8fcb46d1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/render-xml.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/pom/section/render-xml"
+title: "render_xml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section::render_xml"
+ parent: "signalwire::pom::Section"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `render_xml`
+
+Render this section + subtree as XML. indent is the number of 2-space indents to use; section\_number follows the same rule as render\_markdown.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string render_xml(
+ int indent = 0,
+ const std::vector< int > & section_number = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 124.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/section.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/section.mdx
new file mode 100644
index 0000000000..80502870a8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/section.mdx
@@ -0,0 +1,58 @@
+---
+slug: "/reference/cpp/signalwire/pom/section/section"
+title: "Section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section::Section"
+ parent: "signalwire::pom::Section"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `Section`
+
+Build a Section. title is optional; everything else has sensible defaults so empty Sections can be created and populated incrementally via add\_body / add\_bullets / add\_subsection.
+
+## Signature
+
+
+
+ ```cpp
+ void Section()
+ ```
+
+
+
+ ```cpp
+ void Section(
+ std::optional< std::string > t,
+ std::string b = "",
+ std::vector< std::string > bs = {},
+ std::optional< bool > num = std::nullopt,
+ bool numbered_bullets = false
+ )
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 77.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/to-dict.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/to-dict.mdx
new file mode 100644
index 0000000000..7bb396a1ac
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/to-dict.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/pom/section/to-dict"
+title: "to_dict"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section::to_dict"
+ parent: "signalwire::pom::Section"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `to_dict`
+
+Python-compatible alias for to\_json — Python exposes to\_dict. Returns the same JSON object.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json to_dict() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 112.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/section/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/section/to-json.mdx
new file mode 100644
index 0000000000..29183220ef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/section/to-json.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/pom/section/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::pom::Section::to_json"
+ parent: "signalwire::pom::Section"
+ module: "signalwire.pom"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+Convert the section (and its subtree) to a JSON object. Matches the Python key order: title, body, bullets, subsections, numbered, numberedBullets.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/pom/pom.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/pom/pom.hpp)
+
+Line 108.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/yaml-dump-ordered.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/yaml-dump-ordered.mdx
new file mode 100644
index 0000000000..0da46cfe48
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/yaml-dump-ordered.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/pom/yaml-dump-ordered"
+title: "yaml_dump_ordered"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::pom::yaml_dump_ordered"
+ parent: "signalwire::pom"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/pom/pom.cpp"
+ visibility: "public"
+---
+# `yaml_dump_ordered`
+
+## Signature
+
+```cpp
+std::string yaml_dump_ordered(const nlohmann::ordered_json & value)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/pom/pom.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/pom/pom.cpp)
+
+Line 1129.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/yaml-dump.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/yaml-dump.mdx
new file mode 100644
index 0000000000..0667724b42
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/yaml-dump.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/pom/yaml-dump"
+title: "yaml_dump"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::pom::yaml_dump"
+ parent: "signalwire::pom"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/pom/pom.cpp"
+ visibility: "public"
+---
+# `yaml_dump`
+
+Emit a json value as YAML. Inverse of yaml\_parse. Pretty output matches the shape PyYAML's yaml.dump(..., default\_flow\_style=False, sort\_keys=False) produces for the POM shape.
+
+## Signature
+
+```cpp
+std::string yaml_dump(const json & value)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/pom/pom.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/pom/pom.cpp)
+
+Line 1121.
diff --git a/fern/products/sdk-reference/cpp/signalwire/pom/yaml-parse.mdx b/fern/products/sdk-reference/cpp/signalwire/pom/yaml-parse.mdx
new file mode 100644
index 0000000000..685808f577
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/pom/yaml-parse.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/pom/yaml-parse"
+title: "yaml_parse"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::pom::yaml_parse"
+ parent: "signalwire::pom"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/pom/pom.cpp"
+ visibility: "public"
+---
+# `yaml_parse`
+
+Parse a YAML document (POM-shaped subset only) into a json value. Supports list-of-dicts at top level; values may be strings, booleans, or lists of either. Throws std::invalid\_argument on malformed input.
+
+## Signature
+
+```cpp
+json yaml_parse(const std::string & yaml_text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/pom/pom.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/pom/pom.cpp)
+
+Line 1110.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/concierge-agent.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/concierge-agent.mdx
new file mode 100644
index 0000000000..98e9a8d599
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/concierge-agent.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/concierge-agent/concierge-agent"
+title: "ConciergeAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ConciergeAgent::ConciergeAgent"
+ parent: "signalwire::prefabs::ConciergeAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `ConciergeAgent`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+```cpp
+void ConciergeAgent(
+ const std::string & name = "concierge",
+ const std::string & route = "/",
+ const std::string & host = "0.0.0.0",
+ int port = 3000
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 67.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/index.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/index.mdx
new file mode 100644
index 0000000000..c3f9ee479e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/concierge-agent"
+title: "ConciergeAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ConciergeAgent"
+ parent: "signalwire::prefabs"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `ConciergeAgent`
+
+Venue concierge with amenity info.
+
+## Signature
+
+```cpp
+class signalwire::prefabs::ConciergeAgent : signalwire::agent::AgentBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::agent::AgentBase](/reference/cpp/signalwire/agent/agent-base)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 65.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-amenities.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-amenities.mdx
new file mode 100644
index 0000000000..a16fc4f312
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-amenities.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/concierge-agent/set-amenities"
+title: "set_amenities"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ConciergeAgent::set_amenities"
+ parent: "signalwire::prefabs::ConciergeAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_amenities`
+
+## Signature
+
+```cpp
+ConciergeAgent & set_amenities(const std::vector< json > & amenities)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`ConciergeAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 73.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-hours.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-hours.mdx
new file mode 100644
index 0000000000..5cdc919c9b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-hours.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/concierge-agent/set-hours"
+title: "set_hours"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ConciergeAgent::set_hours"
+ parent: "signalwire::prefabs::ConciergeAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_hours`
+
+## Signature
+
+```cpp
+ConciergeAgent & set_hours(const json & hours)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`ConciergeAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 74.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-venue-name.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-venue-name.mdx
new file mode 100644
index 0000000000..2925712f89
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/concierge-agent/set-venue-name.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/concierge-agent/set-venue-name"
+title: "set_venue_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ConciergeAgent::set_venue_name"
+ parent: "signalwire::prefabs::ConciergeAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_venue_name`
+
+## Signature
+
+```cpp
+ConciergeAgent & set_venue_name(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`ConciergeAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 72.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/faq-bot-agent.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/faq-bot-agent.mdx
new file mode 100644
index 0000000000..a0ebe6946d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/faq-bot-agent.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/faq-bot-agent/faq-bot-agent"
+title: "FAQBotAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::FAQBotAgent::FAQBotAgent"
+ parent: "signalwire::prefabs::FAQBotAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `FAQBotAgent`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+```cpp
+void FAQBotAgent(
+ const std::string & name = "faq_bot",
+ const std::string & route = "/",
+ const std::string & host = "0.0.0.0",
+ int port = 3000
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/index.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/index.mdx
new file mode 100644
index 0000000000..d59bdf5b0b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/faq-bot-agent"
+title: "FAQBotAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::FAQBotAgent"
+ parent: "signalwire::prefabs"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `FAQBotAgent`
+
+Keyword-based FAQ matching.
+
+## Signature
+
+```cpp
+class signalwire::prefabs::FAQBotAgent : signalwire::agent::AgentBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::agent::AgentBase](/reference/cpp/signalwire/agent/agent-base)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 52.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-faqs.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-faqs.mdx
new file mode 100644
index 0000000000..bfa0e01e60
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-faqs.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/faq-bot-agent/set-faqs"
+title: "set_faqs"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::FAQBotAgent::set_faqs"
+ parent: "signalwire::prefabs::FAQBotAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_faqs`
+
+## Signature
+
+```cpp
+FAQBotAgent & set_faqs(const std::vector< json > & faqs)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FAQBotAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 59.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-no-match-message.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-no-match-message.mdx
new file mode 100644
index 0000000000..78b3719d2f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-no-match-message.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/faq-bot-agent/set-no-match-message"
+title: "set_no_match_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::FAQBotAgent::set_no_match_message"
+ parent: "signalwire::prefabs::FAQBotAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_no_match_message`
+
+## Signature
+
+```cpp
+FAQBotAgent & set_no_match_message(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FAQBotAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 60.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-suggest-related.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-suggest-related.mdx
new file mode 100644
index 0000000000..f1275ffddb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/faq-bot-agent/set-suggest-related.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/faq-bot-agent/set-suggest-related"
+title: "set_suggest_related"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::FAQBotAgent::set_suggest_related"
+ parent: "signalwire::prefabs::FAQBotAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_suggest_related`
+
+## Signature
+
+```cpp
+FAQBotAgent & set_suggest_related(bool suggest)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FAQBotAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 61.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/index.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/index.mdx
new file mode 100644
index 0000000000..e727a3c212
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/index.mdx
@@ -0,0 +1,57 @@
+---
+slug: "/reference/cpp/signalwire/prefabs"
+title: "prefabs"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+---
+# `prefabs`
+
+## Signature
+
+```cpp
+namespace signalwire::prefabs
+```
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+ Venue concierge with amenity info.
+
+
+
+ Keyword-based FAQ matching.
+
+
+
+ Sequential question collection with key/value answers.
+
+
+
+ Department routing with call transfer.
+
+
+
+ Typed surveys with validation.
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 8.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/index.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/index.mdx
new file mode 100644
index 0000000000..e9eab60191
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/info-gatherer-agent"
+title: "InfoGathererAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::InfoGathererAgent"
+ parent: "signalwire::prefabs"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `InfoGathererAgent`
+
+Sequential question collection with key/value answers.
+
+## Signature
+
+```cpp
+class signalwire::prefabs::InfoGathererAgent : signalwire::agent::AgentBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::agent::AgentBase](/reference/cpp/signalwire/agent/agent-base)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/info-gatherer-agent.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/info-gatherer-agent.mdx
new file mode 100644
index 0000000000..930c1e9093
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/info-gatherer-agent.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/info-gatherer-agent/info-gatherer-agent"
+title: "InfoGathererAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::InfoGathererAgent::InfoGathererAgent"
+ parent: "signalwire::prefabs::InfoGathererAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `InfoGathererAgent`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+```cpp
+void InfoGathererAgent(
+ const std::string & name = "info_gatherer",
+ const std::string & route = "/",
+ const std::string & host = "0.0.0.0",
+ int port = 3000
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-completion-message.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-completion-message.mdx
new file mode 100644
index 0000000000..47fd90ca36
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-completion-message.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/info-gatherer-agent/set-completion-message"
+title: "set_completion_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::InfoGathererAgent::set_completion_message"
+ parent: "signalwire::prefabs::InfoGathererAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_completion_message`
+
+## Signature
+
+```cpp
+InfoGathererAgent & set_completion_message(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`InfoGathererAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 21.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-prefix.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-prefix.mdx
new file mode 100644
index 0000000000..a50a8c06d5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-prefix.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/info-gatherer-agent/set-prefix"
+title: "set_prefix"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::InfoGathererAgent::set_prefix"
+ parent: "signalwire::prefabs::InfoGathererAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_prefix`
+
+## Signature
+
+```cpp
+InfoGathererAgent & set_prefix(const std::string & prefix)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`InfoGathererAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-questions.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-questions.mdx
new file mode 100644
index 0000000000..d0168ac26a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/info-gatherer-agent/set-questions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/info-gatherer-agent/set-questions"
+title: "set_questions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::InfoGathererAgent::set_questions"
+ parent: "signalwire::prefabs::InfoGathererAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_questions`
+
+## Signature
+
+```cpp
+InfoGathererAgent & set_questions(const std::vector< json > & questions)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`InfoGathererAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 20.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/json.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/json.mdx
new file mode 100644
index 0000000000..f2eeb14d3e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::json"
+ parent: "signalwire::prefabs"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/index.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/index.mdx
new file mode 100644
index 0000000000..ae069c97a9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/receptionist-agent"
+title: "ReceptionistAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ReceptionistAgent"
+ parent: "signalwire::prefabs"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `ReceptionistAgent`
+
+Department routing with call transfer.
+
+## Signature
+
+```cpp
+class signalwire::prefabs::ReceptionistAgent : signalwire::agent::AgentBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::agent::AgentBase](/reference/cpp/signalwire/agent/agent-base)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 39.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/receptionist-agent.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/receptionist-agent.mdx
new file mode 100644
index 0000000000..1de676c5bb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/receptionist-agent.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/receptionist-agent/receptionist-agent"
+title: "ReceptionistAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ReceptionistAgent::ReceptionistAgent"
+ parent: "signalwire::prefabs::ReceptionistAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `ReceptionistAgent`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+```cpp
+void ReceptionistAgent(
+ const std::string & name = "receptionist",
+ const std::string & route = "/",
+ const std::string & host = "0.0.0.0",
+ int port = 3000
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 41.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-departments.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-departments.mdx
new file mode 100644
index 0000000000..dec6016b7c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-departments.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/receptionist-agent/set-departments"
+title: "set_departments"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ReceptionistAgent::set_departments"
+ parent: "signalwire::prefabs::ReceptionistAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_departments`
+
+## Signature
+
+```cpp
+ReceptionistAgent & set_departments(const json & departments)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`ReceptionistAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 46.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-greeting.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-greeting.mdx
new file mode 100644
index 0000000000..b4f58b704f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-greeting.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/receptionist-agent/set-greeting"
+title: "set_greeting"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ReceptionistAgent::set_greeting"
+ parent: "signalwire::prefabs::ReceptionistAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_greeting`
+
+## Signature
+
+```cpp
+ReceptionistAgent & set_greeting(const std::string & greeting)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`ReceptionistAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 47.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-transfer-message.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-transfer-message.mdx
new file mode 100644
index 0000000000..18c0133014
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/receptionist-agent/set-transfer-message.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/receptionist-agent/set-transfer-message"
+title: "set_transfer_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::ReceptionistAgent::set_transfer_message"
+ parent: "signalwire::prefabs::ReceptionistAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_transfer_message`
+
+## Signature
+
+```cpp
+ReceptionistAgent & set_transfer_message(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`ReceptionistAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/index.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/index.mdx
new file mode 100644
index 0000000000..6f0dc49e3a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/survey-agent"
+title: "SurveyAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::SurveyAgent"
+ parent: "signalwire::prefabs"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `SurveyAgent`
+
+Typed surveys with validation.
+
+## Signature
+
+```cpp
+class signalwire::prefabs::SurveyAgent : signalwire::agent::AgentBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::agent::AgentBase](/reference/cpp/signalwire/agent/agent-base)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-completion-message.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-completion-message.mdx
new file mode 100644
index 0000000000..737f7be970
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-completion-message.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/survey-agent/set-completion-message"
+title: "set_completion_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::SurveyAgent::set_completion_message"
+ parent: "signalwire::prefabs::SurveyAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_completion_message`
+
+## Signature
+
+```cpp
+SurveyAgent & set_completion_message(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SurveyAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 34.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-intro-message.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-intro-message.mdx
new file mode 100644
index 0000000000..551c123f11
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-intro-message.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/survey-agent/set-intro-message"
+title: "set_intro_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::SurveyAgent::set_intro_message"
+ parent: "signalwire::prefabs::SurveyAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_intro_message`
+
+## Signature
+
+```cpp
+SurveyAgent & set_intro_message(const std::string & msg)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SurveyAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-questions.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-questions.mdx
new file mode 100644
index 0000000000..da9e5a0ec5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/set-questions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/survey-agent/set-questions"
+title: "set_questions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::SurveyAgent::set_questions"
+ parent: "signalwire::prefabs::SurveyAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `set_questions`
+
+## Signature
+
+```cpp
+SurveyAgent & set_questions(const std::vector< json > & questions)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SurveyAgent &`
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 33.
diff --git a/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/survey-agent.mdx b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/survey-agent.mdx
new file mode 100644
index 0000000000..687a68b77a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/prefabs/survey-agent/survey-agent.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/prefabs/survey-agent/survey-agent"
+title: "SurveyAgent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::prefabs::SurveyAgent::SurveyAgent"
+ parent: "signalwire::prefabs::SurveyAgent"
+ module: "signalwire.prefabs"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp"
+ visibility: "public"
+---
+# `SurveyAgent`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+```cpp
+void SurveyAgent(
+ const std::string & name = "survey",
+ const std::string & route = "/",
+ const std::string & host = "0.0.0.0",
+ int port = 3000
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/prefabs/prefabs.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/prefabs/prefabs.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/register-skill.mdx b/fern/products/sdk-reference/cpp/signalwire/register-skill.mdx
new file mode 100644
index 0000000000..3009d9e42e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/register-skill.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/register-skill"
+title: "register_skill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::register_skill"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/signalwire.cpp"
+ visibility: "public"
+---
+# `register_skill`
+
+Register a custom skill class with the global skill registry.
+Mirrors Python's signalwire.register\_skill(skill\_class). Delegates to skills::SkillRegistry::register\_skill. The skill's name comes from the supplied skills::SkillBase factory (which instantiates a SkillBase to read its skill\_name() accessor).
+
+## Signature
+
+```cpp
+void register_skill(skills::SkillFactory factory)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`src/signalwire.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/signalwire.cpp)
+
+Line 79.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/action.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/action.mdx
new file mode 100644
index 0000000000..1b67ea7693
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/action.mdx
@@ -0,0 +1,63 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/action"
+title: "Action"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::Action"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `Action`
+
+## Signature
+
+
+
+ ```cpp
+ void Action()
+ ```
+
+
+
+ ```cpp
+ void Action(const std::string & control_id)
+ ```
+
+
+
+ ```cpp
+ void Action(
+ const std::string & control_id,
+ RelayClient * client,
+ const std::string & call_id,
+ const std::string & node_id
+ )
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Parameters (Overload 3)
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 27.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/call-id.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/call-id.mdx
new file mode 100644
index 0000000000..114a0d6c09
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/call-id.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/call-id"
+title: "call_id"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::call_id"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `call_id`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & call_id() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/completed-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/completed-callback.mdx
new file mode 100644
index 0000000000..293cfcab01
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/completed-callback.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/completed-callback"
+title: "CompletedCallback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::CompletedCallback"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `CompletedCallback`
+
+## Signature
+
+```cpp
+typedef std::function< void(const Action &)> CompletedCallback
+```
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/completed.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/completed.mdx
new file mode 100644
index 0000000000..2832284186
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/completed.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/completed"
+title: "completed"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::completed"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `completed`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool completed() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 34.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/control-id.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/control-id.mdx
new file mode 100644
index 0000000000..aa2135fe17
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/control-id.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/control-id"
+title: "control_id"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::control_id"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `control_id`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & control_id() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/event-type-filter.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/event-type-filter.mdx
new file mode 100644
index 0000000000..2b7aacceb4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/event-type-filter.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/event-type-filter"
+title: "event_type_filter"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::event_type_filter"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `event_type_filter`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::vector< std::string > & event_type_filter() const
+```
+
+## Returns
+
+`const std::vector< std::string > &`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 56.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/event-type-matches.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/event-type-matches.mdx
new file mode 100644
index 0000000000..3b4414462e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/event-type-matches.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/event-type-matches"
+title: "event_type_matches"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::event_type_matches"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `event_type_matches`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool event_type_matches(const std::string & event_type) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 59.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/index.mdx
new file mode 100644
index 0000000000..fd89bedb0f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/index.mdx
@@ -0,0 +1,116 @@
+---
+slug: "/reference/cpp/signalwire/relay/action"
+title: "Action"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `Action`
+
+Represents a controllable in-progress operation (play, record, collect, etc.) Uses shared internal state so the object can be copied/moved freely while maintaining a single underlying condition\_variable for synchronization.
+
+## Signature
+
+```cpp
+class signalwire::relay::Action
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Method prefix used for sub-command frames (stop/pause/resume/...). Defaults to "calling.play"; set explicitly when an Action is built for a different verb (record, collect, detect, ...). The Call::execute\_action factory plumbs this through.
+
+
+
+
+
+ Set a callback to fire when the action completes.
+
+
+
+ Request the server to pause this action. extra\_params may carry e.g. \{"behavior": "continuous"\} for record-side pause.
+
+
+
+ Resolve the action immediately (used for call-gone scenarios).
+
+
+
+
+
+
+
+
+
+ Request the server to resume this action.
+
+
+
+ Set the wire-event types the Action should accept state updates from. Empty (the default) means "match any component event whose control\_id matches this Action". Used by play\_and\_collect to listen on calling.call.collect only — a calling.call.play(finished) must NOT resolve a play\_and\_collect action.
+
+
+
+
+
+ Detect actions resolve on the first event carrying a detect payload, not on a state(finished) — see Python's DetectAction. When this flag is set the action's update\_state path resolves only when params.detect is present.
+
+
+
+ Collect actions resolve when an event carries a result payload. A play(finished) earlier in the timeline does NOT resolve a CollectAction — see Python's CollectAction terminal-event logic.
+
+
+
+ Start the inter-digit / final-digit timers on a collect. The matching Python method is StandaloneCollectAction.start\_input\_timers.
+
+
+
+
+
+ Request the server to stop this action. Routes to \.stop so an Action returned by record() sends calling.record.stop rather than calling.play.stop.
+
+
+
+ Update internal state (called by Call/Client when events arrive).
+
+
+
+ Adjust playback volume (play only). The frame body carries the supplied amount in dB; positive boosts, negative attenuates.
+
+
+
+ Block until the action completes or times out.
+
+
+
+## Type Aliases
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 23.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/method-prefix.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/method-prefix.mdx
new file mode 100644
index 0000000000..fc417a1857
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/method-prefix.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/method-prefix"
+title: "method_prefix"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::method_prefix"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `method_prefix`
+
+Method prefix used for sub-command frames (stop/pause/resume/...). Defaults to "calling.play"; set explicitly when an Action is built for a different verb (record, collect, detect, ...). The Call::execute\_action factory plumbs this through.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & method_prefix() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 43.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/node-id.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/node-id.mdx
new file mode 100644
index 0000000000..83bbfd43d0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/node-id.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/node-id"
+title: "node_id"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::node_id"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `node_id`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & node_id() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/on-completed.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/on-completed.mdx
new file mode 100644
index 0000000000..f5ab371e65
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/on-completed.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/on-completed"
+title: "on_completed"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::on_completed"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `on_completed`
+
+Set a callback to fire when the action completes.
+
+## Signature
+
+```cpp
+void on_completed(CompletedCallback cb)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 109.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/pause.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/pause.mdx
new file mode 100644
index 0000000000..56ea9a7313
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/pause.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/pause"
+title: "pause"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::pause"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `pause`
+
+Request the server to pause this action. extra\_params may carry e.g. \{"behavior": "continuous"\} for record-side pause.
+
+## Signature
+
+```cpp
+void pause(const json & extra_params = json::object())
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 95.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve-on-detect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve-on-detect.mdx
new file mode 100644
index 0000000000..53b01c3f26
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve-on-detect.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/resolve-on-detect"
+title: "resolve_on_detect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::resolve_on_detect"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `resolve_on_detect`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool resolve_on_detect() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 74.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve-on-result.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve-on-result.mdx
new file mode 100644
index 0000000000..9cb4544e0d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve-on-result.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/resolve-on-result"
+title: "resolve_on_result"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::resolve_on_result"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `resolve_on_result`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool resolve_on_result() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 82.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve.mdx
new file mode 100644
index 0000000000..b346d98024
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/resolve.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/resolve"
+title: "resolve"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::resolve"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `resolve`
+
+Resolve the action immediately (used for call-gone scenarios).
+
+## Signature
+
+```cpp
+void resolve(
+ const std::string & final_state = "finished",
+ const json & result = json::object()
+)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 115.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/result.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/result.mdx
new file mode 100644
index 0000000000..05d6854ca2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/result.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/result"
+title: "result"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::result"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `result`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+const json & result() const
+```
+
+## Returns
+
+`const json &`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/resume.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/resume.mdx
new file mode 100644
index 0000000000..79026158bf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/resume.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/resume"
+title: "resume"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::resume"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `resume`
+
+Request the server to resume this action.
+
+## Signature
+
+```cpp
+void resume()
+```
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 98.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/set-event-type-filter.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/set-event-type-filter.mdx
new file mode 100644
index 0000000000..e0b9bfc5b5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/set-event-type-filter.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/set-event-type-filter"
+title: "set_event_type_filter"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::set_event_type_filter"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `set_event_type_filter`
+
+Set the wire-event types the Action should accept state updates from. Empty (the default) means "match any component event whose
+control\_id matches this Action". Used by play\_and\_collect to listen on calling.call.collect only — a calling.call.play(finished) must NOT resolve a play\_and\_collect action.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_event_type_filter(const std::vector< std::string > & types)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 53.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/set-method-prefix.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/set-method-prefix.mdx
new file mode 100644
index 0000000000..8084cc8d26
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/set-method-prefix.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/set-method-prefix"
+title: "set_method_prefix"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::set_method_prefix"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `set_method_prefix`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_method_prefix(const std::string & prefix)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 44.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/set-resolve-on-detect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/set-resolve-on-detect.mdx
new file mode 100644
index 0000000000..d8803db593
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/set-resolve-on-detect.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/set-resolve-on-detect"
+title: "set_resolve_on_detect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::set_resolve_on_detect"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `set_resolve_on_detect`
+
+Detect actions resolve on the first event carrying a detect payload, not on a state(finished) — see Python's DetectAction. When this flag is set the action's update\_state path resolves only when params.detect is present.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_resolve_on_detect(bool flag)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 71.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/set-resolve-on-result.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/set-resolve-on-result.mdx
new file mode 100644
index 0000000000..8ecd485f63
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/set-resolve-on-result.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/set-resolve-on-result"
+title: "set_resolve_on_result"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::set_resolve_on_result"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `set_resolve_on_result`
+
+Collect actions resolve when an event carries a result payload. A play(finished) earlier in the timeline does NOT resolve a CollectAction — see Python's CollectAction terminal-event logic.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_resolve_on_result(bool flag)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 79.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/start-input-timers.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/start-input-timers.mdx
new file mode 100644
index 0000000000..8b27ad540b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/start-input-timers.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/start-input-timers"
+title: "start_input_timers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::start_input_timers"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `start_input_timers`
+
+Start the inter-digit / final-digit timers on a collect. The matching Python method is StandaloneCollectAction.start\_input\_timers.
+
+## Signature
+
+```cpp
+void start_input_timers()
+```
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 106.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/state.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/state.mdx
new file mode 100644
index 0000000000..624badaed7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/state.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/state"
+title: "state"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::state"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `state`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+const std::string & state() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 33.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/stop.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/stop.mdx
new file mode 100644
index 0000000000..8cd9a883e2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/stop.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/stop"
+title: "stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::stop"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `stop`
+
+Request the server to stop this action. Routes to \.stop so an Action returned by record() sends calling.record.stop rather than calling.play.stop.
+
+## Signature
+
+```cpp
+void stop()
+```
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 90.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/update-state.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/update-state.mdx
new file mode 100644
index 0000000000..21bfc0f359
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/update-state.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/update-state"
+title: "update_state"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::update_state"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `update_state`
+
+Update internal state (called by Call/Client when events arrive).
+
+## Signature
+
+```cpp
+void update_state(
+ const std::string & new_state,
+ const json & result = json::object()
+)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 112.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/volume.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/volume.mdx
new file mode 100644
index 0000000000..1f27af1d85
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/volume.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/volume"
+title: "volume"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::volume"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `volume`
+
+Adjust playback volume (play only). The frame body carries the supplied amount in dB; positive boosts, negative attenuates.
+
+## Signature
+
+```cpp
+void volume(double amount)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/action/wait.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/action/wait.mdx
new file mode 100644
index 0000000000..7529e0596c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/action/wait.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/action/wait"
+title: "wait"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Action::wait"
+ parent: "signalwire::relay::Action"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `wait`
+
+Block until the action completes or times out.
+
+## Signature
+
+```cpp
+bool wait(int timeout_ms = 0)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 85.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/base64-encode.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/base64-encode.mdx
new file mode 100644
index 0000000000..52c8f07278
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/base64-encode.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/relay/base64-encode"
+title: "base64_encode"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::relay::base64_encode"
+ parent: "signalwire::relay"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/relay/websocket.cpp"
+ visibility: "public"
+---
+# `base64_encode`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+std::string base64_encode(const unsigned char * data, size_t len)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/relay/websocket.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/relay/websocket.cpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call-event-handler.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call-event-handler.mdx
new file mode 100644
index 0000000000..7cac58af8b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call-event-handler.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/relay/call-event-handler"
+title: "CallEventHandler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::CallEventHandler"
+ parent: "signalwire::relay"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `CallEventHandler`
+
+Callback for call events.
+
+## Signature
+
+```cpp
+typedef std::function< void(const CallEvent &)> CallEventHandler
+```
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call-event/from-relay-event.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call-event/from-relay-event.mdx
new file mode 100644
index 0000000000..817380c2ef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call-event/from-relay-event.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/call-event/from-relay-event"
+title: "from_relay_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::CallEvent::from_relay_event"
+ parent: "signalwire::relay::CallEvent"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `from_relay_event`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+CallEvent from_relay_event(const RelayEvent & ev)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`CallEvent`
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 45.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call-event/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call-event/index.mdx
new file mode 100644
index 0000000000..8c09d24f28
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call-event/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/relay/call-event"
+title: "CallEvent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::CallEvent"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `CallEvent`
+
+Call-specific event parsed from calling.call.state and other call events.
+
+## Signature
+
+```cpp
+struct signalwire::relay::CallEvent : signalwire::relay::RelayEvent
+```
+
+## Inheritance
+
+**Extends:** [signalwire::relay::RelayEvent](/reference/cpp/signalwire/relay/relay-event)
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 38.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/ai.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/ai.mdx
new file mode 100644
index 0000000000..76a7ae90f7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/ai.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/ai"
+title: "ai"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::ai"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `ai`
+
+## Signature
+
+```cpp
+Action ai(const json & params, const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 78.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/answer.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/answer.mdx
new file mode 100644
index 0000000000..87a2648591
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/answer.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/answer"
+title: "answer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::answer"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `answer`
+
+## Signature
+
+```cpp
+Action answer()
+```
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 50.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/call-id.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/call-id.mdx
new file mode 100644
index 0000000000..120309802f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/call-id.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/call-id"
+title: "call_id"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::call_id"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `call_id`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & call_id() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 38.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/call.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/call.mdx
new file mode 100644
index 0000000000..8dd0f4284c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/call.mdx
@@ -0,0 +1,62 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/call"
+title: "Call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::Call"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `Call`
+
+## Signature
+
+
+
+ ```cpp
+ void Call()
+ ```
+
+
+
+ ```cpp
+ void Call(const std::string & call_id, const std::string & node_id)
+ ```
+
+
+
+ ```cpp
+ void Call(
+ const std::string & call_id,
+ const std::string & node_id,
+ RelayClient * client
+ )
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+## Parameters (Overload 3)
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 33.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/collect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/collect.mdx
new file mode 100644
index 0000000000..59c9e3477d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/collect.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/collect"
+title: "collect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::collect"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `collect`
+
+## Signature
+
+```cpp
+Action collect(const json & params, const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 61.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/connect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/connect.mdx
new file mode 100644
index 0000000000..2d980c53a1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/connect.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/connect"
+title: "connect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::connect"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `connect`
+
+## Signature
+
+```cpp
+Action connect(const json & devices)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 63.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/detect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/detect.mdx
new file mode 100644
index 0000000000..3a8a8db061
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/detect.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/detect"
+title: "detect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::detect"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `detect`
+
+## Signature
+
+```cpp
+Action detect(const json & params, const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 65.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/direction.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/direction.mdx
new file mode 100644
index 0000000000..1bef72b2fe
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/direction.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/direction"
+title: "direction"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::direction"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `direction`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & direction() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 41.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/disconnect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/disconnect.mdx
new file mode 100644
index 0000000000..58a63310b3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/disconnect.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/disconnect"
+title: "disconnect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::disconnect"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `disconnect`
+
+## Signature
+
+```cpp
+Action disconnect()
+```
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 64.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/dispatch-event.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/dispatch-event.mdx
new file mode 100644
index 0000000000..89670101f5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/dispatch-event.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/dispatch-event"
+title: "dispatch_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::dispatch_event"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `dispatch_event`
+
+## Signature
+
+```cpp
+void dispatch_event(const CallEvent & ev)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 107.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/execute-swml.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/execute-swml.mdx
new file mode 100644
index 0000000000..d7acabc57c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/execute-swml.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/execute-swml"
+title: "execute_swml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::execute_swml"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `execute_swml`
+
+## Signature
+
+```cpp
+Action execute_swml(const json & swml)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 93.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/find-action.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/find-action.mdx
new file mode 100644
index 0000000000..e48ce15740
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/find-action.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/find-action"
+title: "find_action"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::find_action"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `find_action`
+
+## Signature
+
+```cpp
+Action * find_action(const std::string & control_id)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action *`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 112.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/from.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/from.mdx
new file mode 100644
index 0000000000..817cc73c0a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/from.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/from"
+title: "from"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::from"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `from`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & from() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/hangup.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/hangup.mdx
new file mode 100644
index 0000000000..d822ae0950
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/hangup.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/hangup"
+title: "hangup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::hangup"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `hangup`
+
+## Signature
+
+```cpp
+Action hangup(const std::string & reason = "hangup")
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 51.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/hold.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/hold.mdx
new file mode 100644
index 0000000000..1d1c0c4a2e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/hold.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/hold"
+title: "hold"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::hold"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `hold`
+
+## Signature
+
+```cpp
+Action hold()
+```
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 88.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/index.mdx
new file mode 100644
index 0000000000..54b4c5d964
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/index.mdx
@@ -0,0 +1,140 @@
+---
+slug: "/reference/cpp/signalwire/relay/call"
+title: "Call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `Call`
+
+Represents a live call with methods for call control. Uses shared internal state so the object can be copied/returned by value. All command methods send JSON-RPC requests through the RelayClient.
+
+## Signature
+
+```cpp
+class signalwire::relay::Call
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/is-answered.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/is-answered.mdx
new file mode 100644
index 0000000000..e77f47e263
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/is-answered.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/is-answered"
+title: "is_answered"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::is_answered"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `is_answered`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_answered() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 46.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/is-ended.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/is-ended.mdx
new file mode 100644
index 0000000000..580673f7aa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/is-ended.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/is-ended"
+title: "is_ended"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::is_ended"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `is_ended`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_ended() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 47.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/join-conference.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/join-conference.mdx
new file mode 100644
index 0000000000..b28b7551d2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/join-conference.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/join-conference"
+title: "join_conference"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::join_conference"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `join_conference`
+
+## Signature
+
+```cpp
+Action join_conference(
+ const std::string & name,
+ const json & params = json::object()
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 91.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/join-room.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/join-room.mdx
new file mode 100644
index 0000000000..d2a9aacb6c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/join-room.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/join-room"
+title: "join_room"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::join_room"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `join_room`
+
+## Signature
+
+```cpp
+Action join_room(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 92.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/live-transcribe.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/live-transcribe.mdx
new file mode 100644
index 0000000000..17a1bf95d8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/live-transcribe.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/live-transcribe"
+title: "live_transcribe"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::live_transcribe"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `live_transcribe`
+
+## Signature
+
+```cpp
+Action live_transcribe(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 74.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/live-translate.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/live-translate.mdx
new file mode 100644
index 0000000000..88187c5c45
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/live-translate.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/live-translate"
+title: "live_translate"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::live_translate"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `live_translate`
+
+## Signature
+
+```cpp
+Action live_translate(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 77.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/node-id.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/node-id.mdx
new file mode 100644
index 0000000000..1aea3d90d5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/node-id.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/node-id"
+title: "node_id"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::node_id"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `node_id`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & node_id() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 39.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/on-event.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/on-event.mdx
new file mode 100644
index 0000000000..900379c2e8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/on-event.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/on-event"
+title: "on_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::on_event"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `on_event`
+
+## Signature
+
+```cpp
+void on_event(CallEventHandler handler)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 96.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/pay.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/pay.mdx
new file mode 100644
index 0000000000..7eb92f2bc6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/pay.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/pay"
+title: "pay"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::pay"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `pay`
+
+## Signature
+
+```cpp
+Action pay(const json & params, const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 80.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/play-and-collect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/play-and-collect.mdx
new file mode 100644
index 0000000000..0f931b5086
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/play-and-collect.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/play-and-collect"
+title: "play_and_collect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::play_and_collect"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `play_and_collect`
+
+## Signature
+
+```cpp
+Action play_and_collect(
+ const json & play_media,
+ const json & collect_params,
+ const std::string & control_id = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 59.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/play.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/play.mdx
new file mode 100644
index 0000000000..a2d5312c6a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/play.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/play"
+title: "play"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::play"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `play`
+
+## Signature
+
+```cpp
+Action play(
+ const json & media,
+ double volume = 0.0,
+ const std::string & control_id = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 52.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/prompt.mdx
new file mode 100644
index 0000000000..f9275c6e0e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/prompt.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/prompt"
+title: "prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::prompt"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `prompt`
+
+## Signature
+
+```cpp
+Action prompt(
+ const json & play_media,
+ const json & collect_params,
+ const std::string & control_id = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 57.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/receive-fax.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/receive-fax.mdx
new file mode 100644
index 0000000000..8fa4bf6099
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/receive-fax.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/receive-fax"
+title: "receive_fax"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::receive_fax"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `receive_fax`
+
+## Signature
+
+```cpp
+Action receive_fax(const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 85.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/record-call.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/record-call.mdx
new file mode 100644
index 0000000000..5ef3b05045
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/record-call.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/record-call"
+title: "record_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::record_call"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `record_call`
+
+## Signature
+
+```cpp
+Action record_call(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 56.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/record.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/record.mdx
new file mode 100644
index 0000000000..a8233cddd1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/record.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/record"
+title: "record"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::record"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `record`
+
+## Signature
+
+```cpp
+Action record(
+ const json & params = json::object(),
+ const std::string & control_id = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/register-action.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/register-action.mdx
new file mode 100644
index 0000000000..604e6f48a8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/register-action.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/register-action"
+title: "register_action"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::register_action"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `register_action`
+
+## Signature
+
+```cpp
+void register_action(const std::string & control_id, Action * action)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 110.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/resolve-all-actions.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/resolve-all-actions.mdx
new file mode 100644
index 0000000000..e797a0d20f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/resolve-all-actions.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/resolve-all-actions"
+title: "resolve_all_actions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::resolve_all_actions"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `resolve_all_actions`
+
+## Signature
+
+```cpp
+void resolve_all_actions(const std::string & final_state = "finished")
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 115.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/send-digits.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/send-digits.mdx
new file mode 100644
index 0000000000..97216f0469
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/send-digits.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/send-digits"
+title: "send_digits"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::send_digits"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `send_digits`
+
+## Signature
+
+```cpp
+Action send_digits(const std::string & digits)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 72.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/send-fax.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/send-fax.mdx
new file mode 100644
index 0000000000..f7476ff7b3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/send-fax.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/send-fax"
+title: "send_fax"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::send_fax"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `send_fax`
+
+## Signature
+
+```cpp
+Action send_fax(
+ const std::string & document_url,
+ const std::string & header = "",
+ const std::string & identity = "",
+ const std::string & control_id = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 82.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/set-client.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-client.mdx
new file mode 100644
index 0000000000..9e9334f5cc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-client.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/set-client"
+title: "set_client"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::set_client"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `set_client`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_client(RelayClient * c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 105.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/set-direction.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-direction.mdx
new file mode 100644
index 0000000000..27a3839783
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-direction.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/set-direction"
+title: "set_direction"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::set_direction"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `set_direction`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_direction(const std::string & dir)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 101.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/set-from.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-from.mdx
new file mode 100644
index 0000000000..aeaffe2b37
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-from.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/set-from"
+title: "set_from"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::set_from"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `set_from`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_from(const std::string & f)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/set-tag.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-tag.mdx
new file mode 100644
index 0000000000..7638692944
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-tag.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/set-tag"
+title: "set_tag"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::set_tag"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `set_tag`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_tag(const std::string & t)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 104.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/set-to.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-to.mdx
new file mode 100644
index 0000000000..3692ec0bd4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/set-to.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/set-to"
+title: "set_to"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::set_to"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `set_to`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void set_to(const std::string & t)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 103.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/sip-refer.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/sip-refer.mdx
new file mode 100644
index 0000000000..ff8268100d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/sip-refer.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/sip-refer"
+title: "sip_refer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::sip_refer"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `sip_refer`
+
+## Signature
+
+```cpp
+Action sip_refer(const std::string & to_uri)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 90.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/state.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/state.mdx
new file mode 100644
index 0000000000..0637bf674c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/state.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/state"
+title: "state"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::state"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `state`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & state() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 40.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/stop-tap.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/stop-tap.mdx
new file mode 100644
index 0000000000..34b5778c31
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/stop-tap.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/stop-tap"
+title: "stop_tap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::stop_tap"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `stop_tap`
+
+## Signature
+
+```cpp
+Action stop_tap(const std::string & control_id)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 71.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/stream.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/stream.mdx
new file mode 100644
index 0000000000..ca2373eaf3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/stream.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/stream"
+title: "stream"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::stream"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `stream`
+
+## Signature
+
+```cpp
+Action stream(const json & params, const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 86.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/tag.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/tag.mdx
new file mode 100644
index 0000000000..aa574c2233
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/tag.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/tag"
+title: "tag"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::tag"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `tag`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & tag() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 44.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/tap-audio.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/tap-audio.mdx
new file mode 100644
index 0000000000..e3ba2b5a85
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/tap-audio.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/tap-audio"
+title: "tap_audio"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::tap_audio"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `tap_audio`
+
+## Signature
+
+```cpp
+Action tap_audio(const json & params, const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 67.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/tap.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/tap.mdx
new file mode 100644
index 0000000000..964793585d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/tap.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/tap"
+title: "tap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::tap"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `tap`
+
+## Signature
+
+```cpp
+Action tap(const json & params, const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 69.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/to.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/to.mdx
new file mode 100644
index 0000000000..4245ba9d02
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/to.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/to"
+title: "to"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::to"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `to`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & to() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 43.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/transcribe.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/transcribe.mdx
new file mode 100644
index 0000000000..b40c4538f3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/transcribe.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/transcribe"
+title: "transcribe"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::transcribe"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `transcribe`
+
+## Signature
+
+```cpp
+Action transcribe(
+ const json & params = json::object(),
+ const std::string & control_id = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 75.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/transfer.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/transfer.mdx
new file mode 100644
index 0000000000..1b25f8f812
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/transfer.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/transfer"
+title: "transfer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::transfer"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `transfer`
+
+## Signature
+
+```cpp
+Action transfer(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 73.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/unhold.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/unhold.mdx
new file mode 100644
index 0000000000..e8e40138ea
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/unhold.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/unhold"
+title: "unhold"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::unhold"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `unhold`
+
+## Signature
+
+```cpp
+Action unhold()
+```
+
+## Returns
+
+`Action`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 89.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/unregister-action.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/unregister-action.mdx
new file mode 100644
index 0000000000..27e29dbb36
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/unregister-action.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/unregister-action"
+title: "unregister_action"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::unregister_action"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `unregister_action`
+
+## Signature
+
+```cpp
+void unregister_action(const std::string & control_id)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 111.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/update-state.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/update-state.mdx
new file mode 100644
index 0000000000..c02a64b947
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/update-state.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/update-state"
+title: "update_state"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::update_state"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `update_state`
+
+## Signature
+
+```cpp
+void update_state(const std::string & new_state)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 100.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/call/wait-for-ended.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/call/wait-for-ended.mdx
new file mode 100644
index 0000000000..8b1b193f0f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/call/wait-for-ended.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/call/wait-for-ended"
+title: "wait_for_ended"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Call::wait_for_ended"
+ parent: "signalwire::relay::Call"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp"
+ visibility: "public"
+---
+# `wait_for_ended`
+
+## Signature
+
+```cpp
+bool wait_for_ended(int timeout_ms = 0)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/call.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/call.hpp)
+
+Line 97.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/component-event/from-relay-event.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/component-event/from-relay-event.mdx
new file mode 100644
index 0000000000..2174e9d3ca
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/component-event/from-relay-event.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/component-event/from-relay-event"
+title: "from_relay_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::ComponentEvent::from_relay_event"
+ parent: "signalwire::relay::ComponentEvent"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `from_relay_event`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+ComponentEvent from_relay_event(const RelayEvent & ev)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`ComponentEvent`
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 71.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/component-event/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/component-event/index.mdx
new file mode 100644
index 0000000000..561f2601a2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/component-event/index.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/relay/component-event"
+title: "ComponentEvent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::ComponentEvent"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `ComponentEvent`
+
+Play/Record/Collect component event with control\_id for action routing.
+
+## Signature
+
+```cpp
+struct signalwire::relay::ComponentEvent : signalwire::relay::RelayEvent
+```
+
+## Inheritance
+
+**Extends:** [signalwire::relay::RelayEvent](/reference/cpp/signalwire/relay/relay-event)
+
+## Properties
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 66.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/dial-event/from-relay-event.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/dial-event/from-relay-event.mdx
new file mode 100644
index 0000000000..f9199b2b18
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/dial-event/from-relay-event.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/dial-event/from-relay-event"
+title: "from_relay_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::DialEvent::from_relay_event"
+ parent: "signalwire::relay::DialEvent"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `from_relay_event`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+DialEvent from_relay_event(const RelayEvent & ev)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`DialEvent`
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 113.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/dial-event/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/dial-event/index.mdx
new file mode 100644
index 0000000000..45778bcbc3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/dial-event/index.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/relay/dial-event"
+title: "DialEvent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::DialEvent"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `DialEvent`
+
+Dial-specific event with nested call info and tag-based correlation.
+
+## Signature
+
+```cpp
+struct signalwire::relay::DialEvent : signalwire::relay::RelayEvent
+```
+
+## Inheritance
+
+**Extends:** [signalwire::relay::RelayEvent](/reference/cpp/signalwire/relay/relay-event)
+
+## Properties
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 108.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/event-handler.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/event-handler.mdx
new file mode 100644
index 0000000000..ed8c516d35
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/event-handler.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/relay/event-handler"
+title: "EventHandler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::EventHandler"
+ parent: "signalwire::relay"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `EventHandler`
+
+Generic callback for any inbound signalwire.event. Fired in addition to the typed handlers (on\_call, on\_message, action callbacks). Useful for tracing and for tests/audits that need to assert event delivery.
+
+## Signature
+
+```cpp
+typedef std::function< void(const RelayEvent &)> EventHandler
+```
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/inbound-call-handler.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/inbound-call-handler.mdx
new file mode 100644
index 0000000000..73a0db4b53
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/inbound-call-handler.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/relay/inbound-call-handler"
+title: "InboundCallHandler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::InboundCallHandler"
+ parent: "signalwire::relay"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `InboundCallHandler`
+
+Callback for inbound calls.
+
+## Signature
+
+```cpp
+typedef std::function< void(Call &)> InboundCallHandler
+```
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 29.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/inbound-message-handler.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/inbound-message-handler.mdx
new file mode 100644
index 0000000000..3ccaa4fef9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/inbound-message-handler.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/relay/inbound-message-handler"
+title: "InboundMessageHandler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::InboundMessageHandler"
+ parent: "signalwire::relay"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `InboundMessageHandler`
+
+Callback for inbound messages.
+
+## Signature
+
+```cpp
+typedef std::function< void(const Message &)> InboundMessageHandler
+```
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/index.mdx
new file mode 100644
index 0000000000..d6524ff0fd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/index.mdx
@@ -0,0 +1,179 @@
+---
+slug: "/reference/cpp/signalwire/relay"
+title: "relay"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::relay"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+---
+# `relay`
+
+## Signature
+
+```cpp
+namespace signalwire::relay
+```
+
+## Constants
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Functions
+
+
+
+
+
+
+
+## Type Aliases
+
+
+
+ Callback for call events.
+
+
+
+ Generic callback for any inbound signalwire.event. Fired in addition to the typed handlers (on\_call, on\_message, action callbacks). Useful for tracing and for tests/audits that need to assert event delivery.
+
+
+
+ Callback for inbound calls.
+
+
+
+ Callback for inbound messages.
+
+
+
+
+
+## Classes
+
+
+
+ Represents a controllable in-progress operation (play, record, collect, etc.) Uses shared internal state so the object can be copied/moved freely while maintaining a single underlying condition\_variable for synchronization.
+
+
+
+ Represents a live call with methods for call control. Uses shared internal state so the object can be copied/returned by value. All command methods send JSON-RPC requests through the RelayClient.
+
+
+
+ Call-specific event parsed from calling.call.state and other call events.
+
+
+
+ Play/Record/Collect component event with control\_id for action routing.
+
+
+
+ Dial-specific event with nested call info and tag-based correlation.
+
+
+
+ Represents an SMS/MMS message tracked through delivery states. States: "queued", "initiated", "sent", "delivered", "undelivered", "failed" Uses shared internal state so the object can be copied/returned by value — copies of a Message observe the same state updates as the underlying instance the registry tracks.
+
+
+
+ Messaging event for SMS/MMS state changes and inbound messages.
+
+
+
+ Real-time call control and messaging client over WebSocket. Implements the full JSON-RPC 2.0 protocol with four correlation mechanisms: JSON-RPC id -> pending map for RPC response matching call\_id -> Call object map for event routing control\_id -> Action per Call for action event routing tag -> pending dials map for dial event matching
+
+
+
+ Configuration for the RELAY client.
+
+
+
+ Base class for all RELAY events parsed from signalwire.event JSON-RPC messages.
+
+
+
+ Minimal WebSocket client using raw TCP sockets + OpenSSL TLS. Implements RFC 6455 text frame encoding/decoding for JSON-RPC transport.
+
+
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/json.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/json.mdx
new file mode 100644
index 0000000000..8a7e5bcbfb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::json"
+ parent: "signalwire::relay"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/relay/action.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/action.hpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message-event/from-relay-event.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message-event/from-relay-event.mdx
new file mode 100644
index 0000000000..0a48c45551
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message-event/from-relay-event.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/message-event/from-relay-event"
+title: "from_relay_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::MessageEvent::from_relay_event"
+ parent: "signalwire::relay::MessageEvent"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `from_relay_event`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+MessageEvent from_relay_event(const RelayEvent & ev)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`MessageEvent`
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 92.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message-event/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message-event/index.mdx
new file mode 100644
index 0000000000..b1b0bd95b8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message-event/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/relay/message-event"
+title: "MessageEvent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::MessageEvent"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `MessageEvent`
+
+Messaging event for SMS/MMS state changes and inbound messages.
+
+## Signature
+
+```cpp
+struct signalwire::relay::MessageEvent : signalwire::relay::RelayEvent
+```
+
+## Inheritance
+
+**Extends:** [signalwire::relay::RelayEvent](/reference/cpp/signalwire/relay/relay-event)
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 85.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/completed-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/completed-callback.mdx
new file mode 100644
index 0000000000..d7018096ee
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/completed-callback.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/completed-callback"
+title: "CompletedCallback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::CompletedCallback"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `CompletedCallback`
+
+## Signature
+
+```cpp
+typedef std::function< void(const Message &)> CompletedCallback
+```
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/from-params.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/from-params.mdx
new file mode 100644
index 0000000000..db811008dd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/from-params.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/from-params"
+title: "from_params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::from_params"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `from_params`
+
+Parse from a RELAY event params object.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+Message from_params(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Message`
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 33.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/index.mdx
new file mode 100644
index 0000000000..9118645aa7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/index.mdx
@@ -0,0 +1,94 @@
+---
+slug: "/reference/cpp/signalwire/relay/message"
+title: "Message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `Message`
+
+Represents an SMS/MMS message tracked through delivery states. States: "queued", "initiated", "sent", "delivered", "undelivered", "failed" Uses shared internal state so the object can be copied/returned by value — copies of a Message observe the same state updates as the underlying instance the registry tracks.
+
+## Signature
+
+```cpp
+struct signalwire::relay::Message
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+ Parse from a RELAY event params object.
+
+
+
+
+
+
+
+
+
+
+
+ Set callback for when message reaches terminal state. If the message is already terminal the callback fires immediately.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Update state from a messaging.state event. Notifies waiters / callbacks when the state is terminal.
+
+
+
+ Block until message reaches a terminal state. Returns true if terminal, false on timeout.
+
+
+
+## Type Aliases
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/is-delivered.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/is-delivered.mdx
new file mode 100644
index 0000000000..8bf21dfd03
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/is-delivered.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/is-delivered"
+title: "is_delivered"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::is_delivered"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `is_delivered`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_delivered() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 53.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/is-failed.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/is-failed.mdx
new file mode 100644
index 0000000000..e87935e79a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/is-failed.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/is-failed"
+title: "is_failed"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::is_failed"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `is_failed`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_failed() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/is-terminal.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/is-terminal.mdx
new file mode 100644
index 0000000000..d0eed463cd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/is-terminal.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/is-terminal"
+title: "is_terminal"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::is_terminal"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `is_terminal`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_terminal() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 58.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/message.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/message.mdx
new file mode 100644
index 0000000000..74d55f3532
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/message.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/message"
+title: "Message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::Message"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `Message`
+
+## Signature
+
+
+
+ ```cpp
+ void Message()
+ ```
+
+
+
+ ```cpp
+ void Message(const Message &)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 27.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/message__2.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/message__2.mdx
new file mode 100644
index 0000000000..93b7fa5e0c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/message__2.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/message__2"
+title: "~Message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::~Message"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `~Message`
+
+## Signature
+
+```cpp
+void ~Message()
+```
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 30.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/on-completed.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/on-completed.mdx
new file mode 100644
index 0000000000..07a409ca80
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/on-completed.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/on-completed"
+title: "on_completed"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::on_completed"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `on_completed`
+
+Set callback for when message reaches terminal state. If the message is already terminal the callback fires immediately.
+
+## Signature
+
+```cpp
+void on_completed(CompletedCallback cb)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 70.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/operator.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/operator.mdx
new file mode 100644
index 0000000000..0aae723f06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/operator.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/operator"
+title: "operator="
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::operator="
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `operator=`
+
+## Signature
+
+```cpp
+Message & operator=(const Message &)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Message &`
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 29.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/reason.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/reason.mdx
new file mode 100644
index 0000000000..c7e6f85637
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/reason.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/reason"
+title: "reason"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::reason"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `reason`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+const std::string & reason() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 49.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/set-reason.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/set-reason.mdx
new file mode 100644
index 0000000000..7fbb50cab3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/set-reason.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/set-reason"
+title: "set_reason"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::set_reason"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `set_reason`
+
+## Signature
+
+```cpp
+void set_reason(const std::string & r)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 51.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/set-state.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/set-state.mdx
new file mode 100644
index 0000000000..d9dc2525ae
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/set-state.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/set-state"
+title: "set_state"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::set_state"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `set_state`
+
+## Signature
+
+```cpp
+void set_state(const std::string & s)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 50.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/state.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/state.mdx
new file mode 100644
index 0000000000..d86d25a57e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/state.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/state"
+title: "state"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::state"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `state`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+const std::string & state() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/update-state.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/update-state.mdx
new file mode 100644
index 0000000000..561b184469
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/update-state.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/update-state"
+title: "update_state"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::update_state"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `update_state`
+
+Update state from a messaging.state event. Notifies waiters / callbacks when the state is terminal.
+
+## Signature
+
+```cpp
+void update_state(const std::string & new_state)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 62.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/message/wait.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/message/wait.mdx
new file mode 100644
index 0000000000..c51571cd28
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/message/wait.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/message/wait"
+title: "wait"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::Message::wait"
+ parent: "signalwire::relay::Message"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp"
+ visibility: "public"
+---
+# `wait`
+
+Block until message reaches a terminal state. Returns true if terminal, false on timeout.
+
+## Signature
+
+```cpp
+bool wait(int timeout_ms = 0)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/message.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/message.hpp)
+
+Line 66.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/config.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/config.mdx
new file mode 100644
index 0000000000..caa999593d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/config.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/config"
+title: "config"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::config"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `config`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const RelayConfig & config() const
+```
+
+## Returns
+
+`const RelayConfig &`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 132.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/connect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/connect.mdx
new file mode 100644
index 0000000000..ff21978318
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/connect.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/connect"
+title: "connect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::connect"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `connect`
+
+## Signature
+
+```cpp
+bool connect()
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 77.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/dial.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/dial.mdx
new file mode 100644
index 0000000000..33b8c4304e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/dial.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/dial"
+title: "dial"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::dial"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `dial`
+
+Dial outbound. The devices argument is the nested "device-of-leg-of-leg" array used by the Python SDK (\[\[\{type:phone,...\}]]). Returns a Call once the server emits calling.call.dial(answered) for the dial's tag, or an empty Call on timeout / failure.
+tag lets callers pin an explicit dial tag for journal-based assertions; if blank, a UUID is generated. dial\_timeout\_ms caps how long dial() blocks waiting for the server's terminal dial event. max\_duration (seconds) is forwarded into the calling.dial frame when non-zero.
+
+## Signature
+
+```cpp
+Call dial(
+ const json & devices,
+ const std::string & tag = "",
+ int dial_timeout_ms = 120000,
+ int max_duration = 0
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`Call`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 97.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/disconnect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/disconnect.mdx
new file mode 100644
index 0000000000..4bed3acc9b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/disconnect.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/disconnect"
+title: "disconnect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::disconnect"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `disconnect`
+
+## Signature
+
+```cpp
+void disconnect()
+```
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 78.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/execute.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/execute.mdx
new file mode 100644
index 0000000000..0d893a5851
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/execute.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/execute"
+title: "execute"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::execute"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `execute`
+
+## Signature
+
+```cpp
+json execute(const std::string & method, const json & params)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 136.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/find-call.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/find-call.mdx
new file mode 100644
index 0000000000..5ef9b92233
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/find-call.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/find-call"
+title: "find_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::find_call"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `find_call`
+
+## Signature
+
+```cpp
+Call * find_call(const std::string & call_id)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Call *`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 141.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/from-env.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/from-env.mdx
new file mode 100644
index 0000000000..850b3bd4c4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/from-env.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/from-env"
+title: "from_env"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::from_env"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `from_env`
+
+Construct from environment variables: SIGNALWIRE\_PROJECT\_ID, SIGNALWIRE\_API\_TOKEN, SIGNALWIRE\_SPACE
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+RelayClient from_env()
+```
+
+## Returns
+
+`RelayClient`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 74.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/index.mdx
new file mode 100644
index 0000000000..8eac6c83e1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/index.mdx
@@ -0,0 +1,94 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client"
+title: "RelayClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `RelayClient`
+
+Real-time call control and messaging client over WebSocket. Implements the full JSON-RPC 2.0 protocol with four correlation mechanisms:
+JSON-RPC id -> pending map for RPC response matching
+call\_id -> Call object map for event routing
+control\_id -> Action per Call for action event routing
+tag -> pending dials map for dial event matching
+
+## Signature
+
+```cpp
+class signalwire::relay::RelayClient
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+ Dial outbound. The devices argument is the nested "device-of-leg-of-leg" array used by the Python SDK (\[\[\{type:phone,...\}]]). Returns a Call once the server emits calling.call.dial(answered) for the dial's tag, or an empty Call on timeout / failure. tag lets callers pin an explicit dial tag for journal-based assertions; if blank, a UUID is generated. dial\_timeout\_ms caps how long dial() blocks waiting for the server's terminal dial event. max\_duration (seconds) is forwarded into the calling.dial frame when non-zero.
+
+
+
+
+
+
+
+
+
+ Construct from environment variables: SIGNALWIRE\_PROJECT\_ID, SIGNALWIRE\_API\_TOKEN, SIGNALWIRE\_SPACE
+
+
+
+
+
+
+
+ Register a generic event observer. Called for every dispatched signalwire.event after typed routing (on\_call/on\_message/action callbacks) has run. Multiple registrations are NOT supported — the most-recent registration wins.
+
+
+
+
+
+
+
+
+
+
+
+ Construct from explicit configuration.
+
+
+
+
+
+ Send an SMS/MMS message via messaging.send. Returns a Message tracker whose state advances as the server pushes messaging.state events. Use Message::wait() to block until the terminal state (delivered / undelivered / failed).
+
+
+
+ Send a JSON-RPC request to the server. Public so harnesses and tests can drive arbitrary methods (e.g. an explicit signalwire.subscribe ack frame for the audit fixture).
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 56.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/is-connected.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/is-connected.mdx
new file mode 100644
index 0000000000..7653271d3d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/is-connected.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/is-connected"
+title: "is_connected"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::is_connected"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `is_connected`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_connected() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 80.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-call.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-call.mdx
new file mode 100644
index 0000000000..51a1c1086a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-call.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/on-call"
+title: "on_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::on_call"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `on_call`
+
+## Signature
+
+```cpp
+void on_call(InboundCallHandler handler)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 83.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-event.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-event.mdx
new file mode 100644
index 0000000000..8958e58828
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-event.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/on-event"
+title: "on_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::on_event"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `on_event`
+
+Register a generic event observer. Called for every dispatched signalwire.event after typed routing (on\_call/on\_message/action callbacks) has run. Multiple registrations are NOT supported — the most-recent registration wins.
+
+## Signature
+
+```cpp
+void on_event(EventHandler handler)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 106.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-message.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-message.mdx
new file mode 100644
index 0000000000..daf9e11675
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/on-message.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/on-message"
+title: "on_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::on_message"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `on_message`
+
+## Signature
+
+```cpp
+void on_message(InboundMessageHandler handler)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 114.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/operator.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/operator.mdx
new file mode 100644
index 0000000000..5176c46b3f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/operator.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/operator"
+title: "operator="
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::operator="
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `operator=`
+
+## Signature
+
+```cpp
+RelayClient & operator=(const RelayClient &)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`RelayClient &`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 70.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/register-call.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/register-call.mdx
new file mode 100644
index 0000000000..0e6004efaf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/register-call.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/register-call"
+title: "register_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::register_call"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `register_call`
+
+## Signature
+
+```cpp
+void register_call(const std::string & call_id, Call * call)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 139.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-client.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-client.mdx
new file mode 100644
index 0000000000..83173dd0c0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-client.mdx
@@ -0,0 +1,71 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/relay-client"
+title: "RelayClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::RelayClient"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `RelayClient`
+
+Construct from explicit configuration.
+
+**Modifiers:** `explicit`
+
+## Signature
+
+
+
+ ```cpp
+ void RelayClient(const RelayConfig & config = RelayConfig{})
+ ```
+
+
+
+ ```cpp
+ void RelayClient(
+ const std::string & project,
+ const std::string & token,
+ const std::string & host = DEFAULT_HOST,
+ const std::vector< std::string > & contexts = {"default"}
+ )
+ ```
+
+
+
+ ```cpp
+ void RelayClient(const RelayClient &)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+
+
+
+
+## Parameters (Overload 3)
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 59.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-client__2.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-client__2.mdx
new file mode 100644
index 0000000000..c73468f104
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-client__2.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/relay-client__2"
+title: "~RelayClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::~RelayClient"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `~RelayClient`
+
+## Signature
+
+```cpp
+void ~RelayClient()
+```
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 67.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-protocol.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-protocol.mdx
new file mode 100644
index 0000000000..12974791e0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/relay-protocol.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/relay-protocol"
+title: "relay_protocol"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::relay_protocol"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `relay_protocol`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & relay_protocol() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 133.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/run.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/run.mdx
new file mode 100644
index 0000000000..48e6300223
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/run.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/run"
+title: "run"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::run"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `run`
+
+## Signature
+
+```cpp
+void run()
+```
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 79.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/send-message.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/send-message.mdx
new file mode 100644
index 0000000000..e5307f8d72
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/send-message.mdx
@@ -0,0 +1,58 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/send-message"
+title: "send_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::send_message"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `send_message`
+
+Send an SMS/MMS message via messaging.send. Returns a Message tracker whose state advances as the server pushes messaging.state events. Use Message::wait() to block until the terminal state (delivered / undelivered / failed).
+
+## Signature
+
+```cpp
+Message send_message(
+ const std::string & from,
+ const std::string & to,
+ const std::string & body,
+ const std::vector< std::string > & media = {},
+ const std::vector< std::string > & tags = {},
+ const std::string & region = "",
+ const std::string & context = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`Message`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 120.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/send-raw-request.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/send-raw-request.mdx
new file mode 100644
index 0000000000..2e20930060
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/send-raw-request.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/send-raw-request"
+title: "send_raw_request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::send_raw_request"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `send_raw_request`
+
+Send a JSON-RPC request to the server. Public so harnesses and tests can drive arbitrary methods (e.g. an explicit signalwire.subscribe ack frame for the audit fixture).
+
+## Signature
+
+```cpp
+json send_raw_request(const std::string & method, const json & params)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 111.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/subscribe.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/subscribe.mdx
new file mode 100644
index 0000000000..a2dedca38e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/subscribe.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/subscribe"
+title: "subscribe"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::subscribe"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `subscribe`
+
+## Signature
+
+```cpp
+void subscribe(const std::vector< std::string > & contexts)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 128.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/unregister-call.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/unregister-call.mdx
new file mode 100644
index 0000000000..c911cc0b45
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/unregister-call.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/unregister-call"
+title: "unregister_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::unregister_call"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `unregister_call`
+
+## Signature
+
+```cpp
+void unregister_call(const std::string & call_id)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 140.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/unsubscribe.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/unsubscribe.mdx
new file mode 100644
index 0000000000..64e07de1ff
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-client/unsubscribe.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-client/unsubscribe"
+title: "unsubscribe"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayClient::unsubscribe"
+ parent: "signalwire::relay::RelayClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `unsubscribe`
+
+## Signature
+
+```cpp
+void unsubscribe(const std::vector< std::string > & contexts)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 129.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-config/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-config/index.mdx
new file mode 100644
index 0000000000..e662208502
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-config/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-config"
+title: "RelayConfig"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayConfig"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp"
+ visibility: "public"
+---
+# `RelayConfig`
+
+Configuration for the RELAY client.
+
+## Signature
+
+```cpp
+struct signalwire::relay::RelayConfig
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/client.hpp)
+
+Line 40.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/from-json.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/from-json.mdx
new file mode 100644
index 0000000000..919ca094b8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/from-json.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-event/from-json"
+title: "from_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayEvent::from_json"
+ parent: "signalwire::relay::RelayEvent"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `from_json`
+
+Parse from a signalwire.event params JSON. The outer params contains event\_type and the inner params with event-specific data.
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+RelayEvent from_json(const json & j)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`RelayEvent`
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/index.mdx
new file mode 100644
index 0000000000..bdd24a3d1c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-event"
+title: "RelayEvent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayEvent"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `RelayEvent`
+
+Base class for all RELAY events parsed from signalwire.event JSON-RPC messages.
+
+## Signature
+
+```cpp
+struct signalwire::relay::RelayEvent
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+ Parse from a signalwire.event params JSON. The outer params contains event\_type and the inner params with event-specific data.
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/relay-event.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/relay-event.mdx
new file mode 100644
index 0000000000..bfb3d9807e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/relay-event/relay-event.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/relay/relay-event/relay-event"
+title: "RelayEvent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::RelayEvent::RelayEvent"
+ parent: "signalwire::relay::RelayEvent"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp"
+ visibility: "public"
+---
+# `RelayEvent`
+
+## Signature
+
+
+
+ ```cpp
+ void RelayEvent()
+ ```
+
+
+
+ ```cpp
+ void RelayEvent(const std::string & type)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/relay/relay_event.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/relay_event.hpp)
+
+Line 23.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/tcp-connect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/tcp-connect.mdx
new file mode 100644
index 0000000000..402a015eb7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/tcp-connect.mdx
@@ -0,0 +1,49 @@
+---
+slug: "/reference/cpp/signalwire/relay/tcp-connect"
+title: "tcp_connect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::relay::tcp_connect"
+ parent: "signalwire::relay"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/relay/websocket.cpp"
+ visibility: "public"
+---
+# `tcp_connect`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+bool tcp_connect(
+ int & sock_fd,
+ const std::string & host,
+ int port,
+ WebSocketClient::ErrorCallback & on_error
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/relay/websocket.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/relay/websocket.cpp)
+
+Line 81.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/close-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/close-callback.mdx
new file mode 100644
index 0000000000..a2b959df23
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/close-callback.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/close-callback"
+title: "CloseCallback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::CloseCallback"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `CloseCallback`
+
+## Signature
+
+```cpp
+typedef std::function< void(int code, const std::string &reason)> CloseCallback
+```
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 21.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/close.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/close.mdx
new file mode 100644
index 0000000000..61bec83b6e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/close.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/close"
+title: "close"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::close"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `close`
+
+Close the WebSocket connection gracefully.
+
+## Signature
+
+```cpp
+void close(int code = 1000, const std::string & reason = "")
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 39.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/connect-plain.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/connect-plain.mdx
new file mode 100644
index 0000000000..c11bfb7668
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/connect-plain.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/connect-plain"
+title: "connect_plain"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::connect_plain"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `connect_plain`
+
+Connect to ws://host:port/ without TLS (plain TCP). Used by audit fixtures and local dev servers that don't speak TLS. Production always uses TLS via the connect() overload above.
+
+## Signature
+
+```cpp
+bool connect_plain(const std::string & host, int port)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/connect.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/connect.mdx
new file mode 100644
index 0000000000..4bb4faa9c8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/connect.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/connect"
+title: "connect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::connect"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `connect`
+
+Connect to wss://host:port/ with TLS.
+
+## Signature
+
+```cpp
+bool connect(const std::string & host, int port = 443)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/error-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/error-callback.mdx
new file mode 100644
index 0000000000..f9049e5c06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/error-callback.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/error-callback"
+title: "ErrorCallback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::ErrorCallback"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `ErrorCallback`
+
+## Signature
+
+```cpp
+typedef std::function< void(const std::string &error)> ErrorCallback
+```
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/index.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/index.mdx
new file mode 100644
index 0000000000..840a24b14b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/index.mdx
@@ -0,0 +1,82 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client"
+title: "WebSocketClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient"
+ parent: "signalwire::relay"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `WebSocketClient`
+
+Minimal WebSocket client using raw TCP sockets + OpenSSL TLS. Implements RFC 6455 text frame encoding/decoding for JSON-RPC transport.
+
+## Signature
+
+```cpp
+class signalwire::relay::WebSocketClient
+```
+
+## Methods
+
+
+
+
+
+ Close the WebSocket connection gracefully.
+
+
+
+ Connect to wss://host:port/ with TLS.
+
+
+
+ Connect to ws://host:port/ without TLS (plain TCP). Used by audit fixtures and local dev servers that don't speak TLS. Production always uses TLS via the connect() overload above.
+
+
+
+ Check if connected.
+
+
+
+ Set callback for connection close.
+
+
+
+ Set callback for errors.
+
+
+
+ Set callback for received text messages.
+
+
+
+
+
+ Send a text frame.
+
+
+
+
+
+## Type Aliases
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 18.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/is-connected.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/is-connected.mdx
new file mode 100644
index 0000000000..2acc2abbc5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/is-connected.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/is-connected"
+title: "is_connected"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::is_connected"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `is_connected`
+
+Check if connected.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool is_connected() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 45.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/message-callback.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/message-callback.mdx
new file mode 100644
index 0000000000..d865072d72
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/message-callback.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/message-callback"
+title: "MessageCallback"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::MessageCallback"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `MessageCallback`
+
+## Signature
+
+```cpp
+typedef std::function< void(const std::string &)> MessageCallback
+```
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 20.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-close.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-close.mdx
new file mode 100644
index 0000000000..8582a451d0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-close.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/on-close"
+title: "on_close"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::on_close"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `on_close`
+
+Set callback for connection close.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void on_close(CloseCallback cb)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 51.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-error.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-error.mdx
new file mode 100644
index 0000000000..ca640a53f0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-error.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/on-error"
+title: "on_error"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::on_error"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `on_error`
+
+Set callback for errors.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void on_error(ErrorCallback cb)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-message.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-message.mdx
new file mode 100644
index 0000000000..74260b9134
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/on-message.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/on-message"
+title: "on_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::on_message"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `on_message`
+
+Set callback for received text messages.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void on_message(MessageCallback cb)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/operator.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/operator.mdx
new file mode 100644
index 0000000000..7d1cc78521
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/operator.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/operator"
+title: "operator="
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::operator="
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `operator=`
+
+## Signature
+
+```cpp
+WebSocketClient & operator=(const WebSocketClient &)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`WebSocketClient &`
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/send.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/send.mdx
new file mode 100644
index 0000000000..5c79d43138
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/send.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/send"
+title: "send"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::send"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `send`
+
+Send a text frame.
+
+## Signature
+
+```cpp
+bool send(const std::string & message)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/web-socket-client.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/web-socket-client.mdx
new file mode 100644
index 0000000000..b75ade50b0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/web-socket-client.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/web-socket-client"
+title: "WebSocketClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::WebSocketClient"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `WebSocketClient`
+
+## Signature
+
+
+
+ ```cpp
+ void WebSocketClient()
+ ```
+
+
+
+ ```cpp
+ void WebSocketClient(const WebSocketClient &)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/web-socket-client__2.mdx b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/web-socket-client__2.mdx
new file mode 100644
index 0000000000..1cf02e2a58
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/relay/web-socket-client/web-socket-client__2.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/relay/web-socket-client/web-socket-client__2"
+title: "~WebSocketClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::relay::WebSocketClient::~WebSocketClient"
+ parent: "signalwire::relay::WebSocketClient"
+ module: "signalwire.relay"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp"
+ visibility: "public"
+---
+# `~WebSocketClient`
+
+## Signature
+
+```cpp
+void ~WebSocketClient()
+```
+
+## Source
+
+[`include/signalwire/relay/websocket.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/relay/websocket.hpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest-client.mdx b/fern/products/sdk-reference/cpp/signalwire/rest-client.mdx
new file mode 100644
index 0000000000..ca375fcfcf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest-client.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/rest-client"
+title: "RestClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::RestClient"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/signalwire.cpp"
+ visibility: "public"
+---
+# `RestClient`
+
+Top-level convenience entry points — mirror Python's signalwire/**init**.py package-level helpers (RestClient, register\_skill, add\_skill\_directory, list\_skills\_with\_params).
+The audit projects each free function onto the canonical Python signalwire.<name> path. RestClient preserves PascalCase to match Python's same-cased factory function name. Construct a rest::RestClient from positional or keyword credentials.
+Mirrors Python's top-level signalwire.RestClient(\*args, \*\*kwargs) factory — a thin wrapper that lazy-imports signalwire.rest.RestClient and instantiates it. Supports both positional credentials (args = \{project, token, space\}) and keyword credentials (kwargs\["project"] etc.) with environment-variable fallback.
+
+std::invalid\_argument
+
+when credentials cannot be derived from either args, kwargs, or the standard environment variables (SIGNALWIRE\_PROJECT\_ID, SIGNALWIRE\_API\_TOKEN, SIGNALWIRE\_SPACE).
+
+## Signature
+
+```cpp
+rest::RestClient RestClient(
+ const std::vector< std::string > & args = {},
+ const std::map< std::string, std::string > & kwargs = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`rest::RestClient`
+
+## Throws
+
+- `std::invalid_argument` — when credentials cannot be derived from either args, kwargs, or the standard environment variables (SIGNALWIRE\_PROJECT\_ID, SIGNALWIRE\_API\_TOKEN, SIGNALWIRE\_SPACE).
+
+## Source
+
+[`src/signalwire.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/signalwire.cpp)
+
+Line 46.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/create.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/create.mdx
new file mode 100644
index 0000000000..a4de7b94b8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/create.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/crud-resource/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::CrudResource::create"
+ parent: "signalwire::rest::CrudResource"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `create`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json create(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 78.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/crud-resource.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/crud-resource.mdx
new file mode 100644
index 0000000000..c21ec28a85
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/crud-resource.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/crud-resource/crud-resource"
+title: "CrudResource"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::CrudResource::CrudResource"
+ parent: "signalwire::rest::CrudResource"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `CrudResource`
+
+## Signature
+
+```cpp
+void CrudResource(const HttpClient & client, const std::string & base_path)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 75.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/del.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/del.mdx
new file mode 100644
index 0000000000..fa7dde578c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/del.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/crud-resource/del"
+title: "del"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::CrudResource::del"
+ parent: "signalwire::rest::CrudResource"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `del`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json del(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 81.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/get.mdx
new file mode 100644
index 0000000000..73b8d54f88
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/crud-resource/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::CrudResource::get"
+ parent: "signalwire::rest::CrudResource"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json get(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 79.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/index.mdx
new file mode 100644
index 0000000000..fcb9ca5c99
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/crud-resource"
+title: "CrudResource"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::CrudResource"
+ parent: "signalwire::rest"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `CrudResource`
+
+Generic CRUD resource for REST API namespaces.
+
+## Signature
+
+```cpp
+class signalwire::rest::CrudResource
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 73.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/list.mdx
new file mode 100644
index 0000000000..897f99541d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/crud-resource/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::CrudResource::list"
+ parent: "signalwire::rest::CrudResource"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 77.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/update.mdx
new file mode 100644
index 0000000000..96ecc9a03c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/crud-resource/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/crud-resource/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::CrudResource::update"
+ parent: "signalwire::rest::CrudResource"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json update(const std::string & id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 80.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/base-url.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/base-url.mdx
new file mode 100644
index 0000000000..43c9a4d1ea
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/base-url.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/base-url"
+title: "base_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::base_url"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `base_url`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & base_url() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 60.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/del.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/del.mdx
new file mode 100644
index 0000000000..d404013475
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/del.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/del"
+title: "del"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::del"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `del`
+
+DELETE request.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json del(const std::string & path) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 52.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/get.mdx
new file mode 100644
index 0000000000..0f1cf9612c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/get.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::get"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+GET request.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json get(
+ const std::string & path,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/http-client.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/http-client.mdx
new file mode 100644
index 0000000000..b41bb8c12d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/http-client.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/http-client"
+title: "HttpClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::HttpClient"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `HttpClient`
+
+## Signature
+
+```cpp
+void HttpClient(
+ const std::string & base_url,
+ const std::string & username,
+ const std::string & password
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/index.mdx
new file mode 100644
index 0000000000..28495ff3d0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/index.mdx
@@ -0,0 +1,66 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client"
+title: "HttpClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient"
+ parent: "signalwire::rest"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `HttpClient`
+
+HTTP client with Basic Auth support using cpp-httplib.
+
+## Signature
+
+```cpp
+class signalwire::rest::HttpClient
+```
+
+## Methods
+
+
+
+
+
+ DELETE request.
+
+
+
+ GET request.
+
+
+
+
+
+ PATCH request.
+
+
+
+ POST request.
+
+
+
+ PUT request.
+
+
+
+ Set additional default headers.
+
+
+
+ Set request timeout in seconds.
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 29.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/patch.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/patch.mdx
new file mode 100644
index 0000000000..4c1bd78511
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/patch.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/patch"
+title: "patch"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::patch"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `patch`
+
+PATCH request.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json patch(const std::string & path, const json & body = json::object()) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/post.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/post.mdx
new file mode 100644
index 0000000000..056a21d590
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/post.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/post"
+title: "post"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::post"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `post`
+
+POST request.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json post(const std::string & path, const json & body = json::object()) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 40.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/put.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/put.mdx
new file mode 100644
index 0000000000..aa19f99c07
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/put.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/put"
+title: "put"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::put"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `put`
+
+PUT request.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json put(const std::string & path, const json & body = json::object()) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 44.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/set-header.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/set-header.mdx
new file mode 100644
index 0000000000..1bfa8216b1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/set-header.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/set-header"
+title: "set_header"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::set_header"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `set_header`
+
+Set additional default headers.
+
+## Signature
+
+```cpp
+void set_header(const std::string & key, const std::string & value)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 55.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/http-client/set-timeout.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/set-timeout.mdx
new file mode 100644
index 0000000000..eb780bc406
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/http-client/set-timeout.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/http-client/set-timeout"
+title: "set_timeout"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::HttpClient::set_timeout"
+ parent: "signalwire::rest::HttpClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `set_timeout`
+
+Set request timeout in seconds.
+
+## Signature
+
+```cpp
+void set_timeout(int seconds)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 58.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/index.mdx
new file mode 100644
index 0000000000..4212a3555c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/index.mdx
@@ -0,0 +1,77 @@
+---
+slug: "/reference/cpp/signalwire/rest"
+title: "rest"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::rest"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+---
+# `rest`
+
+## Signature
+
+```cpp
+namespace signalwire::rest
+```
+
+## Functions
+
+
+
+
+
+
+
+ Serialize a PhoneCallHandler to its wire string.
+
+
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+ Generic CRUD resource for REST API namespaces.
+
+
+
+ HTTP client with Basic Auth support using cpp-httplib.
+
+
+
+ Iterates items across paginated API responses. Mirrors signalwire-python's signalwire.rest.\_pagination.PaginatedIterator: fetches the configured path with the configured params, walks the data\_key array, then follows links.next (parsing its query string for the next page's params) until the response carries no links.next. Iteration is lazy the constructor records inputs but performs no HTTP. The first has\_next() / next() call performs the first fetch. Cursor query params are extracted by parsing links.next like Python's urllib.parse.urlparse + parse\_qs.
+
+
+
+ Top-level SignalWire REST client with all API namespaces.
+
+
+
+ Error thrown on non-2xx REST API responses.
+
+
+
+## Enums
+
+
+
+ Enumeration of call\_handler values accepted by phone\_numbers.update. Setting a phone number's call\_handler + the handler-specific companion field routes inbound calls and auto-materializes the matching Fabric resource on the server. The typed set\_\* helpers on PhoneNumbersNamespace wrap the low-level update call with the right combination — prefer those over constructing the wire body by hand. Named PhoneCallHandler (not CallHandler) to avoid colliding with signalwire::relay::InboundCallHandler — the callback type used by the RELAY client for inbound-call events.
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/json.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/json.mdx
new file mode 100644
index 0000000000..6f5576874f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/rest/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::rest::json"
+ parent: "signalwire::rest"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/make-headers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/make-headers.mdx
new file mode 100644
index 0000000000..43c13bb5cd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/make-headers.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/make-headers"
+title: "make_headers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::rest::make_headers"
+ parent: "signalwire::rest"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/rest/http_client.cpp"
+ visibility: "public"
+---
+# `make_headers`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+httplib::Headers make_headers(
+ const std::string & auth,
+ const std::map< std::string, std::string > & extra
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`httplib::Headers`
+
+## Source
+
+[`src/rest/http_client.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/rest/http_client.cpp)
+
+Line 77.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/data-key.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/data-key.mdx
new file mode 100644
index 0000000000..5fe0a74cd1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/data-key.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/data-key"
+title: "data_key"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::data_key"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `data_key`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & data_key() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 118.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/done.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/done.mdx
new file mode 100644
index 0000000000..ff1428d66d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/done.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/done"
+title: "done"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::done"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `done`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool done() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 121.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/has-next.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/has-next.mdx
new file mode 100644
index 0000000000..f5bfbe03f0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/has-next.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/has-next"
+title: "has_next"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::has_next"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `has_next`
+
+Returns true if another item can be fetched. Performs HTTP if the in-memory buffer is exhausted but more pages remain.
+
+## Signature
+
+```cpp
+bool has_next()
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 108.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/http.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/http.mdx
new file mode 100644
index 0000000000..dc098b57ad
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/http.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/http"
+title: "http"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::http"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `http`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const HttpClient & http() const
+```
+
+## Returns
+
+`const HttpClient &`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 115.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/index.mdx
new file mode 100644
index 0000000000..479f778c4d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/index.mdx
@@ -0,0 +1,60 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator"
+title: "PaginatedIterator"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator"
+ parent: "signalwire::rest"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `PaginatedIterator`
+
+Iterates items across paginated API responses.
+Mirrors signalwire-python's signalwire.rest.\_pagination.PaginatedIterator: fetches the configured path with the configured params, walks the data\_key array, then follows links.next (parsing its query string for the next page's params) until the response carries no links.next.
+Iteration is lazy the constructor records inputs but performs no HTTP. The first has\_next() / next() call performs the first fetch. Cursor query params are extracted by parsing links.next like Python's urllib.parse.urlparse + parse\_qs.
+
+## Signature
+
+```cpp
+class signalwire::rest::PaginatedIterator
+```
+
+## Methods
+
+
+
+
+
+
+
+ Returns true if another item can be fetched. Performs HTTP if the in-memory buffer is exhausted but more pages remain.
+
+
+
+
+
+
+
+
+
+ Returns the next item; throws std::out\_of\_range when the iterator is exhausted (mirrors Python's StopIteration).
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/index__2.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/index__2.mdx
new file mode 100644
index 0000000000..1fd8df7a0f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/index__2.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/index__2"
+title: "index"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::index"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `index`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+size_t index() const
+```
+
+## Returns
+
+`size_t`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 119.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/items.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/items.mdx
new file mode 100644
index 0000000000..c40b0473a5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/items.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/items"
+title: "items"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::items"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `items`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::vector< json > & items() const
+```
+
+## Returns
+
+`const std::vector< json > &`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 120.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/next.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/next.mdx
new file mode 100644
index 0000000000..e45cf777bc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/next.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/next"
+title: "next"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::next"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `next`
+
+Returns the next item; throws std::out\_of\_range when the iterator is exhausted (mirrors Python's StopIteration).
+
+## Signature
+
+```cpp
+json next()
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 112.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/paginated-iterator.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/paginated-iterator.mdx
new file mode 100644
index 0000000000..324309329e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/paginated-iterator.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/paginated-iterator"
+title: "PaginatedIterator"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::PaginatedIterator"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `PaginatedIterator`
+
+## Signature
+
+```cpp
+void PaginatedIterator(
+ const HttpClient & http,
+ const std::string & path,
+ const std::map< std::string, std::string > & params = {},
+ const std::string & data_key = "data"
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 101.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/params.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/params.mdx
new file mode 100644
index 0000000000..414850bc0f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/params.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/params"
+title: "params"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::params"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `params`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::map< std::string, std::string > & params() const
+```
+
+## Returns
+
+`const std::map< std::string, std::string > &`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 117.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/path.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/path.mdx
new file mode 100644
index 0000000000..5ce99b30c1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/paginated-iterator/path.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/paginated-iterator/path"
+title: "path"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PaginatedIterator::path"
+ parent: "signalwire::rest::PaginatedIterator"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `path`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & path() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 116.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/parse-url.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/parse-url.mdx
new file mode 100644
index 0000000000..0ccf32eb94
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/parse-url.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/parse-url"
+title: "parse_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::rest::parse_url"
+ parent: "signalwire::rest"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/rest/http_client.cpp"
+ visibility: "public"
+---
+# `parse_url`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+std::pair< std::string, std::string > parse_url(const std::string & base_url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::pair< std::string, std::string >`
+
+## Source
+
+[`src/rest/http_client.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/rest/http_client.cpp)
+
+Line 65.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/phone-call-handler/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/phone-call-handler/index.mdx
new file mode 100644
index 0000000000..c0a0212a2f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/phone-call-handler/index.mdx
@@ -0,0 +1,118 @@
+---
+slug: "/reference/cpp/signalwire/rest/phone-call-handler"
+title: "PhoneCallHandler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "enum"
+ language: "cpp"
+ qualified_name: "signalwire::rest::PhoneCallHandler"
+ parent: "signalwire::rest"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/phone_call_handler.hpp"
+ visibility: "public"
+---
+# `PhoneCallHandler`
+
+Enumeration of call\_handler values accepted by phone\_numbers.update.
+Setting a phone number's call\_handler + the handler-specific companion field routes inbound calls and auto-materializes the matching Fabric resource on the server. The typed set\_\* helpers on PhoneNumbersNamespace wrap the low-level update call with the right combination — prefer those over constructing the wire body by hand.
+Named PhoneCallHandler (not CallHandler) to avoid colliding with signalwire::relay::InboundCallHandler — the callback type used by the RELAY client for inbound-call events.
+
+Enum value\
+Wire value\
+Companion field\
+Auto-materializes
+
+RelayScript\
+relay\_script\
+call\_relay\_script\_url\
+swml\_webhook
+
+LamlWebhooks\
+laml\_webhooks\
+call\_request\_url\
+cxml\_webhook
+
+LamlApplication\
+laml\_application\
+call\_laml\_application\_id\
+cxml\_application
+
+AiAgent\
+ai\_agent\
+call\_ai\_agent\_id\
+ai\_agent
+
+CallFlow\
+call\_flow\
+call\_flow\_id\
+call\_flow
+
+RelayApplication\
+relay\_application\
+call\_relay\_application\
+relay\_application
+
+RelayTopic\
+relay\_topic\
+call\_relay\_topic\
+(RELAY routing)
+
+RelayContext\
+relay\_context\
+call\_relay\_context\
+(legacy)
+
+RelayConnector\
+relay\_connector\
+(connector config)\
+(internal)
+
+VideoRoom\
+video\_room\
+call\_video\_room\_id\
+(Video API)
+
+Dialogflow\
+dialogflow\
+call\_dialogflow\_agent\_id\
+(none)
+
+Note: LamlWebhooks (wire value laml\_webhooks) produces a cXML handler despite the plural name. For SWML, use RelayScript.
+
+## Signature
+
+```cpp
+enum class PhoneCallHandler
+```
+
+## Variants
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/phone_call_handler.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/phone_call_handler.hpp)
+
+Line 39.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses-namespace/addresses-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses-namespace/addresses-namespace.mdx
new file mode 100644
index 0000000000..77a99a50d1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses-namespace/addresses-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/addresses-namespace/addresses-namespace"
+title: "AddressesNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::AddressesNamespace::AddressesNamespace"
+ parent: "signalwire::rest::RestClient::AddressesNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `AddressesNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void AddressesNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1146.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses-namespace/index.mdx
new file mode 100644
index 0000000000..7f317e04be
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses-namespace/index.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/addresses-namespace"
+title: "AddressesNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::AddressesNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `AddressesNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::AddressesNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1145.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses.mdx
new file mode 100644
index 0000000000..a6e680c828
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/addresses.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/addresses"
+title: "addresses"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::addresses"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `addresses`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+AddressesNamespace & addresses()
+```
+
+## Returns
+
+`AddressesNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1438.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-hold.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-hold.mdx
new file mode 100644
index 0000000000..c3a1671b28
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-hold.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-hold"
+title: "ai_hold"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::ai_hold"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ai_hold`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json ai_hold(
+ const std::string & call_id,
+ const json & params = json::object()
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 394.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-message.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-message.mdx
new file mode 100644
index 0000000000..77e5c4eaa6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-message.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-message"
+title: "ai_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::ai_message"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ai_message`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json ai_message(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 391.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-stop.mdx
new file mode 100644
index 0000000000..14e248cf41
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-stop.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-stop"
+title: "ai_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::ai_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ai_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json ai_stop(
+ const std::string & call_id,
+ const json & params = json::object()
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 402.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-unhold.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-unhold.mdx
new file mode 100644
index 0000000000..1b0c50005e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-unhold.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/ai-unhold"
+title: "ai_unhold"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::ai_unhold"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ai_unhold`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json ai_unhold(
+ const std::string & call_id,
+ const json & params = json::object()
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 398.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/answer.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/answer.mdx
new file mode 100644
index 0000000000..4eeb7052bb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/answer.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/answer"
+title: "answer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::answer"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `answer`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json answer(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 446.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/calling-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/calling-namespace.mdx
new file mode 100644
index 0000000000..f8a51e1c2f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/calling-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/calling-namespace"
+title: "CallingNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::CallingNamespace"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CallingNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CallingNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 275.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect-start-input-timers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect-start-input-timers.mdx
new file mode 100644
index 0000000000..3040af3e22
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect-start-input-timers.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/collect-start-input-timers"
+title: "collect_start_input_timers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::collect_start_input_timers"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `collect_start_input_timers`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json collect_start_input_timers(
+ const std::string & call_id,
+ const json & params
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 344.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect-stop.mdx
new file mode 100644
index 0000000000..6906aa99ea
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect-stop.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/collect-stop"
+title: "collect_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::collect_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `collect_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json collect_stop(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 341.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect.mdx
new file mode 100644
index 0000000000..0f571f57f1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/collect.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/collect"
+title: "collect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::collect"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `collect`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json collect(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 338.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/connect.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/connect.mdx
new file mode 100644
index 0000000000..c49124cd8a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/connect.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/connect"
+title: "connect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::connect"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `connect`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json connect(const std::string & id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 444.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/denoise-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/denoise-stop.mdx
new file mode 100644
index 0000000000..17a3f7452d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/denoise-stop.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/denoise-stop"
+title: "denoise_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::denoise_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `denoise_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json denoise_stop(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 378.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/denoise.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/denoise.mdx
new file mode 100644
index 0000000000..51ec2a4979
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/denoise.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/denoise"
+title: "denoise"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::denoise"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `denoise`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json denoise(
+ const std::string & call_id,
+ const json & params = json::object()
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 374.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/detect-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/detect-stop.mdx
new file mode 100644
index 0000000000..1091533717
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/detect-stop.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/detect-stop"
+title: "detect_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::detect_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `detect_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json detect_stop(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 353.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/detect.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/detect.mdx
new file mode 100644
index 0000000000..ef1d6dab5c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/detect.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/detect"
+title: "detect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::detect"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `detect`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json detect(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 350.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/dial.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/dial.mdx
new file mode 100644
index 0000000000..afceb8443b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/dial.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/dial"
+title: "dial"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::dial"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `dial`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json dial(const json & params) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 294.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/disconnect.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/disconnect.mdx
new file mode 100644
index 0000000000..1e425e541f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/disconnect.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/disconnect"
+title: "disconnect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::disconnect"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `disconnect`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json disconnect(
+ const std::string & call_id,
+ const json & params = json::object()
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 302.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/end-call.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/end-call.mdx
new file mode 100644
index 0000000000..34d539d78d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/end-call.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/end-call"
+title: "end_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::end_call"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `end_call`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json end_call(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 443.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/end.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/end.mdx
new file mode 100644
index 0000000000..b7aa5d6841
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/end.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/end"
+title: "end"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::end"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `end`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json end(
+ const std::string & call_id,
+ const json & params = json::object()
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 296.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/execute.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/execute.mdx
new file mode 100644
index 0000000000..7b98b42759
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/execute.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/execute"
+title: "execute"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::execute"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `execute`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json execute(
+ const std::string & command,
+ const json & params,
+ const std::optional< std::string > & call_id = std::nullopt
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 285.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/get-call.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/get-call.mdx
new file mode 100644
index 0000000000..60c39d8649
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/get-call.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/get-call"
+title: "get_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::get_call"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_call`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_call(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 441.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/hangup.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/hangup.mdx
new file mode 100644
index 0000000000..596b43c970
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/hangup.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/hangup"
+title: "hangup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::hangup"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `hangup`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json hangup(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 447.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/hold.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/hold.mdx
new file mode 100644
index 0000000000..363b35e26a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/hold.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/hold"
+title: "hold"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::hold"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `hold`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json hold(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 448.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/index.mdx
new file mode 100644
index 0000000000..7adcdb74f7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/index.mdx
@@ -0,0 +1,134 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace"
+title: "CallingNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CallingNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CallingNamespace
+```
+
+## Properties
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 272.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/list-calls.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/list-calls.mdx
new file mode 100644
index 0000000000..2d74aa65d9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/list-calls.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/list-calls"
+title: "list_calls"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::list_calls"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_calls`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_calls(const std::map< std::string, std::string > & p = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 440.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/live-transcribe.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/live-transcribe.mdx
new file mode 100644
index 0000000000..3aca6ddd7a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/live-transcribe.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/live-transcribe"
+title: "live_transcribe"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::live_transcribe"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `live_transcribe`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json live_transcribe(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 408.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/live-translate.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/live-translate.mdx
new file mode 100644
index 0000000000..dd43c8768c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/live-translate.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/live-translate"
+title: "live_translate"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::live_translate"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `live_translate`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json live_translate(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 411.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-pause.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-pause.mdx
new file mode 100644
index 0000000000..0d51d47883
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-pause.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/play-pause"
+title: "play_pause"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::play_pause"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `play_pause`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json play_pause(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 310.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-resume.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-resume.mdx
new file mode 100644
index 0000000000..aabc42efe5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-resume.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/play-resume"
+title: "play_resume"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::play_resume"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `play_resume`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json play_resume(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 313.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-stop.mdx
new file mode 100644
index 0000000000..aecf2c07b3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-stop.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/play-stop"
+title: "play_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::play_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `play_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json play_stop(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 316.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-volume.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-volume.mdx
new file mode 100644
index 0000000000..32b466fbdc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play-volume.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/play-volume"
+title: "play_volume"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::play_volume"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `play_volume`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json play_volume(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 319.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play.mdx
new file mode 100644
index 0000000000..5264889820
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/play.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/play"
+title: "play"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::play"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `play`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json play(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 307.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/receive-fax-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/receive-fax-stop.mdx
new file mode 100644
index 0000000000..9fdd2bbca2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/receive-fax-stop.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/receive-fax-stop"
+title: "receive_fax_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::receive_fax_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `receive_fax_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json receive_fax_stop(
+ const std::string & call_id,
+ const json & params = json::object()
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 420.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-pause.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-pause.mdx
new file mode 100644
index 0000000000..6c83877651
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-pause.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/record-pause"
+title: "record_pause"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::record_pause"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `record_pause`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json record_pause(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 327.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-resume.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-resume.mdx
new file mode 100644
index 0000000000..321b64d9b6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-resume.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/record-resume"
+title: "record_resume"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::record_resume"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `record_resume`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json record_resume(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 330.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-stop.mdx
new file mode 100644
index 0000000000..fe375708bd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record-stop.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/record-stop"
+title: "record_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::record_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `record_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json record_stop(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 333.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record.mdx
new file mode 100644
index 0000000000..40474d20c1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/record.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/record"
+title: "record"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::record"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `record`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json record(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 324.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/refer.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/refer.mdx
new file mode 100644
index 0000000000..f12a1c7c2a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/refer.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/refer"
+title: "refer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::refer"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `refer`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json refer(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 426.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/send-digits.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/send-digits.mdx
new file mode 100644
index 0000000000..614573017a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/send-digits.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/send-digits"
+title: "send_digits"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::send_digits"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `send_digits`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json send_digits(const std::string & id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 445.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/send-fax-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/send-fax-stop.mdx
new file mode 100644
index 0000000000..96c1b11465
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/send-fax-stop.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/send-fax-stop"
+title: "send_fax_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::send_fax_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `send_fax_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json send_fax_stop(
+ const std::string & call_id,
+ const json & params = json::object()
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 416.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/stream-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/stream-stop.mdx
new file mode 100644
index 0000000000..6b6bf4d46a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/stream-stop.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/stream-stop"
+title: "stream_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::stream_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `stream_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json stream_stop(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 369.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/stream.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/stream.mdx
new file mode 100644
index 0000000000..be644fda4d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/stream.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/stream"
+title: "stream"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::stream"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `stream`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json stream(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 366.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/tap-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/tap-stop.mdx
new file mode 100644
index 0000000000..0d9c0b459e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/tap-stop.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/tap-stop"
+title: "tap_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::tap_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `tap_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json tap_stop(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 361.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/tap.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/tap.mdx
new file mode 100644
index 0000000000..e547a3e18d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/tap.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/tap"
+title: "tap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::tap"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `tap`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json tap(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 358.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transcribe-stop.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transcribe-stop.mdx
new file mode 100644
index 0000000000..e18bd9007e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transcribe-stop.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/transcribe-stop"
+title: "transcribe_stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::transcribe_stop"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `transcribe_stop`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json transcribe_stop(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 386.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transcribe.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transcribe.mdx
new file mode 100644
index 0000000000..e356897d51
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transcribe.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/transcribe"
+title: "transcribe"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::transcribe"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `transcribe`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json transcribe(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transfer.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transfer.mdx
new file mode 100644
index 0000000000..0c43cba804
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/transfer.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/transfer"
+title: "transfer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::transfer"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `transfer`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json transfer(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 299.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/unhold.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/unhold.mdx
new file mode 100644
index 0000000000..bcd59f3529
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/unhold.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/unhold"
+title: "unhold"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::unhold"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `unhold`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json unhold(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 449.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/update-call.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/update-call.mdx
new file mode 100644
index 0000000000..d6c2f3273d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/update-call.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/update-call"
+title: "update_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::update_call"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update_call`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update_call(const std::string & id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 442.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/update.mdx
new file mode 100644
index 0000000000..47021f5640
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/update.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::update"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const json & params) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 295.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/user-event.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/user-event.mdx
new file mode 100644
index 0000000000..57bbe1bcb1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling-namespace/user-event.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling-namespace/user-event"
+title: "user_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CallingNamespace::user_event"
+ parent: "signalwire::rest::RestClient::CallingNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `user_event`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json user_event(const std::string & call_id, const json & params) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 431.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling.mdx
new file mode 100644
index 0000000000..fec63ac36b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/calling.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/calling"
+title: "calling"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::calling"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `calling`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+CallingNamespace & calling()
+```
+
+## Returns
+
+`CallingNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1433.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/chat-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/chat-namespace.mdx
new file mode 100644
index 0000000000..4c826ec283
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/chat-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/chat-namespace/chat-namespace"
+title: "ChatNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ChatNamespace::ChatNamespace"
+ parent: "signalwire::rest::RestClient::ChatNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ChatNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void ChatNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1423.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/index.mdx
new file mode 100644
index 0000000000..0a3aac97d3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/index.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/chat-namespace"
+title: "ChatNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ChatNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ChatNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::ChatNamespace
+```
+
+## Properties
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1421.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/list-messages.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/list-messages.mdx
new file mode 100644
index 0000000000..e35dae74d7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/list-messages.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/chat-namespace/list-messages"
+title: "list_messages"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ChatNamespace::list_messages"
+ parent: "signalwire::rest::RestClient::ChatNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_messages`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_messages(const std::map< std::string, std::string > & p = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1425.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/send-message.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/send-message.mdx
new file mode 100644
index 0000000000..a98bbcfe5a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat-namespace/send-message.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/chat-namespace/send-message"
+title: "send_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ChatNamespace::send_message"
+ parent: "signalwire::rest::RestClient::ChatNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `send_message`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json send_message(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1424.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat.mdx
new file mode 100644
index 0000000000..3524b12d54
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/chat.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/chat"
+title: "chat"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::chat"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `chat`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+ChatNamespace & chat()
+```
+
+## Returns
+
+`ChatNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1452.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/compat-accounts.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/compat-accounts.mdx
new file mode 100644
index 0000000000..67e2aa4717
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/compat-accounts.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-accounts/compat-accounts"
+title: "CompatAccounts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatAccounts::CompatAccounts"
+ parent: "signalwire::rest::RestClient::CompatAccounts"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatAccounts`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatAccounts(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 930.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/create.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/create.mdx
new file mode 100644
index 0000000000..c027f5e7fb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/create.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-accounts/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatAccounts::create"
+ parent: "signalwire::rest::RestClient::CompatAccounts"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 934.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/get.mdx
new file mode 100644
index 0000000000..098f05db6b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-accounts/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatAccounts::get"
+ parent: "signalwire::rest::RestClient::CompatAccounts"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & sid) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 935.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/index.mdx
new file mode 100644
index 0000000000..3d12009a0b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/index.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-accounts"
+title: "CompatAccounts"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatAccounts"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatAccounts`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatAccounts
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 927.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/list.mdx
new file mode 100644
index 0000000000..fcd021e769
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-accounts/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatAccounts::list"
+ parent: "signalwire::rest::RestClient::CompatAccounts"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 931.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/update.mdx
new file mode 100644
index 0000000000..1b0e3a7075
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-accounts/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-accounts/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatAccounts::update"
+ parent: "signalwire::rest::RestClient::CompatAccounts"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 939.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/compat-applications.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/compat-applications.mdx
new file mode 100644
index 0000000000..e08f4a088e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/compat-applications.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-applications/compat-applications"
+title: "CompatApplications"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatApplications::CompatApplications"
+ parent: "signalwire::rest::RestClient::CompatApplications"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatApplications`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatApplications(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 945.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/index.mdx
new file mode 100644
index 0000000000..c452c82d6f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-applications"
+title: "CompatApplications"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatApplications"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatApplications`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatApplications : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 944.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/update.mdx
new file mode 100644
index 0000000000..fe07c4e542
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-applications/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-applications/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatApplications::update"
+ parent: "signalwire::rest::RestClient::CompatApplications"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 947.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/compat-calls.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/compat-calls.mdx
new file mode 100644
index 0000000000..a53f2a4f19
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/compat-calls.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-calls/compat-calls"
+title: "CompatCalls"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatCalls::CompatCalls"
+ parent: "signalwire::rest::RestClient::CompatCalls"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatCalls`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatCalls(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 803.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/index.mdx
new file mode 100644
index 0000000000..6045af66d9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/index.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-calls"
+title: "CompatCalls"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatCalls"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatCalls`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatCalls : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 802.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/start-recording.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/start-recording.mdx
new file mode 100644
index 0000000000..1759cd98c4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/start-recording.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-calls/start-recording"
+title: "start_recording"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatCalls::start_recording"
+ parent: "signalwire::rest::RestClient::CompatCalls"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `start_recording`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json start_recording(const std::string & call_sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 812.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/start-stream.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/start-stream.mdx
new file mode 100644
index 0000000000..e4cc149ecb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/start-stream.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-calls/start-stream"
+title: "start_stream"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatCalls::start_stream"
+ parent: "signalwire::rest::RestClient::CompatCalls"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `start_stream`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json start_stream(const std::string & call_sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 822.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/stop-stream.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/stop-stream.mdx
new file mode 100644
index 0000000000..e3d77505fd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/stop-stream.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-calls/stop-stream"
+title: "stop_stream"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatCalls::stop_stream"
+ parent: "signalwire::rest::RestClient::CompatCalls"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `stop_stream`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json stop_stream(
+ const std::string & call_sid,
+ const std::string & stream_sid,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 825.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/update-recording.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/update-recording.mdx
new file mode 100644
index 0000000000..5ffbe95390
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/update-recording.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-calls/update-recording"
+title: "update_recording"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatCalls::update_recording"
+ parent: "signalwire::rest::RestClient::CompatCalls"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update_recording`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update_recording(
+ const std::string & call_sid,
+ const std::string & recording_sid,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 815.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/update.mdx
new file mode 100644
index 0000000000..38b689e375
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-calls/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-calls/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatCalls::update"
+ parent: "signalwire::rest::RestClient::CompatCalls"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 807.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/compat-conferences.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/compat-conferences.mdx
new file mode 100644
index 0000000000..1c11d974a4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/compat-conferences.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/compat-conferences"
+title: "CompatConferences"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::CompatConferences"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatConferences`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatConferences(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 963.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/delete-recording.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/delete-recording.mdx
new file mode 100644
index 0000000000..78d7f0ebe3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/delete-recording.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/delete-recording"
+title: "delete_recording"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::delete_recording"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `delete_recording`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json delete_recording(
+ const std::string & conference_sid,
+ const std::string & recording_sid
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1009.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get-participant.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get-participant.mdx
new file mode 100644
index 0000000000..7980927bb7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get-participant.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/get-participant"
+title: "get_participant"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::get_participant"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_participant`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_participant(
+ const std::string & conference_sid,
+ const std::string & call_sid
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 981.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get-recording.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get-recording.mdx
new file mode 100644
index 0000000000..dfea8cfbe0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get-recording.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/get-recording"
+title: "get_recording"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::get_recording"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_recording`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_recording(
+ const std::string & conference_sid,
+ const std::string & recording_sid
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1000.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get.mdx
new file mode 100644
index 0000000000..80db14d4f3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::get"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & sid) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 969.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/index.mdx
new file mode 100644
index 0000000000..685482a167
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/index.mdx
@@ -0,0 +1,66 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences"
+title: "CompatConferences"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatConferences`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatConferences
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 960.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list-participants.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list-participants.mdx
new file mode 100644
index 0000000000..f6f1ddfba2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list-participants.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/list-participants"
+title: "list_participants"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::list_participants"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_participants`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_participants(
+ const std::string & conference_sid,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 977.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list-recordings.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list-recordings.mdx
new file mode 100644
index 0000000000..31b647975b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list-recordings.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/list-recordings"
+title: "list_recordings"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::list_recordings"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_recordings`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_recordings(
+ const std::string & conference_sid,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 996.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list.mdx
new file mode 100644
index 0000000000..1f73760185
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::list"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 966.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/remove-participant.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/remove-participant.mdx
new file mode 100644
index 0000000000..6f49ec0298
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/remove-participant.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/remove-participant"
+title: "remove_participant"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::remove_participant"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `remove_participant`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json remove_participant(
+ const std::string & conference_sid,
+ const std::string & call_sid
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 990.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/start-stream.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/start-stream.mdx
new file mode 100644
index 0000000000..7c4f28584b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/start-stream.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/start-stream"
+title: "start_stream"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::start_stream"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `start_stream`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json start_stream(const std::string & conference_sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1015.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/stop-stream.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/stop-stream.mdx
new file mode 100644
index 0000000000..1dec9db4ab
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/stop-stream.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/stop-stream"
+title: "stop_stream"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::stop_stream"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `stop_stream`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json stop_stream(
+ const std::string & conference_sid,
+ const std::string & stream_sid,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1018.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update-participant.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update-participant.mdx
new file mode 100644
index 0000000000..c655b366ad
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update-participant.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/update-participant"
+title: "update_participant"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::update_participant"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update_participant`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update_participant(
+ const std::string & conference_sid,
+ const std::string & call_sid,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 985.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update-recording.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update-recording.mdx
new file mode 100644
index 0000000000..e6f1020b34
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update-recording.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/update-recording"
+title: "update_recording"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::update_recording"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update_recording`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update_recording(
+ const std::string & conference_sid,
+ const std::string & recording_sid,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1004.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update.mdx
new file mode 100644
index 0000000000..954b89c99c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-conferences/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-conferences/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatConferences::update"
+ parent: "signalwire::rest::RestClient::CompatConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 972.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/compat-faxes.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/compat-faxes.mdx
new file mode 100644
index 0000000000..b62d6de6d1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/compat-faxes.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-faxes/compat-faxes"
+title: "CompatFaxes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatFaxes::CompatFaxes"
+ parent: "signalwire::rest::RestClient::CompatFaxes"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatFaxes`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatFaxes(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 855.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/delete-media.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/delete-media.mdx
new file mode 100644
index 0000000000..b7a691f7b2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/delete-media.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-faxes/delete-media"
+title: "delete_media"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatFaxes::delete_media"
+ parent: "signalwire::rest::RestClient::CompatFaxes"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `delete_media`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json delete_media(
+ const std::string & fax_sid,
+ const std::string & media_sid
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 870.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/get-media.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/get-media.mdx
new file mode 100644
index 0000000000..9b691adecd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/get-media.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-faxes/get-media"
+title: "get_media"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatFaxes::get_media"
+ parent: "signalwire::rest::RestClient::CompatFaxes"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_media`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_media(const std::string & fax_sid, const std::string & media_sid) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 866.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/index.mdx
new file mode 100644
index 0000000000..565e46fdc2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-faxes"
+title: "CompatFaxes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatFaxes"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatFaxes`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatFaxes : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 854.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/list-media.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/list-media.mdx
new file mode 100644
index 0000000000..23509cfc7e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/list-media.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-faxes/list-media"
+title: "list_media"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatFaxes::list_media"
+ parent: "signalwire::rest::RestClient::CompatFaxes"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_media`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_media(
+ const std::string & fax_sid,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 862.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/update.mdx
new file mode 100644
index 0000000000..b63dda7ff0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-faxes/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-faxes/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatFaxes::update"
+ parent: "signalwire::rest::RestClient::CompatFaxes"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 858.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/compat-laml-bins.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/compat-laml-bins.mdx
new file mode 100644
index 0000000000..fb42573afe
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/compat-laml-bins.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-laml-bins/compat-laml-bins"
+title: "CompatLamlBins"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatLamlBins::CompatLamlBins"
+ parent: "signalwire::rest::RestClient::CompatLamlBins"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatLamlBins`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatLamlBins(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 953.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/index.mdx
new file mode 100644
index 0000000000..5f60965411
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-laml-bins"
+title: "CompatLamlBins"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatLamlBins"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatLamlBins`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatLamlBins : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 952.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/update.mdx
new file mode 100644
index 0000000000..b28d97fc3b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-laml-bins/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-laml-bins/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatLamlBins::update"
+ parent: "signalwire::rest::RestClient::CompatLamlBins"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 955.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/compat-messages.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/compat-messages.mdx
new file mode 100644
index 0000000000..750aa9dc25
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/compat-messages.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-messages/compat-messages"
+title: "CompatMessages"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatMessages::CompatMessages"
+ parent: "signalwire::rest::RestClient::CompatMessages"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatMessages`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatMessages(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 833.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/delete-media.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/delete-media.mdx
new file mode 100644
index 0000000000..b9a7ca30d3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/delete-media.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-messages/delete-media"
+title: "delete_media"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatMessages::delete_media"
+ parent: "signalwire::rest::RestClient::CompatMessages"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `delete_media`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json delete_media(
+ const std::string & message_sid,
+ const std::string & media_sid
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 848.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/get-media.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/get-media.mdx
new file mode 100644
index 0000000000..e6ae7193fd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/get-media.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-messages/get-media"
+title: "get_media"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatMessages::get_media"
+ parent: "signalwire::rest::RestClient::CompatMessages"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_media`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_media(
+ const std::string & message_sid,
+ const std::string & media_sid
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 844.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/index.mdx
new file mode 100644
index 0000000000..97d3d62ef7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-messages"
+title: "CompatMessages"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatMessages"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatMessages`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatMessages : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 832.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/list-media.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/list-media.mdx
new file mode 100644
index 0000000000..a91a0cea9c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/list-media.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-messages/list-media"
+title: "list_media"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatMessages::list_media"
+ parent: "signalwire::rest::RestClient::CompatMessages"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_media`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_media(
+ const std::string & message_sid,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 840.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/update.mdx
new file mode 100644
index 0000000000..65db39d0da
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-messages/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-messages/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatMessages::update"
+ parent: "signalwire::rest::RestClient::CompatMessages"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 836.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/compat-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/compat-namespace.mdx
new file mode 100644
index 0000000000..035501199a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/compat-namespace.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-namespace/compat-namespace"
+title: "CompatNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatNamespace::CompatNamespace"
+ parent: "signalwire::rest::RestClient::CompatNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatNamespace(const HttpClient & c, const std::string & account_sid)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1111.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/create-call.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/create-call.mdx
new file mode 100644
index 0000000000..58d95d9dc2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/create-call.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-namespace/create-call"
+title: "create_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatNamespace::create_call"
+ parent: "signalwire::rest::RestClient::CompatNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_call`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_call(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1131.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/index.mdx
new file mode 100644
index 0000000000..b302e5d665
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/index.mdx
@@ -0,0 +1,72 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-namespace"
+title: "CompatNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatNamespace
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1093.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/list-calls.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/list-calls.mdx
new file mode 100644
index 0000000000..82ec4117d5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/list-calls.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-namespace/list-calls"
+title: "list_calls"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatNamespace::list_calls"
+ parent: "signalwire::rest::RestClient::CompatNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_calls`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_calls(const std::map< std::string, std::string > & p = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1133.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/list-messages.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/list-messages.mdx
new file mode 100644
index 0000000000..c48fcf3dbd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/list-messages.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-namespace/list-messages"
+title: "list_messages"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatNamespace::list_messages"
+ parent: "signalwire::rest::RestClient::CompatNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_messages`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_messages(const std::map< std::string, std::string > & p = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1134.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/send-message.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/send-message.mdx
new file mode 100644
index 0000000000..2a1246712a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-namespace/send-message.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-namespace/send-message"
+title: "send_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatNamespace::send_message"
+ parent: "signalwire::rest::RestClient::CompatNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `send_message`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json send_message(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1132.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/compat-phone-numbers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/compat-phone-numbers.mdx
new file mode 100644
index 0000000000..b21ab72f53
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/compat-phone-numbers.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/compat-phone-numbers"
+title: "CompatPhoneNumbers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::CompatPhoneNumbers"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatPhoneNumbers`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatPhoneNumbers(const HttpClient & c, const std::string & account_base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 882.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/get.mdx
new file mode 100644
index 0000000000..d8b65374e9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::get"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & sid) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 891.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/import-number.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/import-number.mdx
new file mode 100644
index 0000000000..52ea70a4b2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/import-number.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/import-number"
+title: "import_number"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::import_number"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `import_number`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json import_number(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 903.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/index.mdx
new file mode 100644
index 0000000000..f2c9cb435e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/index.mdx
@@ -0,0 +1,60 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers"
+title: "CompatPhoneNumbers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatPhoneNumbers`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatPhoneNumbers
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 876.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/list-available-countries.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/list-available-countries.mdx
new file mode 100644
index 0000000000..a4b1780298
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/list-available-countries.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/list-available-countries"
+title: "list_available_countries"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::list_available_countries"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_available_countries`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_available_countries(
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 906.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/list.mdx
new file mode 100644
index 0000000000..f47dfa0373
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::list"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 888.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/purchase.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/purchase.mdx
new file mode 100644
index 0000000000..13f9764b1d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/purchase.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/purchase"
+title: "purchase"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::purchase"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `purchase`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json purchase(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 900.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/search-local.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/search-local.mdx
new file mode 100644
index 0000000000..df383b29af
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/search-local.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/search-local"
+title: "search_local"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::search_local"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `search_local`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json search_local(
+ const std::string & country,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 909.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/search-toll-free.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/search-toll-free.mdx
new file mode 100644
index 0000000000..327c9fb39f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/search-toll-free.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/search-toll-free"
+title: "search_toll_free"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::search_toll_free"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `search_toll_free`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json search_toll_free(
+ const std::string & country,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 913.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/update.mdx
new file mode 100644
index 0000000000..2feafe2595
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-phone-numbers/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatPhoneNumbers::update"
+ parent: "signalwire::rest::RestClient::CompatPhoneNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 894.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/compat-queues.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/compat-queues.mdx
new file mode 100644
index 0000000000..417d6924b6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/compat-queues.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-queues/compat-queues"
+title: "CompatQueues"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatQueues::CompatQueues"
+ parent: "signalwire::rest::RestClient::CompatQueues"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatQueues`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatQueues(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1026.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/dequeue-member.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/dequeue-member.mdx
new file mode 100644
index 0000000000..efbc96f425
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/dequeue-member.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-queues/dequeue-member"
+title: "dequeue_member"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatQueues::dequeue_member"
+ parent: "signalwire::rest::RestClient::CompatQueues"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `dequeue_member`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json dequeue_member(
+ const std::string & queue_sid,
+ const std::string & call_sid,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1039.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/get-member.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/get-member.mdx
new file mode 100644
index 0000000000..7cc090d86b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/get-member.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-queues/get-member"
+title: "get_member"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatQueues::get_member"
+ parent: "signalwire::rest::RestClient::CompatQueues"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_member`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_member(
+ const std::string & queue_sid,
+ const std::string & call_sid
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1035.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/index.mdx
new file mode 100644
index 0000000000..1ea20275ee
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-queues"
+title: "CompatQueues"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatQueues"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatQueues`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatQueues : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1025.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/list-members.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/list-members.mdx
new file mode 100644
index 0000000000..ad36beb4bd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/list-members.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-queues/list-members"
+title: "list_members"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatQueues::list_members"
+ parent: "signalwire::rest::RestClient::CompatQueues"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_members`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_members(
+ const std::string & queue_sid,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1031.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/update.mdx
new file mode 100644
index 0000000000..b3f3b3719d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-queues/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-queues/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatQueues::update"
+ parent: "signalwire::rest::RestClient::CompatQueues"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & sid, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1028.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/compat-recordings.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/compat-recordings.mdx
new file mode 100644
index 0000000000..f8662b1938
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/compat-recordings.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-recordings/compat-recordings"
+title: "CompatRecordings"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatRecordings::CompatRecordings"
+ parent: "signalwire::rest::RestClient::CompatRecordings"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatRecordings`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatRecordings(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1049.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/get.mdx
new file mode 100644
index 0000000000..ba5586e922
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-recordings/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatRecordings::get"
+ parent: "signalwire::rest::RestClient::CompatRecordings"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & sid) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1054.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/index.mdx
new file mode 100644
index 0000000000..35583d92b6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-recordings"
+title: "CompatRecordings"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatRecordings"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatRecordings`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatRecordings
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1046.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/list.mdx
new file mode 100644
index 0000000000..0360259abf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-recordings/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-recordings/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatRecordings::list"
+ parent: "signalwire::rest::RestClient::CompatRecordings"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1051.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/compat-tokens.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/compat-tokens.mdx
new file mode 100644
index 0000000000..d0d80df720
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/compat-tokens.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-tokens/compat-tokens"
+title: "CompatTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatTokens::CompatTokens"
+ parent: "signalwire::rest::RestClient::CompatTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatTokens`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatTokens(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1081.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/create.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/create.mdx
new file mode 100644
index 0000000000..24cdb1fcf0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/create.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-tokens/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatTokens::create"
+ parent: "signalwire::rest::RestClient::CompatTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1083.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/index.mdx
new file mode 100644
index 0000000000..de4d2d8300
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-tokens"
+title: "CompatTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatTokens"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatTokens`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatTokens
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1078.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/update.mdx
new file mode 100644
index 0000000000..b24081525d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-tokens/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-tokens/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatTokens::update"
+ parent: "signalwire::rest::RestClient::CompatTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & token_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1085.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/compat-transcriptions.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/compat-transcriptions.mdx
new file mode 100644
index 0000000000..029ae1bb06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/compat-transcriptions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-transcriptions/compat-transcriptions"
+title: "CompatTranscriptions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatTranscriptions::CompatTranscriptions"
+ parent: "signalwire::rest::RestClient::CompatTranscriptions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatTranscriptions`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void CompatTranscriptions(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1065.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/get.mdx
new file mode 100644
index 0000000000..c012063b6d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-transcriptions/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatTranscriptions::get"
+ parent: "signalwire::rest::RestClient::CompatTranscriptions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & sid) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1070.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/index.mdx
new file mode 100644
index 0000000000..2affbe8e73
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-transcriptions"
+title: "CompatTranscriptions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatTranscriptions"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CompatTranscriptions`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::CompatTranscriptions
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1062.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/list.mdx
new file mode 100644
index 0000000000..4781ab53bf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat-transcriptions/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat-transcriptions/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::CompatTranscriptions::list"
+ parent: "signalwire::rest::RestClient::CompatTranscriptions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1067.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat.mdx
new file mode 100644
index 0000000000..b3638d5aa0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/compat.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/compat"
+title: "compat"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::compat"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `compat`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+CompatNamespace & compat()
+```
+
+## Returns
+
+`CompatNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1437.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/datasphere-documents.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/datasphere-documents.mdx
new file mode 100644
index 0000000000..e4c7dc0452
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/datasphere-documents.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-documents/datasphere-documents"
+title: "DatasphereDocuments"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereDocuments::DatasphereDocuments"
+ parent: "signalwire::rest::RestClient::DatasphereDocuments"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `DatasphereDocuments`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void DatasphereDocuments(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 612.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/delete-chunk.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/delete-chunk.mdx
new file mode 100644
index 0000000000..9d24f1f9de
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/delete-chunk.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-documents/delete-chunk"
+title: "delete_chunk"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereDocuments::delete_chunk"
+ parent: "signalwire::rest::RestClient::DatasphereDocuments"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `delete_chunk`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json delete_chunk(
+ const std::string & document_id,
+ const std::string & chunk_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 625.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/get-chunk.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/get-chunk.mdx
new file mode 100644
index 0000000000..99f2cd11c2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/get-chunk.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-documents/get-chunk"
+title: "get_chunk"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereDocuments::get_chunk"
+ parent: "signalwire::rest::RestClient::DatasphereDocuments"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_chunk`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_chunk(
+ const std::string & document_id,
+ const std::string & chunk_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 621.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/index.mdx
new file mode 100644
index 0000000000..1046cae980
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-documents"
+title: "DatasphereDocuments"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereDocuments"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `DatasphereDocuments`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::DatasphereDocuments : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 611.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/list-chunks.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/list-chunks.mdx
new file mode 100644
index 0000000000..569f66b313
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/list-chunks.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-documents/list-chunks"
+title: "list_chunks"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereDocuments::list_chunks"
+ parent: "signalwire::rest::RestClient::DatasphereDocuments"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_chunks`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_chunks(
+ const std::string & document_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 617.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/search.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/search.mdx
new file mode 100644
index 0000000000..d90abf2c18
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-documents/search.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-documents/search"
+title: "search"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereDocuments::search"
+ parent: "signalwire::rest::RestClient::DatasphereDocuments"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `search`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json search(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 614.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/datasphere-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/datasphere-namespace.mdx
new file mode 100644
index 0000000000..274405060a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/datasphere-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-namespace/datasphere-namespace"
+title: "DatasphereNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereNamespace::DatasphereNamespace"
+ parent: "signalwire::rest::RestClient::DatasphereNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `DatasphereNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void DatasphereNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 635.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/index.mdx
new file mode 100644
index 0000000000..51cd081a00
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/index.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-namespace"
+title: "DatasphereNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `DatasphereNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::DatasphereNamespace
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 631.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/search.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/search.mdx
new file mode 100644
index 0000000000..4cf93a45fa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere-namespace/search.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere-namespace/search"
+title: "search"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::DatasphereNamespace::search"
+ parent: "signalwire::rest::RestClient::DatasphereNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `search`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json search(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 641.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere.mdx
new file mode 100644
index 0000000000..728e0924a8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/datasphere.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/datasphere"
+title: "datasphere"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::datasphere"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `datasphere`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+DatasphereNamespace & datasphere()
+```
+
+## Returns
+
+`DatasphereNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1435.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/fabric-addresses.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/fabric-addresses.mdx
new file mode 100644
index 0000000000..e992dd97e4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/fabric-addresses.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-addresses/fabric-addresses"
+title: "FabricAddresses"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricAddresses::FabricAddresses"
+ parent: "signalwire::rest::RestClient::FabricAddresses"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricAddresses`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricAddresses(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 151.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/get.mdx
new file mode 100644
index 0000000000..3538fc1809
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-addresses/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricAddresses::get"
+ parent: "signalwire::rest::RestClient::FabricAddresses"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & address_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 155.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/index.mdx
new file mode 100644
index 0000000000..144654ede8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-addresses"
+title: "FabricAddresses"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricAddresses"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricAddresses`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricAddresses
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 148.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/list.mdx
new file mode 100644
index 0000000000..21a385dae6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-addresses/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-addresses/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricAddresses::list"
+ parent: "signalwire::rest::RestClient::FabricAddresses"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 152.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/deploy-version.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/deploy-version.mdx
new file mode 100644
index 0000000000..8c98f71b5b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/deploy-version.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-call-flows/deploy-version"
+title: "deploy_version"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCallFlows::deploy_version"
+ parent: "signalwire::rest::RestClient::FabricCallFlows"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `deploy_version`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json deploy_version(const std::string & flow_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 92.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/fabric-call-flows.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/fabric-call-flows.mdx
new file mode 100644
index 0000000000..36b004c2fd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/fabric-call-flows.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-call-flows/fabric-call-flows"
+title: "FabricCallFlows"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCallFlows::FabricCallFlows"
+ parent: "signalwire::rest::RestClient::FabricCallFlows"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricCallFlows`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricCallFlows(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 76.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/index.mdx
new file mode 100644
index 0000000000..1a923cd246
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-call-flows"
+title: "FabricCallFlows"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCallFlows"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricCallFlows`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricCallFlows : signalwire::rest::RestClient::FabricResourcePUT
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::RestClient::FabricResourcePUT](/reference/cpp/signalwire/rest/rest-client/fabric-resource-put)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 75.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/list-addresses.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/list-addresses.mdx
new file mode 100644
index 0000000000..e989da00ac
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/list-addresses.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-call-flows/list-addresses"
+title: "list_addresses"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCallFlows::list_addresses"
+ parent: "signalwire::rest::RestClient::FabricCallFlows"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_addresses`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_addresses(
+ const std::string & flow_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 84.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/list-versions.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/list-versions.mdx
new file mode 100644
index 0000000000..84dd41cb87
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/list-versions.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-call-flows/list-versions"
+title: "list_versions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCallFlows::list_versions"
+ parent: "signalwire::rest::RestClient::FabricCallFlows"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_versions`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_versions(
+ const std::string & flow_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 88.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/singular-base.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/singular-base.mdx
new file mode 100644
index 0000000000..5cbba19d41
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-call-flows/singular-base.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-call-flows/singular-base"
+title: "singular_base"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCallFlows::singular_base"
+ parent: "signalwire::rest::RestClient::FabricCallFlows"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `singular_base`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+std::string singular_base() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 81.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/fabric-conference-rooms.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/fabric-conference-rooms.mdx
new file mode 100644
index 0000000000..a879e2aced
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/fabric-conference-rooms.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/fabric-conference-rooms"
+title: "FabricConferenceRooms"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricConferenceRooms::FabricConferenceRooms"
+ parent: "signalwire::rest::RestClient::FabricConferenceRooms"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricConferenceRooms`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricConferenceRooms(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 98.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/index.mdx
new file mode 100644
index 0000000000..98d3ef6aba
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/index.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms"
+title: "FabricConferenceRooms"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricConferenceRooms"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricConferenceRooms`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricConferenceRooms : signalwire::rest::RestClient::FabricResourcePUT
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::RestClient::FabricResourcePUT](/reference/cpp/signalwire/rest/rest-client/fabric-resource-put)
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 97.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/list-addresses.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/list-addresses.mdx
new file mode 100644
index 0000000000..382cbe3c75
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/list-addresses.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/list-addresses"
+title: "list_addresses"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricConferenceRooms::list_addresses"
+ parent: "signalwire::rest::RestClient::FabricConferenceRooms"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_addresses`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_addresses(
+ const std::string & room_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 105.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/singular-base.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/singular-base.mdx
new file mode 100644
index 0000000000..3ad711a8f5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/singular-base.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-conference-rooms/singular-base"
+title: "singular_base"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricConferenceRooms::singular_base"
+ parent: "signalwire::rest::RestClient::FabricConferenceRooms"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `singular_base`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+std::string singular_base() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/create.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/create.mdx
new file mode 100644
index 0000000000..15bf3e026b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/create.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCxmlApplications::create"
+ parent: "signalwire::rest::RestClient::FabricCxmlApplications"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create(const json &) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 142.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/fabric-cxml-applications.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/fabric-cxml-applications.mdx
new file mode 100644
index 0000000000..d9b9a35d02
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/fabric-cxml-applications.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/fabric-cxml-applications"
+title: "FabricCxmlApplications"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCxmlApplications::FabricCxmlApplications"
+ parent: "signalwire::rest::RestClient::FabricCxmlApplications"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricCxmlApplications`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricCxmlApplications(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 139.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/index.mdx
new file mode 100644
index 0000000000..bab89ae31f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-cxml-applications"
+title: "FabricCxmlApplications"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricCxmlApplications"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricCxmlApplications`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricCxmlApplications : signalwire::rest::RestClient::FabricResourcePUT
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::RestClient::FabricResourcePUT](/reference/cpp/signalwire/rest/rest-client/fabric-resource-put)
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 138.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/assign-domain-application.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/assign-domain-application.mdx
new file mode 100644
index 0000000000..cb6d9c1dc6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/assign-domain-application.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/assign-domain-application"
+title: "assign_domain_application"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricGenericResources::assign_domain_application"
+ parent: "signalwire::rest::RestClient::FabricGenericResources"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `assign_domain_application`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json assign_domain_application(
+ const std::string & resource_id,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 177.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/assign-phone-route.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/assign-phone-route.mdx
new file mode 100644
index 0000000000..1ee6ca8fa4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/assign-phone-route.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/assign-phone-route"
+title: "assign_phone_route"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricGenericResources::assign_phone_route"
+ parent: "signalwire::rest::RestClient::FabricGenericResources"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `assign_phone_route`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json assign_phone_route(
+ const std::string & resource_id,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 182.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/fabric-generic-resources.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/fabric-generic-resources.mdx
new file mode 100644
index 0000000000..2c427ae8b8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/fabric-generic-resources.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/fabric-generic-resources"
+title: "FabricGenericResources"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricGenericResources::FabricGenericResources"
+ parent: "signalwire::rest::RestClient::FabricGenericResources"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricGenericResources`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricGenericResources(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 163.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/get.mdx
new file mode 100644
index 0000000000..409953d223
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricGenericResources::get"
+ parent: "signalwire::rest::RestClient::FabricGenericResources"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & resource_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 167.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/index.mdx
new file mode 100644
index 0000000000..d8c00024f3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-generic-resources"
+title: "FabricGenericResources"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricGenericResources"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricGenericResources`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricGenericResources
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 160.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/list-addresses.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/list-addresses.mdx
new file mode 100644
index 0000000000..ee81a008b3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/list-addresses.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/list-addresses"
+title: "list_addresses"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricGenericResources::list_addresses"
+ parent: "signalwire::rest::RestClient::FabricGenericResources"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_addresses`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_addresses(
+ const std::string & resource_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 173.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/list.mdx
new file mode 100644
index 0000000000..28c4c59cea
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-generic-resources/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricGenericResources::list"
+ parent: "signalwire::rest::RestClient::FabricGenericResources"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 164.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-namespace/fabric-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-namespace/fabric-namespace.mdx
new file mode 100644
index 0000000000..97e3f2b94f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-namespace/fabric-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-namespace/fabric-namespace"
+title: "FabricNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricNamespace::FabricNamespace"
+ parent: "signalwire::rest::RestClient::FabricNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 247.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-namespace/index.mdx
new file mode 100644
index 0000000000..3e30ed39c7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-namespace/index.mdx
@@ -0,0 +1,80 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-namespace"
+title: "FabricNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricNamespace
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 209.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/fabric-resource-put.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/fabric-resource-put.mdx
new file mode 100644
index 0000000000..983262cc62
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/fabric-resource-put.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-resource-put/fabric-resource-put"
+title: "FabricResourcePUT"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricResourcePUT::FabricResourcePUT"
+ parent: "signalwire::rest::RestClient::FabricResourcePUT"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricResourcePUT`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricResourcePUT(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 67.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/index.mdx
new file mode 100644
index 0000000000..b9f5799c1e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-resource-put"
+title: "FabricResourcePUT"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricResourcePUT"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricResourcePUT`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricResourcePUT : signalwire::rest::RestClient::FabricResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::RestClient::FabricResource](/reference/cpp/signalwire/rest/rest-client/fabric-resource)
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 66.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/update.mdx
new file mode 100644
index 0000000000..d329e33bfa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource-put/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-resource-put/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricResourcePUT::update"
+ parent: "signalwire::rest::RestClient::FabricResourcePUT"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & resource_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 70.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/fabric-resource.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/fabric-resource.mdx
new file mode 100644
index 0000000000..d258bcfe6d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/fabric-resource.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-resource/fabric-resource"
+title: "FabricResource"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricResource::FabricResource"
+ parent: "signalwire::rest::RestClient::FabricResource"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricResource`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricResource(const HttpClient & c, const std::string & base)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 57.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/index.mdx
new file mode 100644
index 0000000000..18d8ef5e19
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-resource"
+title: "FabricResource"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricResource"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricResource`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricResource : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 56.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/list-addresses.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/list-addresses.mdx
new file mode 100644
index 0000000000..c3efbe40c4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-resource/list-addresses.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-resource/list-addresses"
+title: "list_addresses"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricResource::list_addresses"
+ parent: "signalwire::rest::RestClient::FabricResource"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_addresses`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_addresses(
+ const std::string & resource_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 60.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/create-sip-endpoint.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/create-sip-endpoint.mdx
new file mode 100644
index 0000000000..0d6033a1d1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/create-sip-endpoint.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-subscribers/create-sip-endpoint"
+title: "create_sip_endpoint"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricSubscribers::create_sip_endpoint"
+ parent: "signalwire::rest::RestClient::FabricSubscribers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_sip_endpoint`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_sip_endpoint(
+ const std::string & subscriber_id,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 119.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/delete-sip-endpoint.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/delete-sip-endpoint.mdx
new file mode 100644
index 0000000000..c703b56ae3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/delete-sip-endpoint.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-subscribers/delete-sip-endpoint"
+title: "delete_sip_endpoint"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricSubscribers::delete_sip_endpoint"
+ parent: "signalwire::rest::RestClient::FabricSubscribers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `delete_sip_endpoint`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json delete_sip_endpoint(
+ const std::string & subscriber_id,
+ const std::string & endpoint_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 132.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/fabric-subscribers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/fabric-subscribers.mdx
new file mode 100644
index 0000000000..c5bdde05ef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/fabric-subscribers.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-subscribers/fabric-subscribers"
+title: "FabricSubscribers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricSubscribers::FabricSubscribers"
+ parent: "signalwire::rest::RestClient::FabricSubscribers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricSubscribers`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricSubscribers(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 112.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/get-sip-endpoint.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/get-sip-endpoint.mdx
new file mode 100644
index 0000000000..fecf1b5760
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/get-sip-endpoint.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-subscribers/get-sip-endpoint"
+title: "get_sip_endpoint"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricSubscribers::get_sip_endpoint"
+ parent: "signalwire::rest::RestClient::FabricSubscribers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_sip_endpoint`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_sip_endpoint(
+ const std::string & subscriber_id,
+ const std::string & endpoint_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 122.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/index.mdx
new file mode 100644
index 0000000000..a2df74427d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/index.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-subscribers"
+title: "FabricSubscribers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricSubscribers"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricSubscribers`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricSubscribers : signalwire::rest::RestClient::FabricResourcePUT
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::RestClient::FabricResourcePUT](/reference/cpp/signalwire/rest/rest-client/fabric-resource-put)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 111.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/list-sip-endpoints.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/list-sip-endpoints.mdx
new file mode 100644
index 0000000000..0eb04bb366
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/list-sip-endpoints.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-subscribers/list-sip-endpoints"
+title: "list_sip_endpoints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricSubscribers::list_sip_endpoints"
+ parent: "signalwire::rest::RestClient::FabricSubscribers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_sip_endpoints`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_sip_endpoints(
+ const std::string & subscriber_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 115.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/update-sip-endpoint.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/update-sip-endpoint.mdx
new file mode 100644
index 0000000000..eaff49ddd5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-subscribers/update-sip-endpoint.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-subscribers/update-sip-endpoint"
+title: "update_sip_endpoint"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricSubscribers::update_sip_endpoint"
+ parent: "signalwire::rest::RestClient::FabricSubscribers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update_sip_endpoint`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update_sip_endpoint(
+ const std::string & subscriber_id,
+ const std::string & endpoint_id,
+ const json & data
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 127.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-embed-token.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-embed-token.mdx
new file mode 100644
index 0000000000..7057f2e2c9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-embed-token.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-embed-token"
+title: "create_embed_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricTokens::create_embed_token"
+ parent: "signalwire::rest::RestClient::FabricTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_embed_token`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_embed_token(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 204.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-guest-token.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-guest-token.mdx
new file mode 100644
index 0000000000..5e35315cad
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-guest-token.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-guest-token"
+title: "create_guest_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricTokens::create_guest_token"
+ parent: "signalwire::rest::RestClient::FabricTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_guest_token`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_guest_token(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 201.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-invite-token.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-invite-token.mdx
new file mode 100644
index 0000000000..05696c21ff
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-invite-token.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-invite-token"
+title: "create_invite_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricTokens::create_invite_token"
+ parent: "signalwire::rest::RestClient::FabricTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_invite_token`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_invite_token(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 198.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-subscriber-token.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-subscriber-token.mdx
new file mode 100644
index 0000000000..2ea03a4bdf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-subscriber-token.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-tokens/create-subscriber-token"
+title: "create_subscriber_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricTokens::create_subscriber_token"
+ parent: "signalwire::rest::RestClient::FabricTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_subscriber_token`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_subscriber_token(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 192.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/fabric-tokens.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/fabric-tokens.mdx
new file mode 100644
index 0000000000..c0e5bc648e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/fabric-tokens.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-tokens/fabric-tokens"
+title: "FabricTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricTokens::FabricTokens"
+ parent: "signalwire::rest::RestClient::FabricTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricTokens`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void FabricTokens(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 190.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/index.mdx
new file mode 100644
index 0000000000..2c837085db
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-tokens"
+title: "FabricTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricTokens"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `FabricTokens`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::FabricTokens
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 187.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/refresh-subscriber-token.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/refresh-subscriber-token.mdx
new file mode 100644
index 0000000000..5fe07c5476
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric-tokens/refresh-subscriber-token.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric-tokens/refresh-subscriber-token"
+title: "refresh_subscriber_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::FabricTokens::refresh_subscriber_token"
+ parent: "signalwire::rest::RestClient::FabricTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `refresh_subscriber_token`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json refresh_subscriber_token(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 195.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric.mdx
new file mode 100644
index 0000000000..8de74ae06e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/fabric.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/fabric"
+title: "fabric"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::fabric"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `fabric`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+FabricNamespace & fabric()
+```
+
+## Returns
+
+`FabricNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1432.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/from-env.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/from-env.mdx
new file mode 100644
index 0000000000..3b8297d0fb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/from-env.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/from-env"
+title: "from_env"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::from_env"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `from_env`
+
+Initialize from environment variables.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+RestClient from_env()
+```
+
+## Returns
+
+`RestClient`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/http-client.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/http-client.mdx
new file mode 100644
index 0000000000..a4f0ea5008
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/http-client.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/http-client"
+title: "http_client"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::http_client"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `http_client`
+
+Get the underlying HTTP client.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const HttpClient & http_client() const
+```
+
+## Returns
+
+`const HttpClient &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1455.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/create.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/create.mdx
new file mode 100644
index 0000000000..ca50fa00d8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/create.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ImportedNumbersNamespace::create"
+ parent: "signalwire::rest::RestClient::ImportedNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1231.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/imported-numbers-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/imported-numbers-namespace.mdx
new file mode 100644
index 0000000000..a0abb89ae7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/imported-numbers-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/imported-numbers-namespace"
+title: "ImportedNumbersNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ImportedNumbersNamespace::ImportedNumbersNamespace"
+ parent: "signalwire::rest::RestClient::ImportedNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ImportedNumbersNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void ImportedNumbersNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1229.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/index.mdx
new file mode 100644
index 0000000000..f238b90149
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/imported-numbers-namespace"
+title: "ImportedNumbersNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ImportedNumbersNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ImportedNumbersNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::ImportedNumbersNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1228.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers.mdx
new file mode 100644
index 0000000000..d295fb7c86
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/imported-numbers.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/imported-numbers"
+title: "imported_numbers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::imported_numbers"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `imported_numbers`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+ImportedNumbersNamespace & imported_numbers()
+```
+
+## Returns
+
+`ImportedNumbersNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1446.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/index.mdx
new file mode 100644
index 0000000000..0a51cfeaa1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/index.mdx
@@ -0,0 +1,216 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client"
+title: "RestClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient"
+ parent: "signalwire::rest"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RestClient`
+
+Top-level SignalWire REST client with all API namespaces.
+
+## Signature
+
+```cpp
+class signalwire::rest::RestClient
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initialize from environment variables.
+
+
+
+ Get the underlying HTTP client.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Project ID accessor (read-only).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Construct with an explicit pre-built base URL (http://... or https://...) instead of synthesizing one from the SignalWire space hostname. Used by audit harnesses pointing the client at loopback fixtures. The space-based constructor remains the production path.
+
+
+
+## Classes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 18.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/index.mdx
new file mode 100644
index 0000000000..274c351bd7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/index.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-conferences"
+title: "LogsConferences"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsConferences"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsConferences`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::LogsConferences
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1373.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/list.mdx
new file mode 100644
index 0000000000..7de07a14e2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-conferences/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsConferences::list"
+ parent: "signalwire::rest::RestClient::LogsConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1377.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/logs-conferences.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/logs-conferences.mdx
new file mode 100644
index 0000000000..4cbcd62644
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-conferences/logs-conferences.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-conferences/logs-conferences"
+title: "LogsConferences"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsConferences::LogsConferences"
+ parent: "signalwire::rest::RestClient::LogsConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsConferences`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void LogsConferences(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1376.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/get.mdx
new file mode 100644
index 0000000000..b4fb62f3af
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-fax/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsFax::get"
+ parent: "signalwire::rest::RestClient::LogsFax"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & log_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1368.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/index.mdx
new file mode 100644
index 0000000000..1f0fca1fc9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-fax"
+title: "LogsFax"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsFax"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsFax`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::LogsFax
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1361.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/list.mdx
new file mode 100644
index 0000000000..2d9917f211
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-fax/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsFax::list"
+ parent: "signalwire::rest::RestClient::LogsFax"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1365.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/logs-fax.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/logs-fax.mdx
new file mode 100644
index 0000000000..61e7af43b2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-fax/logs-fax.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-fax/logs-fax"
+title: "LogsFax"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsFax::LogsFax"
+ parent: "signalwire::rest::RestClient::LogsFax"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsFax`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void LogsFax(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1364.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/get.mdx
new file mode 100644
index 0000000000..e2a83a628b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-messages/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsMessages::get"
+ parent: "signalwire::rest::RestClient::LogsMessages"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & log_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1340.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/index.mdx
new file mode 100644
index 0000000000..1cbaccc3e5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-messages"
+title: "LogsMessages"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsMessages"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsMessages`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::LogsMessages
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1333.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/list.mdx
new file mode 100644
index 0000000000..cede7366c9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-messages/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsMessages::list"
+ parent: "signalwire::rest::RestClient::LogsMessages"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1337.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/logs-messages.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/logs-messages.mdx
new file mode 100644
index 0000000000..f06c977b47
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-messages/logs-messages.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-messages/logs-messages"
+title: "LogsMessages"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsMessages::LogsMessages"
+ parent: "signalwire::rest::RestClient::LogsMessages"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsMessages`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void LogsMessages(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1336.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-namespace/index.mdx
new file mode 100644
index 0000000000..8916252b9a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-namespace/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-namespace"
+title: "LogsNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::LogsNamespace
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1382.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-namespace/logs-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-namespace/logs-namespace.mdx
new file mode 100644
index 0000000000..2c5472a4be
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-namespace/logs-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-namespace/logs-namespace"
+title: "LogsNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsNamespace::LogsNamespace"
+ parent: "signalwire::rest::RestClient::LogsNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void LogsNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1387.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/get.mdx
new file mode 100644
index 0000000000..35ae0662d0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-voice/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsVoice::get"
+ parent: "signalwire::rest::RestClient::LogsVoice"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & log_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1352.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/index.mdx
new file mode 100644
index 0000000000..58486ca825
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-voice"
+title: "LogsVoice"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsVoice"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsVoice`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::LogsVoice
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1345.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/list-events.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/list-events.mdx
new file mode 100644
index 0000000000..9644b39e05
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/list-events.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-voice/list-events"
+title: "list_events"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsVoice::list_events"
+ parent: "signalwire::rest::RestClient::LogsVoice"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_events`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_events(
+ const std::string & log_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1355.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/list.mdx
new file mode 100644
index 0000000000..db26b3be95
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-voice/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsVoice::list"
+ parent: "signalwire::rest::RestClient::LogsVoice"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1349.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/logs-voice.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/logs-voice.mdx
new file mode 100644
index 0000000000..9c0ffb5665
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs-voice/logs-voice.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs-voice/logs-voice"
+title: "LogsVoice"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LogsVoice::LogsVoice"
+ parent: "signalwire::rest::RestClient::LogsVoice"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LogsVoice`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void LogsVoice(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1348.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs.mdx
new file mode 100644
index 0000000000..6c325c10bb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/logs.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/logs"
+title: "logs"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::logs"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `logs`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+LogsNamespace & logs()
+```
+
+## Returns
+
+`LogsNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1449.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/index.mdx
new file mode 100644
index 0000000000..695170dde1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/lookup-namespace"
+title: "LookupNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LookupNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LookupNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::LookupNamespace
+```
+
+## Properties
+
+
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1209.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/lookup-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/lookup-namespace.mdx
new file mode 100644
index 0000000000..b42ed7dddb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/lookup-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/lookup-namespace/lookup-namespace"
+title: "LookupNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LookupNamespace::LookupNamespace"
+ parent: "signalwire::rest::RestClient::LookupNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `LookupNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void LookupNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1211.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/lookup.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/lookup.mdx
new file mode 100644
index 0000000000..bc17201943
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup-namespace/lookup.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/lookup-namespace/lookup"
+title: "lookup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::LookupNamespace::lookup"
+ parent: "signalwire::rest::RestClient::LookupNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `lookup`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json lookup(const std::string & number) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1212.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup.mdx
new file mode 100644
index 0000000000..b85e106cb7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/lookup.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/lookup"
+title: "lookup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::lookup"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `lookup`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+LookupNamespace & lookup()
+```
+
+## Returns
+
+`LookupNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1444.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/call.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/call.mdx
new file mode 100644
index 0000000000..194262c2f9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/call.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/mfa-namespace/call"
+title: "call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::MFANamespace::call"
+ parent: "signalwire::rest::RestClient::MFANamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `call`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json call(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1241.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/index.mdx
new file mode 100644
index 0000000000..6a67025cc4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/index.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/mfa-namespace"
+title: "MFANamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::MFANamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `MFANamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::MFANamespace
+```
+
+## Properties
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1236.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/mfa-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/mfa-namespace.mdx
new file mode 100644
index 0000000000..6a47e181b0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/mfa-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/mfa-namespace/mfa-namespace"
+title: "MFANamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::MFANamespace::MFANamespace"
+ parent: "signalwire::rest::RestClient::MFANamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `MFANamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void MFANamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1238.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/request-code.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/request-code.mdx
new file mode 100644
index 0000000000..ce944d3ab4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/request-code.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/mfa-namespace/request-code"
+title: "request_code"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::MFANamespace::request_code"
+ parent: "signalwire::rest::RestClient::MFANamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `request_code`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json request_code(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1246.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/sms.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/sms.mdx
new file mode 100644
index 0000000000..b2be2a6d2d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/sms.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/mfa-namespace/sms"
+title: "sms"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::MFANamespace::sms"
+ parent: "signalwire::rest::RestClient::MFANamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `sms`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json sms(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1240.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/verify-code.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/verify-code.mdx
new file mode 100644
index 0000000000..3fde886e02
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/verify-code.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/mfa-namespace/verify-code"
+title: "verify_code"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::MFANamespace::verify_code"
+ parent: "signalwire::rest::RestClient::MFANamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `verify_code`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json verify_code(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1247.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/verify.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/verify.mdx
new file mode 100644
index 0000000000..4878e6ef87
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa-namespace/verify.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/mfa-namespace/verify"
+title: "verify"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::MFANamespace::verify"
+ parent: "signalwire::rest::RestClient::MFANamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `verify`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json verify(const std::string & request_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1242.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa.mdx
new file mode 100644
index 0000000000..7b222757ac
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/mfa.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/mfa"
+title: "mfa"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::mfa"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `mfa`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+MFANamespace & mfa()
+```
+
+## Returns
+
+`MFANamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1447.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/add-membership.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/add-membership.mdx
new file mode 100644
index 0000000000..cefc4d1228
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/add-membership.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/number-groups-namespace/add-membership"
+title: "add_membership"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::NumberGroupsNamespace::add_membership"
+ parent: "signalwire::rest::RestClient::NumberGroupsNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `add_membership`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json add_membership(const std::string & group_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1186.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/delete-membership.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/delete-membership.mdx
new file mode 100644
index 0000000000..d94449412d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/delete-membership.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/number-groups-namespace/delete-membership"
+title: "delete_membership"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::NumberGroupsNamespace::delete_membership"
+ parent: "signalwire::rest::RestClient::NumberGroupsNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `delete_membership`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json delete_membership(const std::string & membership_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1192.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/get-membership.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/get-membership.mdx
new file mode 100644
index 0000000000..c52554a103
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/get-membership.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/number-groups-namespace/get-membership"
+title: "get_membership"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::NumberGroupsNamespace::get_membership"
+ parent: "signalwire::rest::RestClient::NumberGroupsNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_membership`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_membership(const std::string & membership_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1189.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/index.mdx
new file mode 100644
index 0000000000..77f10a621f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/index.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/number-groups-namespace"
+title: "NumberGroupsNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::NumberGroupsNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `NumberGroupsNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::NumberGroupsNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1175.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/list-memberships.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/list-memberships.mdx
new file mode 100644
index 0000000000..b1663090df
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/list-memberships.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/number-groups-namespace/list-memberships"
+title: "list_memberships"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::NumberGroupsNamespace::list_memberships"
+ parent: "signalwire::rest::RestClient::NumberGroupsNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_memberships`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_memberships(
+ const std::string & group_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1182.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/number-groups-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/number-groups-namespace.mdx
new file mode 100644
index 0000000000..33b1bd58d9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/number-groups-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/number-groups-namespace/number-groups-namespace"
+title: "NumberGroupsNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::NumberGroupsNamespace::NumberGroupsNamespace"
+ parent: "signalwire::rest::RestClient::NumberGroupsNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `NumberGroupsNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void NumberGroupsNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1176.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/update.mdx
new file mode 100644
index 0000000000..d2c43b8b59
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups-namespace/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/number-groups-namespace/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::NumberGroupsNamespace::update"
+ parent: "signalwire::rest::RestClient::NumberGroupsNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1178.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups.mdx
new file mode 100644
index 0000000000..3657c26ba4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/number-groups.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/number-groups"
+title: "number_groups"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::number_groups"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `number_groups`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+NumberGroupsNamespace & number_groups()
+```
+
+## Returns
+
+`NumberGroupsNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1441.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/buy.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/buy.mdx
new file mode 100644
index 0000000000..5990b9dc28
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/buy.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/buy"
+title: "buy"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::buy"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `buy`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json buy(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 455.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/call-flow-options/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/call-flow-options/index.mdx
new file mode 100644
index 0000000000..16cd4a4fa9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/call-flow-options/index.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/call-flow-options"
+title: "CallFlowOptions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::CallFlowOptions"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient.PhoneNumbersNamespace"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CallFlowOptions`
+
+Options for binding a phone number to a call flow.
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::PhoneNumbersNamespace::CallFlowOptions
+```
+
+## Properties
+
+
+ Accepts "working\_copy" or "current\_deployed" (server default when omitted).
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 479.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/cxml-webhook-options/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/cxml-webhook-options/index.mdx
new file mode 100644
index 0000000000..4a76b98960
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/cxml-webhook-options/index.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/cxml-webhook-options"
+title: "CxmlWebhookOptions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::CxmlWebhookOptions"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient.PhoneNumbersNamespace"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `CxmlWebhookOptions`
+
+Options for binding a phone number to a cXML (Twilio-compat) webhook.
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::PhoneNumbersNamespace::CxmlWebhookOptions
+```
+
+## Properties
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 473.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/index.mdx
new file mode 100644
index 0000000000..ce0a0fd970
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/index.mdx
@@ -0,0 +1,102 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace"
+title: "PhoneNumbersNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `PhoneNumbersNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::PhoneNumbersNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Route inbound calls to an AI Agent Fabric resource by ID.
+
+
+
+ Route inbound calls to a Call Flow by ID. opts.version accepts "working\_copy" or "current\_deployed".
+
+
+
+ Route inbound calls to an existing cXML application by ID.
+
+
+
+ Route inbound calls to a cXML (Twilio-compat / LAML) webhook. Despite the wire value laml\_webhooks being plural, this creates a single cxml\_webhook Fabric resource. Extra options populate fallback and status-callback fields.
+
+
+
+ Route inbound calls to a named RELAY application.
+
+
+
+ Route inbound calls to a RELAY topic (client subscription).
+
+
+
+ Route inbound calls to an SWML webhook URL. Server auto-creates a swml\_webhook Fabric resource keyed off this URL.
+
+
+
+## Classes
+
+
+
+ Options for binding a phone number to a call flow.
+
+
+
+ Options for binding a phone number to a cXML (Twilio-compat) webhook.
+
+
+
+ Options for binding a phone number to a RELAY topic.
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 452.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-ai-agent-body.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-ai-agent-body.mdx
new file mode 100644
index 0000000000..cdc77347c4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-ai-agent-body.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-ai-agent-body"
+title: "make_ai_agent_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::make_ai_agent_body"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `make_ai_agent_body`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+json make_ai_agent_body(const std::string & agent_id)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 517.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-call-flow-body.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-call-flow-body.mdx
new file mode 100644
index 0000000000..cc6612cffc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-call-flow-body.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-call-flow-body"
+title: "make_call_flow_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::make_call_flow_body"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `make_call_flow_body`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+json make_call_flow_body(
+ const std::string & flow_id,
+ const CallFlowOptions & opts = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 524.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-cxml-application-body.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-cxml-application-body.mdx
new file mode 100644
index 0000000000..6711ed8760
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-cxml-application-body.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-cxml-application-body"
+title: "make_cxml_application_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::make_cxml_application_body"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `make_cxml_application_body`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+json make_cxml_application_body(const std::string & application_id)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 510.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-cxml-webhook-body.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-cxml-webhook-body.mdx
new file mode 100644
index 0000000000..15ce3252ab
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-cxml-webhook-body.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-cxml-webhook-body"
+title: "make_cxml_webhook_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::make_cxml_webhook_body"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `make_cxml_webhook_body`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+json make_cxml_webhook_body(
+ const std::string & url,
+ const CxmlWebhookOptions & opts = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 499.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-relay-application-body.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-relay-application-body.mdx
new file mode 100644
index 0000000000..7da335015a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-relay-application-body.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-relay-application-body"
+title: "make_relay_application_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::make_relay_application_body"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `make_relay_application_body`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+json make_relay_application_body(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 534.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-relay-topic-body.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-relay-topic-body.mdx
new file mode 100644
index 0000000000..31054e56e0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-relay-topic-body.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-relay-topic-body"
+title: "make_relay_topic_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::make_relay_topic_body"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `make_relay_topic_body`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+json make_relay_topic_body(
+ const std::string & topic,
+ const RelayTopicOptions & opts = {}
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 541.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-swml-webhook-body.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-swml-webhook-body.mdx
new file mode 100644
index 0000000000..f655144b0d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-swml-webhook-body.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/make-swml-webhook-body"
+title: "make_swml_webhook_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::make_swml_webhook_body"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `make_swml_webhook_body`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+json make_swml_webhook_body(const std::string & url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 492.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/phone-numbers-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/phone-numbers-namespace.mdx
new file mode 100644
index 0000000000..117607a41f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/phone-numbers-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/phone-numbers-namespace"
+title: "PhoneNumbersNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::PhoneNumbersNamespace"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `PhoneNumbersNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void PhoneNumbersNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 453.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/relay-topic-options/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/relay-topic-options/index.mdx
new file mode 100644
index 0000000000..31476d58f1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/relay-topic-options/index.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/relay-topic-options"
+title: "RelayTopicOptions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::RelayTopicOptions"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient.PhoneNumbersNamespace"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RelayTopicOptions`
+
+Options for binding a phone number to a RELAY topic.
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::PhoneNumbersNamespace::RelayTopicOptions
+```
+
+## Properties
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 486.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/release.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/release.mdx
new file mode 100644
index 0000000000..302738435b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/release.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/release"
+title: "release"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::release"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `release`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json release(const std::string & id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 456.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/search.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/search.mdx
new file mode 100644
index 0000000000..5891024c6a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/search.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/search"
+title: "search"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::search"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `search`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json search(const std::map< std::string, std::string > & p) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 454.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-ai-agent.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-ai-agent.mdx
new file mode 100644
index 0000000000..67a8b3f7fc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-ai-agent.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-ai-agent"
+title: "set_ai_agent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::set_ai_agent"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `set_ai_agent`
+
+Route inbound calls to an AI Agent Fabric resource by ID.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json set_ai_agent(
+ const std::string & resource_id,
+ const std::string & agent_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 577.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-call-flow.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-call-flow.mdx
new file mode 100644
index 0000000000..53ed80b321
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-call-flow.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-call-flow"
+title: "set_call_flow"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::set_call_flow"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `set_call_flow`
+
+Route inbound calls to a Call Flow by ID. opts.version accepts "working\_copy" or "current\_deployed".
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json set_call_flow(
+ const std::string & resource_id,
+ const std::string & flow_id,
+ const CallFlowOptions & opts = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 584.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-cxml-application.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-cxml-application.mdx
new file mode 100644
index 0000000000..0df0938bcb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-cxml-application.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-cxml-application"
+title: "set_cxml_application"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::set_cxml_application"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `set_cxml_application`
+
+Route inbound calls to an existing cXML application by ID.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json set_cxml_application(
+ const std::string & resource_id,
+ const std::string & application_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 571.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-cxml-webhook.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-cxml-webhook.mdx
new file mode 100644
index 0000000000..620ef25c07
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-cxml-webhook.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-cxml-webhook"
+title: "set_cxml_webhook"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::set_cxml_webhook"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `set_cxml_webhook`
+
+Route inbound calls to a cXML (Twilio-compat / LAML) webhook. Despite the wire value laml\_webhooks being plural, this creates a single cxml\_webhook Fabric resource. Extra options populate fallback and status-callback fields.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json set_cxml_webhook(
+ const std::string & resource_id,
+ const std::string & url,
+ const CxmlWebhookOptions & opts = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 564.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-relay-application.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-relay-application.mdx
new file mode 100644
index 0000000000..188b972655
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-relay-application.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-relay-application"
+title: "set_relay_application"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::set_relay_application"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `set_relay_application`
+
+Route inbound calls to a named RELAY application.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json set_relay_application(
+ const std::string & resource_id,
+ const std::string & name
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 591.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-relay-topic.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-relay-topic.mdx
new file mode 100644
index 0000000000..e88014986d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-relay-topic.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-relay-topic"
+title: "set_relay_topic"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::set_relay_topic"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `set_relay_topic`
+
+Route inbound calls to a RELAY topic (client subscription).
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json set_relay_topic(
+ const std::string & resource_id,
+ const std::string & topic,
+ const RelayTopicOptions & opts = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 597.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-swml-webhook.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-swml-webhook.mdx
new file mode 100644
index 0000000000..1e43ef8c70
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-swml-webhook.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers-namespace/set-swml-webhook"
+title: "set_swml_webhook"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PhoneNumbersNamespace::set_swml_webhook"
+ parent: "signalwire::rest::RestClient::PhoneNumbersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `set_swml_webhook`
+
+Route inbound calls to an SWML webhook URL. Server auto-creates a swml\_webhook Fabric resource keyed off this URL.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json set_swml_webhook(
+ const std::string & resource_id,
+ const std::string & url
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 556.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers.mdx
new file mode 100644
index 0000000000..b0ada825f9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/phone-numbers.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/phone-numbers"
+title: "phone_numbers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::phone_numbers"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `phone_numbers`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+PhoneNumbersNamespace & phone_numbers()
+```
+
+## Returns
+
+`PhoneNumbersNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1434.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-id.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-id.mdx
new file mode 100644
index 0000000000..d2afaaa976
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-id.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-id"
+title: "project_id"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::project_id"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `project_id`
+
+Project ID accessor (read-only).
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & project_id() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/get-project.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/get-project.mdx
new file mode 100644
index 0000000000..199d47a57f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/get-project.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-namespace/get-project"
+title: "get_project"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ProjectNamespace::get_project"
+ parent: "signalwire::rest::RestClient::ProjectNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_project`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_project() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1411.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/index.mdx
new file mode 100644
index 0000000000..a13bf0bb8f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-namespace"
+title: "ProjectNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ProjectNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ProjectNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::ProjectNamespace
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1405.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/project-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/project-namespace.mdx
new file mode 100644
index 0000000000..8029be6871
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/project-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-namespace/project-namespace"
+title: "ProjectNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ProjectNamespace::ProjectNamespace"
+ parent: "signalwire::rest::RestClient::ProjectNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ProjectNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void ProjectNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1408.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/update-project.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/update-project.mdx
new file mode 100644
index 0000000000..d3ba2c916b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-namespace/update-project.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-namespace/update-project"
+title: "update_project"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ProjectNamespace::update_project"
+ parent: "signalwire::rest::RestClient::ProjectNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update_project`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update_project(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1412.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/create.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/create.mdx
new file mode 100644
index 0000000000..07193af999
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/create.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-tokens/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ProjectTokens::create"
+ parent: "signalwire::rest::RestClient::ProjectTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1396.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/index.mdx
new file mode 100644
index 0000000000..aef59aa04d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-tokens"
+title: "ProjectTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ProjectTokens"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ProjectTokens`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::ProjectTokens
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1392.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/project-tokens.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/project-tokens.mdx
new file mode 100644
index 0000000000..3c4f0e297f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/project-tokens.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-tokens/project-tokens"
+title: "ProjectTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ProjectTokens::ProjectTokens"
+ parent: "signalwire::rest::RestClient::ProjectTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ProjectTokens`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void ProjectTokens(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1395.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/update.mdx
new file mode 100644
index 0000000000..c8a267a3f1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project-tokens/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project-tokens/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ProjectTokens::update"
+ parent: "signalwire::rest::RestClient::ProjectTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & token_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1397.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project.mdx
new file mode 100644
index 0000000000..5587c8867f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/project.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/project"
+title: "project"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::project"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `project`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+ProjectNamespace & project()
+```
+
+## Returns
+
+`ProjectNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1450.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/index.mdx
new file mode 100644
index 0000000000..d40669762c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/pub-sub-namespace"
+title: "PubSubNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PubSubNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `PubSubNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::PubSubNamespace
+```
+
+## Properties
+
+
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1415.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/pub-sub-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/pub-sub-namespace.mdx
new file mode 100644
index 0000000000..2629b14913
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/pub-sub-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/pub-sub-namespace"
+title: "PubSubNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PubSubNamespace::PubSubNamespace"
+ parent: "signalwire::rest::RestClient::PubSubNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `PubSubNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void PubSubNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1417.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/publish.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/publish.mdx
new file mode 100644
index 0000000000..de3f4c1213
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/publish.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/pub-sub-namespace/publish"
+title: "publish"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::PubSubNamespace::publish"
+ parent: "signalwire::rest::RestClient::PubSubNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `publish`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json publish(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1418.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pubsub.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pubsub.mdx
new file mode 100644
index 0000000000..04200647de
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/pubsub.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/pubsub"
+title: "pubsub"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::pubsub"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `pubsub`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+PubSubNamespace & pubsub()
+```
+
+## Returns
+
+`PubSubNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1451.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/get-member.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/get-member.mdx
new file mode 100644
index 0000000000..84738dc88f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/get-member.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/queues-namespace/get-member"
+title: "get_member"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::QueuesNamespace::get_member"
+ parent: "signalwire::rest::RestClient::QueuesNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_member`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_member(
+ const std::string & queue_id,
+ const std::string & member_id
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1164.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/get-next-member.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/get-next-member.mdx
new file mode 100644
index 0000000000..2cb96ffccd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/get-next-member.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/queues-namespace/get-next-member"
+title: "get_next_member"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::QueuesNamespace::get_next_member"
+ parent: "signalwire::rest::RestClient::QueuesNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get_next_member`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get_next_member(const std::string & queue_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1161.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/index.mdx
new file mode 100644
index 0000000000..008e71c5b8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/queues-namespace"
+title: "QueuesNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::QueuesNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `QueuesNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::QueuesNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1151.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/list-members.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/list-members.mdx
new file mode 100644
index 0000000000..db3dd8aaa8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/list-members.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/queues-namespace/list-members"
+title: "list_members"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::QueuesNamespace::list_members"
+ parent: "signalwire::rest::RestClient::QueuesNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_members`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_members(
+ const std::string & queue_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1157.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/queues-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/queues-namespace.mdx
new file mode 100644
index 0000000000..b4d1fc8155
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/queues-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/queues-namespace/queues-namespace"
+title: "QueuesNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::QueuesNamespace::QueuesNamespace"
+ parent: "signalwire::rest::RestClient::QueuesNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `QueuesNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void QueuesNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1152.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/update.mdx
new file mode 100644
index 0000000000..985ab3a69b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues-namespace/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/queues-namespace/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::QueuesNamespace::update"
+ parent: "signalwire::rest::RestClient::QueuesNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1154.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues.mdx
new file mode 100644
index 0000000000..b9b7781971
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/queues.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/queues"
+title: "queues"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::queues"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `queues`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+QueuesNamespace & queues()
+```
+
+## Returns
+
+`QueuesNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1439.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings-namespace/index.mdx
new file mode 100644
index 0000000000..54b9df9014
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings-namespace/index.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/recordings-namespace"
+title: "RecordingsNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RecordingsNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RecordingsNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::RecordingsNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1169.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings-namespace/recordings-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings-namespace/recordings-namespace.mdx
new file mode 100644
index 0000000000..9af469d8a4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings-namespace/recordings-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/recordings-namespace/recordings-namespace"
+title: "RecordingsNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RecordingsNamespace::RecordingsNamespace"
+ parent: "signalwire::rest::RestClient::RecordingsNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RecordingsNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void RecordingsNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1170.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings.mdx
new file mode 100644
index 0000000000..9c15413eb6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/recordings.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/recordings"
+title: "recordings"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::recordings"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `recordings`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+RecordingsNamespace & recordings()
+```
+
+## Returns
+
+`RecordingsNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1440.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/create-campaign.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/create-campaign.mdx
new file mode 100644
index 0000000000..d961fb4ba8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/create-campaign.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-brands/create-campaign"
+title: "create_campaign"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryBrands::create_campaign"
+ parent: "signalwire::rest::RestClient::RegistryBrands"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_campaign`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_campaign(const std::string & brand_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1269.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/create.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/create.mdx
new file mode 100644
index 0000000000..ae1a257a2f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/create.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-brands/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryBrands::create"
+ parent: "signalwire::rest::RestClient::RegistryBrands"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1261.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/get.mdx
new file mode 100644
index 0000000000..2b6e0a56a4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-brands/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryBrands::get"
+ parent: "signalwire::rest::RestClient::RegistryBrands"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & brand_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1262.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/index.mdx
new file mode 100644
index 0000000000..cc00ab9584
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-brands"
+title: "RegistryBrands"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryBrands"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryBrands`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::RegistryBrands
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1254.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/list-campaigns.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/list-campaigns.mdx
new file mode 100644
index 0000000000..32edf0f1c0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/list-campaigns.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-brands/list-campaigns"
+title: "list_campaigns"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryBrands::list_campaigns"
+ parent: "signalwire::rest::RestClient::RegistryBrands"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_campaigns`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_campaigns(
+ const std::string & brand_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1265.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/list.mdx
new file mode 100644
index 0000000000..2c192cd437
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-brands/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryBrands::list"
+ parent: "signalwire::rest::RestClient::RegistryBrands"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1258.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/registry-brands.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/registry-brands.mdx
new file mode 100644
index 0000000000..e449ecf4a2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-brands/registry-brands.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-brands/registry-brands"
+title: "RegistryBrands"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryBrands::RegistryBrands"
+ parent: "signalwire::rest::RestClient::RegistryBrands"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryBrands`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void RegistryBrands(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1257.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/create-order.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/create-order.mdx
new file mode 100644
index 0000000000..3511f1b1c0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/create-order.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-campaigns/create-order"
+title: "create_order"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryCampaigns::create_order"
+ parent: "signalwire::rest::RestClient::RegistryCampaigns"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_order`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_order(const std::string & campaign_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1293.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/get.mdx
new file mode 100644
index 0000000000..86ad56854c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-campaigns/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryCampaigns::get"
+ parent: "signalwire::rest::RestClient::RegistryCampaigns"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & campaign_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1278.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/index.mdx
new file mode 100644
index 0000000000..1d9aeb0891
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-campaigns"
+title: "RegistryCampaigns"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryCampaigns"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryCampaigns`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::RegistryCampaigns
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1274.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/list-numbers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/list-numbers.mdx
new file mode 100644
index 0000000000..2688ae9a0b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/list-numbers.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-campaigns/list-numbers"
+title: "list_numbers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryCampaigns::list_numbers"
+ parent: "signalwire::rest::RestClient::RegistryCampaigns"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_numbers`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_numbers(
+ const std::string & campaign_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1285.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/list-orders.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/list-orders.mdx
new file mode 100644
index 0000000000..5aebb184bb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/list-orders.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-campaigns/list-orders"
+title: "list_orders"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryCampaigns::list_orders"
+ parent: "signalwire::rest::RestClient::RegistryCampaigns"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_orders`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_orders(
+ const std::string & campaign_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1289.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/registry-campaigns.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/registry-campaigns.mdx
new file mode 100644
index 0000000000..ef992e7874
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/registry-campaigns.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-campaigns/registry-campaigns"
+title: "RegistryCampaigns"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryCampaigns::RegistryCampaigns"
+ parent: "signalwire::rest::RestClient::RegistryCampaigns"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryCampaigns`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void RegistryCampaigns(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1277.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/update.mdx
new file mode 100644
index 0000000000..757f8c043c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-campaigns/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-campaigns/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryCampaigns::update"
+ parent: "signalwire::rest::RestClient::RegistryCampaigns"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & campaign_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1282.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-namespace/index.mdx
new file mode 100644
index 0000000000..2d938ec105
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-namespace/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-namespace"
+title: "RegistryNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::RegistryNamespace
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1316.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-namespace/registry-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-namespace/registry-namespace.mdx
new file mode 100644
index 0000000000..590ce29f5c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-namespace/registry-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-namespace/registry-namespace"
+title: "RegistryNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryNamespace::RegistryNamespace"
+ parent: "signalwire::rest::RestClient::RegistryNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void RegistryNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1321.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-numbers/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-numbers/index.mdx
new file mode 100644
index 0000000000..0c235b2f20
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-numbers/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-numbers"
+title: "RegistryNumbers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryNumbers"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryNumbers`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::RegistryNumbers
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1307.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-numbers/registry-numbers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-numbers/registry-numbers.mdx
new file mode 100644
index 0000000000..e71ca65920
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-numbers/registry-numbers.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-numbers/registry-numbers"
+title: "RegistryNumbers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryNumbers::RegistryNumbers"
+ parent: "signalwire::rest::RestClient::RegistryNumbers"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryNumbers`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void RegistryNumbers(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1310.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/get.mdx
new file mode 100644
index 0000000000..3e647a919f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-orders/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryOrders::get"
+ parent: "signalwire::rest::RestClient::RegistryOrders"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & order_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1302.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/index.mdx
new file mode 100644
index 0000000000..7d66caec49
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/index.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-orders"
+title: "RegistryOrders"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryOrders"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryOrders`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::RegistryOrders
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1298.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/registry-orders.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/registry-orders.mdx
new file mode 100644
index 0000000000..e9ebff75ba
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry-orders/registry-orders.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry-orders/registry-orders"
+title: "RegistryOrders"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RegistryOrders::RegistryOrders"
+ parent: "signalwire::rest::RestClient::RegistryOrders"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RegistryOrders`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void RegistryOrders(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1301.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry.mdx
new file mode 100644
index 0000000000..e496d2bb54
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/registry.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/registry"
+title: "registry"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::registry"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `registry`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+RegistryNamespace & registry()
+```
+
+## Returns
+
+`RegistryNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1448.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/rest-client.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/rest-client.mdx
new file mode 100644
index 0000000000..eff4ea2e13
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/rest-client.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/rest-client"
+title: "RestClient"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::RestClient"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `RestClient`
+
+## Signature
+
+```cpp
+void RestClient(
+ const std::string & space,
+ const std::string & project_id,
+ const std::string & token
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 20.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/index.mdx
new file mode 100644
index 0000000000..e53e97d2dc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/short-codes-namespace"
+title: "ShortCodesNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ShortCodesNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ShortCodesNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::ShortCodesNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1215.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/short-codes-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/short-codes-namespace.mdx
new file mode 100644
index 0000000000..269bf1b96e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/short-codes-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/short-codes-namespace/short-codes-namespace"
+title: "ShortCodesNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ShortCodesNamespace::ShortCodesNamespace"
+ parent: "signalwire::rest::RestClient::ShortCodesNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `ShortCodesNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void ShortCodesNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1216.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/update.mdx
new file mode 100644
index 0000000000..51c6048b78
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes-namespace/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/short-codes-namespace/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::ShortCodesNamespace::update"
+ parent: "signalwire::rest::RestClient::ShortCodesNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1218.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes.mdx
new file mode 100644
index 0000000000..0120734e25
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/short-codes.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/short-codes"
+title: "short_codes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::short_codes"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `short_codes`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+ShortCodesNamespace & short_codes()
+```
+
+## Returns
+
+`ShortCodesNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1445.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/get.mdx
new file mode 100644
index 0000000000..0e4271f601
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/get.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::SipProfileNamespace::get"
+ parent: "signalwire::rest::RestClient::SipProfileNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1205.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/index.mdx
new file mode 100644
index 0000000000..efa2f3242e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/index.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/sip-profile-namespace"
+title: "SipProfileNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::SipProfileNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `SipProfileNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::SipProfileNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1203.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/sip-profile-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/sip-profile-namespace.mdx
new file mode 100644
index 0000000000..ab69ca61eb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/sip-profile-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/sip-profile-namespace"
+title: "SipProfileNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::SipProfileNamespace::SipProfileNamespace"
+ parent: "signalwire::rest::RestClient::SipProfileNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `SipProfileNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void SipProfileNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1204.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/update.mdx
new file mode 100644
index 0000000000..9def6b9cc1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/update.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/sip-profile-namespace/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::SipProfileNamespace::update"
+ parent: "signalwire::rest::RestClient::SipProfileNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1206.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile.mdx
new file mode 100644
index 0000000000..b50b8d9f2a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/sip-profile.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/sip-profile"
+title: "sip_profile"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::sip_profile"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `sip_profile`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+SipProfileNamespace & sip_profile()
+```
+
+## Returns
+
+`SipProfileNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1443.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers-namespace/index.mdx
new file mode 100644
index 0000000000..d9067fe672
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers-namespace/index.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/verified-callers-namespace"
+title: "VerifiedCallersNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VerifiedCallersNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VerifiedCallersNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VerifiedCallersNamespace : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1197.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers-namespace/verified-callers-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers-namespace/verified-callers-namespace.mdx
new file mode 100644
index 0000000000..da1740ddc4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers-namespace/verified-callers-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/verified-callers-namespace/verified-callers-namespace"
+title: "VerifiedCallersNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VerifiedCallersNamespace::VerifiedCallersNamespace"
+ parent: "signalwire::rest::RestClient::VerifiedCallersNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VerifiedCallersNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VerifiedCallersNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1198.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers.mdx
new file mode 100644
index 0000000000..07e4563669
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/verified-callers.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/verified-callers"
+title: "verified_callers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::verified_callers"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `verified_callers`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+VerifiedCallersNamespace & verified_callers()
+```
+
+## Returns
+
+`VerifiedCallersNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1442.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/get.mdx
new file mode 100644
index 0000000000..10eb239c07
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conference-tokens/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferenceTokens::get"
+ parent: "signalwire::rest::RestClient::VideoConferenceTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & token_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 747.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/index.mdx
new file mode 100644
index 0000000000..86cc320230
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conference-tokens"
+title: "VideoConferenceTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferenceTokens"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoConferenceTokens`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VideoConferenceTokens
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 743.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/reset.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/reset.mdx
new file mode 100644
index 0000000000..b66942fae5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/reset.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conference-tokens/reset"
+title: "reset"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferenceTokens::reset"
+ parent: "signalwire::rest::RestClient::VideoConferenceTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `reset`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json reset(const std::string & token_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 750.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/video-conference-tokens.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/video-conference-tokens.mdx
new file mode 100644
index 0000000000..a4fd0fb476
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conference-tokens/video-conference-tokens.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conference-tokens/video-conference-tokens"
+title: "VideoConferenceTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferenceTokens::VideoConferenceTokens"
+ parent: "signalwire::rest::RestClient::VideoConferenceTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoConferenceTokens`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VideoConferenceTokens(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 746.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/create-stream.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/create-stream.mdx
new file mode 100644
index 0000000000..95202d5774
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/create-stream.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conferences/create-stream"
+title: "create_stream"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferences::create_stream"
+ parent: "signalwire::rest::RestClient::VideoConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_stream`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_stream(const std::string & conf_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 738.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/index.mdx
new file mode 100644
index 0000000000..55e93547c9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conferences"
+title: "VideoConferences"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferences"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoConferences`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VideoConferences : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 723.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/list-conference-tokens.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/list-conference-tokens.mdx
new file mode 100644
index 0000000000..3b4a6ec3ab
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/list-conference-tokens.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conferences/list-conference-tokens"
+title: "list_conference_tokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferences::list_conference_tokens"
+ parent: "signalwire::rest::RestClient::VideoConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_conference_tokens`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_conference_tokens(
+ const std::string & conf_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 730.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/list-streams.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/list-streams.mdx
new file mode 100644
index 0000000000..0bd633ade6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/list-streams.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conferences/list-streams"
+title: "list_streams"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferences::list_streams"
+ parent: "signalwire::rest::RestClient::VideoConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_streams`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_streams(
+ const std::string & conf_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 734.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/update.mdx
new file mode 100644
index 0000000000..1e330bb7de
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conferences/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferences::update"
+ parent: "signalwire::rest::RestClient::VideoConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & conf_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 727.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/video-conferences.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/video-conferences.mdx
new file mode 100644
index 0000000000..a5c6206339
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-conferences/video-conferences.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-conferences/video-conferences"
+title: "VideoConferences"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoConferences::VideoConferences"
+ parent: "signalwire::rest::RestClient::VideoConferences"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoConferences`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VideoConferences(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 724.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-namespace/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-namespace/index.mdx
new file mode 100644
index 0000000000..35101757aa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-namespace/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-namespace"
+title: "VideoNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoNamespace"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoNamespace`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VideoNamespace
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 771.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-namespace/video-namespace.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-namespace/video-namespace.mdx
new file mode 100644
index 0000000000..6a8e9179bd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-namespace/video-namespace.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-namespace/video-namespace"
+title: "VideoNamespace"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoNamespace::VideoNamespace"
+ parent: "signalwire::rest::RestClient::VideoNamespace"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoNamespace`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VideoNamespace(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 785.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/get.mdx
new file mode 100644
index 0000000000..25ce5cc6da
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-recordings/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomRecordings::get"
+ parent: "signalwire::rest::RestClient::VideoRoomRecordings"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & recording_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 711.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/index.mdx
new file mode 100644
index 0000000000..b7285fba71
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-recordings"
+title: "VideoRoomRecordings"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomRecordings"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoRoomRecordings`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VideoRoomRecordings
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 704.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/list-events.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/list-events.mdx
new file mode 100644
index 0000000000..66cbbb6330
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/list-events.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-recordings/list-events"
+title: "list_events"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomRecordings::list_events"
+ parent: "signalwire::rest::RestClient::VideoRoomRecordings"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_events`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_events(
+ const std::string & recording_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 717.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/list.mdx
new file mode 100644
index 0000000000..1347ab6c14
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-recordings/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomRecordings::list"
+ parent: "signalwire::rest::RestClient::VideoRoomRecordings"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 708.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/video-room-recordings.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/video-room-recordings.mdx
new file mode 100644
index 0000000000..cc485d6003
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-recordings/video-room-recordings.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-recordings/video-room-recordings"
+title: "VideoRoomRecordings"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomRecordings::VideoRoomRecordings"
+ parent: "signalwire::rest::RestClient::VideoRoomRecordings"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoRoomRecordings`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VideoRoomRecordings(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 707.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/get.mdx
new file mode 100644
index 0000000000..9f52d58d69
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-sessions/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomSessions::get"
+ parent: "signalwire::rest::RestClient::VideoRoomSessions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & session_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 687.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/index.mdx
new file mode 100644
index 0000000000..6cdc45aee7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-sessions"
+title: "VideoRoomSessions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomSessions"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoRoomSessions`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VideoRoomSessions
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 680.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-events.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-events.mdx
new file mode 100644
index 0000000000..193c5c3be0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-events.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-events"
+title: "list_events"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomSessions::list_events"
+ parent: "signalwire::rest::RestClient::VideoRoomSessions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_events`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_events(
+ const std::string & session_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 690.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-members.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-members.mdx
new file mode 100644
index 0000000000..5b88cd667d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-members.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-members"
+title: "list_members"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomSessions::list_members"
+ parent: "signalwire::rest::RestClient::VideoRoomSessions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_members`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_members(
+ const std::string & session_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 694.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-recordings.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-recordings.mdx
new file mode 100644
index 0000000000..b3f5ed9783
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-recordings.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-sessions/list-recordings"
+title: "list_recordings"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomSessions::list_recordings"
+ parent: "signalwire::rest::RestClient::VideoRoomSessions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_recordings`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_recordings(
+ const std::string & session_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 698.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list.mdx
new file mode 100644
index 0000000000..896c0db507
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/list.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-sessions/list"
+title: "list"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomSessions::list"
+ parent: "signalwire::rest::RestClient::VideoRoomSessions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list(const std::map< std::string, std::string > & params = {}) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 684.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/video-room-sessions.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/video-room-sessions.mdx
new file mode 100644
index 0000000000..7811a54cc0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-sessions/video-room-sessions.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-sessions/video-room-sessions"
+title: "VideoRoomSessions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomSessions::VideoRoomSessions"
+ parent: "signalwire::rest::RestClient::VideoRoomSessions"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoRoomSessions`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VideoRoomSessions(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 683.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/create.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/create.mdx
new file mode 100644
index 0000000000..751cc3a14a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/create.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-tokens/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomTokens::create"
+ parent: "signalwire::rest::RestClient::VideoRoomTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create(const json & data) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 677.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/index.mdx
new file mode 100644
index 0000000000..9a2fe9c4d3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/index.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-tokens"
+title: "VideoRoomTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomTokens"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoRoomTokens`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VideoRoomTokens
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 673.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/video-room-tokens.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/video-room-tokens.mdx
new file mode 100644
index 0000000000..398aa31d90
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-room-tokens/video-room-tokens.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-room-tokens/video-room-tokens"
+title: "VideoRoomTokens"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRoomTokens::VideoRoomTokens"
+ parent: "signalwire::rest::RestClient::VideoRoomTokens"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoRoomTokens`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VideoRoomTokens(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 676.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/create-stream.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/create-stream.mdx
new file mode 100644
index 0000000000..917eeeb230
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/create-stream.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-rooms/create-stream"
+title: "create_stream"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRooms::create_stream"
+ parent: "signalwire::rest::RestClient::VideoRooms"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `create_stream`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json create_stream(const std::string & room_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 668.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/index.mdx
new file mode 100644
index 0000000000..78b61a511f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-rooms"
+title: "VideoRooms"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRooms"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoRooms`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VideoRooms : signalwire::rest::CrudResource
+```
+
+## Inheritance
+
+**Extends:** [signalwire::rest::CrudResource](/reference/cpp/signalwire/rest/crud-resource)
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 658.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/list-streams.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/list-streams.mdx
new file mode 100644
index 0000000000..bab30193fb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/list-streams.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-rooms/list-streams"
+title: "list_streams"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRooms::list_streams"
+ parent: "signalwire::rest::RestClient::VideoRooms"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `list_streams`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json list_streams(
+ const std::string & room_id,
+ const std::map< std::string, std::string > & params = {}
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 664.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/update.mdx
new file mode 100644
index 0000000000..c1acf50656
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-rooms/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRooms::update"
+ parent: "signalwire::rest::RestClient::VideoRooms"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & room_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 661.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/video-rooms.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/video-rooms.mdx
new file mode 100644
index 0000000000..0e5baf554a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-rooms/video-rooms.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-rooms/video-rooms"
+title: "VideoRooms"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoRooms::VideoRooms"
+ parent: "signalwire::rest::RestClient::VideoRooms"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoRooms`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VideoRooms(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 659.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/get.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/get.mdx
new file mode 100644
index 0000000000..69db33d45e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/get.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-streams/get"
+title: "get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoStreams::get"
+ parent: "signalwire::rest::RestClient::VideoStreams"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `get`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json get(const std::string & stream_id) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 759.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/index.mdx
new file mode 100644
index 0000000000..eb5502d0dc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-streams"
+title: "VideoStreams"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoStreams"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoStreams`
+
+## Signature
+
+```cpp
+struct signalwire::rest::RestClient::VideoStreams
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 755.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/update.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/update.mdx
new file mode 100644
index 0000000000..d7fac73db1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/update.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-streams/update"
+title: "update"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoStreams::update"
+ parent: "signalwire::rest::RestClient::VideoStreams"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `update`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json update(const std::string & stream_id, const json & data) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 763.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/video-streams.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/video-streams.mdx
new file mode 100644
index 0000000000..04ff659780
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video-streams/video-streams.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video-streams/video-streams"
+title: "VideoStreams"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::VideoStreams::VideoStreams"
+ parent: "signalwire::rest::RestClient::VideoStreams"
+ module: "signalwire.rest.RestClient"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `VideoStreams`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void VideoStreams(const HttpClient & c)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 758.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video.mdx
new file mode 100644
index 0000000000..827454b283
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/video.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/video"
+title: "video"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::video"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `video`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+VideoNamespace & video()
+```
+
+## Returns
+
+`VideoNamespace &`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 1436.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/with-base-url.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/with-base-url.mdx
new file mode 100644
index 0000000000..58a5647dc4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/rest-client/with-base-url.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/rest/rest-client/with-base-url"
+title: "with_base_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::RestClient::with_base_url"
+ parent: "signalwire::rest::RestClient"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp"
+ visibility: "public"
+---
+# `with_base_url`
+
+Construct with an explicit pre-built base URL (http://... or https://...) instead of synthesizing one from the SignalWire space hostname. Used by audit harnesses pointing the client at loopback fixtures. The space-based constructor remains the production path.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+RestClient with_base_url(
+ const std::string & base_url,
+ const std::string & project_id,
+ const std::string & token
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`RestClient`
+
+## Source
+
+[`include/signalwire/rest/rest_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/rest_client.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/body.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/body.mdx
new file mode 100644
index 0000000000..cd64ac2527
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/body.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/signal-wire-rest-error/body"
+title: "body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::SignalWireRestError::body"
+ parent: "signalwire::rest::SignalWireRestError"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `body`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & body() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/index.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/index.mdx
new file mode 100644
index 0000000000..12c45585a7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/rest/signal-wire-rest-error"
+title: "SignalWireRestError"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::rest::SignalWireRestError"
+ parent: "signalwire::rest"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `SignalWireRestError`
+
+Error thrown on non-2xx REST API responses.
+
+## Signature
+
+```cpp
+class signalwire::rest::SignalWireRestError : std::runtime_error
+```
+
+## Inheritance
+
+**Extends:** `std::runtime_error`
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 17.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/signal-wire-rest-error.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/signal-wire-rest-error.mdx
new file mode 100644
index 0000000000..bd4ae6fb02
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/signal-wire-rest-error.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/rest/signal-wire-rest-error/signal-wire-rest-error"
+title: "SignalWireRestError"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::SignalWireRestError::SignalWireRestError"
+ parent: "signalwire::rest::SignalWireRestError"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `SignalWireRestError`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void SignalWireRestError(
+ int status,
+ const std::string & message,
+ const std::string & body = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 19.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/status.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/status.mdx
new file mode 100644
index 0000000000..3dd696699a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/signal-wire-rest-error/status.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/rest/signal-wire-rest-error/status"
+title: "status"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::rest::SignalWireRestError::status"
+ parent: "signalwire::rest::SignalWireRestError"
+ module: "signalwire.rest"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp"
+ visibility: "public"
+---
+# `status`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+int status() const
+```
+
+## Returns
+
+`int`
+
+## Source
+
+[`include/signalwire/rest/http_client.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/http_client.hpp)
+
+Line 21.
diff --git a/fern/products/sdk-reference/cpp/signalwire/rest/to-wire-string.mdx b/fern/products/sdk-reference/cpp/signalwire/rest/to-wire-string.mdx
new file mode 100644
index 0000000000..b487445f74
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/rest/to-wire-string.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/rest/to-wire-string"
+title: "to_wire_string"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::rest::to_wire_string"
+ parent: "signalwire::rest"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/phone_call_handler.hpp"
+ visibility: "public"
+---
+# `to_wire_string`
+
+Serialize a PhoneCallHandler to its wire string.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+std::string to_wire_string(PhoneCallHandler h)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/rest/phone_call_handler.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/rest/phone_call_handler.hpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/form-params.mdx b/fern/products/sdk-reference/cpp/signalwire/security/form-params.mdx
new file mode 100644
index 0000000000..66aa9c5270
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/form-params.mdx
@@ -0,0 +1,31 @@
+---
+slug: "/reference/cpp/signalwire/security/form-params"
+title: "FormParams"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::security::FormParams"
+ parent: "signalwire::security"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/webhook_validator.hpp"
+ visibility: "public"
+---
+# `FormParams`
+
+Pre-parsed form parameters for ValidateRequest: ordered list of (key, list-of-values) tuples. Repeated keys are represented as one entry whose values vector holds each occurrence in submission order.
+Used as one alternative in ParamsOrBody; the other alternative is the raw body string.
+
+## Signature
+
+```cpp
+typedef std::vector< std::pair< std::string, std::vector< std::string > > > FormParams
+```
+
+## Source
+
+[`include/signalwire/security/webhook_validator.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/webhook_validator.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/http-handler.mdx b/fern/products/sdk-reference/cpp/signalwire/security/http-handler.mdx
new file mode 100644
index 0000000000..49384651b9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/http-handler.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/security/http-handler"
+title: "HttpHandler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::security::HttpHandler"
+ parent: "signalwire::security"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/webhook_middleware.hpp"
+ visibility: "public"
+---
+# `HttpHandler`
+
+A cpp-httplib handler signature, lifted into a typedef so the adapter stays framework-agnostic at the call site (the only deps needed by this header are a forward declaration of httplib::Request/Response).
+
+## Signature
+
+```cpp
+typedef std::function< void(const httplib::Request &, httplib::Response &)> HttpHandler
+```
+
+## Source
+
+[`include/signalwire/security/webhook_middleware.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/webhook_middleware.hpp)
+
+Line 19.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/index.mdx b/fern/products/sdk-reference/cpp/signalwire/security/index.mdx
new file mode 100644
index 0000000000..35cf4427b9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/index.mdx
@@ -0,0 +1,71 @@
+---
+slug: "/reference/cpp/signalwire/security"
+title: "security"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::security"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp"
+---
+# `security`
+
+## Signature
+
+```cpp
+namespace signalwire::security
+```
+
+## Functions
+
+
+
+ Legacy @signalwire/compatibility-api drop-in entry point. If params\_or\_raw\_body holds a std::string, delegates to ValidateWebhookSignature (Scheme A then Scheme B with parsed form). If it holds a FormParams, treats it as pre-parsed form params and runs Scheme B directly (with URL port normalization).
+
+
+
+ Validate a SignalWire webhook signature against both schemes. Tries Scheme A (hex JSON) first; on miss falls back to Scheme B (base64 form) with URL port normalization, repeated-key handling, and optional ?bodySHA256= body-hash check for JSON bodies on the compat surface.
+
+
+
+ Wrap a downstream cpp-httplib POST handler with SignalWire webhook signature validation. Behavior:
+
+
+
+## Type Aliases
+
+
+
+ Pre-parsed form parameters for ValidateRequest: ordered list of (key, list-of-values) tuples. Repeated keys are represented as one entry whose values vector holds each occurrence in submission order. Used as one alternative in ParamsOrBody; the other alternative is the raw body string.
+
+
+
+ A cpp-httplib handler signature, lifted into a typedef so the adapter stays framework-agnostic at the call site (the only deps needed by this header are a forward declaration of httplib::Request/Response).
+
+
+
+ Drop-in shape for ValidateRequest mirroring @signalwire/compatibility-api's RestClient.validateRequest: either a raw body string (delegates to the combined validator) or a pre-parsed form-params list (runs Scheme B directly).
+
+
+
+## Classes
+
+
+
+ Manages HMAC-SHA256 based session tokens for secure SWAIG tool calls. Token format: base64(functionName:callID:expiryTimestamp) + "." + hex(hmac\_signature)
+
+
+
+ Optional knobs for WrapWithSignatureValidation. trust\_proxy controls whether X-Forwarded-Proto / X-Forwarded-Host headers are honored when reconstructing the public URL — opt-in because proxy headers are spoofable. proxy\_url\_base is consulted before the proxy headers and is meant for SWML\_PROXY\_URL\_BASE callers.
+
+
+
+## Source
+
+[`include/signalwire/security/session_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp)
+
+Line 9.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/params-or-body.mdx b/fern/products/sdk-reference/cpp/signalwire/security/params-or-body.mdx
new file mode 100644
index 0000000000..46a9401799
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/params-or-body.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/security/params-or-body"
+title: "ParamsOrBody"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::security::ParamsOrBody"
+ parent: "signalwire::security"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/webhook_validator.hpp"
+ visibility: "public"
+---
+# `ParamsOrBody`
+
+Drop-in shape for ValidateRequest mirroring @signalwire/compatibility-api's RestClient.validateRequest: either a raw body string (delegates to the combined validator) or a pre-parsed form-params list (runs Scheme B directly).
+
+## Signature
+
+```cpp
+typedef std::variant< std::string, FormParams > ParamsOrBody
+```
+
+## Source
+
+[`include/signalwire/security/webhook_validator.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/webhook_validator.hpp)
+
+Line 38.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/session-manager/create-token.mdx b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/create-token.mdx
new file mode 100644
index 0000000000..caa9bd58f5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/create-token.mdx
@@ -0,0 +1,68 @@
+---
+slug: "/reference/cpp/signalwire/security/session-manager/create-token"
+title: "create_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::security::SessionManager::create_token"
+ parent: "signalwire::security::SessionManager"
+ module: "signalwire.security"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp"
+ visibility: "public"
+---
+# `create_token`
+
+Create a signed token for a function call
+
+function\_name
+
+The SWAIG function name
+
+call\_id
+
+The call identifier
+
+expiry\_seconds
+
+Seconds until expiry (default 3600)
+
+The signed token string
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string create_token(
+ const std::string & function_name,
+ const std::string & call_id,
+ int expiry_seconds = 3600
+) const
+```
+
+## Parameters
+
+
+ The SWAIG function name
+
+
+
+ The call identifier
+
+
+
+ Seconds until expiry (default 3600)
+
+
+## Returns
+
+`std::string` — The signed token string
+
+## Source
+
+[`include/signalwire/security/session_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp)
+
+Line 27.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/session-manager/index.mdx b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/index.mdx
new file mode 100644
index 0000000000..cdb1f5a0f6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/index.mdx
@@ -0,0 +1,51 @@
+---
+slug: "/reference/cpp/signalwire/security/session-manager"
+title: "SessionManager"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::security::SessionManager"
+ parent: "signalwire::security"
+ module: "signalwire.security"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp"
+ visibility: "public"
+---
+# `SessionManager`
+
+Manages HMAC-SHA256 based session tokens for secure SWAIG tool calls.
+Token format: base64(functionName:callID:expiryTimestamp) + "." + hex(hmac\_signature)
+
+## Signature
+
+```cpp
+class signalwire::security::SessionManager
+```
+
+## Methods
+
+
+
+ Create a signed token for a function call
+
+
+
+ Construct with a random 32-byte secret.
+
+
+
+ Timing-safe comparison of two byte sequences.
+
+
+
+ Validate a token
+
+
+
+## Source
+
+[`include/signalwire/security/session_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/session-manager/session-manager.mdx b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/session-manager.mdx
new file mode 100644
index 0000000000..74856d137c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/session-manager.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/security/session-manager/session-manager"
+title: "SessionManager"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::security::SessionManager::SessionManager"
+ parent: "signalwire::security::SessionManager"
+ module: "signalwire.security"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp"
+ visibility: "public"
+---
+# `SessionManager`
+
+Construct with a random 32-byte secret.
+
+## Signature
+
+
+
+ ```cpp
+ void SessionManager()
+ ```
+
+
+
+ ```cpp
+ void SessionManager(const std::vector< uint8_t > & secret)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/security/session_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp)
+
+Line 17.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/session-manager/timing-safe-compare.mdx b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/timing-safe-compare.mdx
new file mode 100644
index 0000000000..6bdae6fdb8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/timing-safe-compare.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/security/session-manager/timing-safe-compare"
+title: "timing_safe_compare"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::security::SessionManager::timing_safe_compare"
+ parent: "signalwire::security::SessionManager"
+ module: "signalwire.security"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp"
+ visibility: "public"
+---
+# `timing_safe_compare`
+
+Timing-safe comparison of two byte sequences.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+bool timing_safe_compare(const std::string & a, const std::string & b)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/security/session_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp)
+
+Line 41.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/session-manager/validate-token.mdx b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/validate-token.mdx
new file mode 100644
index 0000000000..f822dbf283
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/session-manager/validate-token.mdx
@@ -0,0 +1,68 @@
+---
+slug: "/reference/cpp/signalwire/security/session-manager/validate-token"
+title: "validate_token"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::security::SessionManager::validate_token"
+ parent: "signalwire::security::SessionManager"
+ module: "signalwire.security"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp"
+ visibility: "public"
+---
+# `validate_token`
+
+Validate a token
+
+token
+
+The token to validate
+
+function\_name
+
+Expected function name
+
+call\_id
+
+Expected call ID
+
+true if token is valid and not expired
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool validate_token(
+ const std::string & token,
+ const std::string & function_name,
+ const std::string & call_id
+) const
+```
+
+## Parameters
+
+
+ The token to validate
+
+
+
+ Expected function name
+
+
+
+ Expected call ID
+
+
+## Returns
+
+`bool` — true if token is valid and not expired
+
+## Source
+
+[`include/signalwire/security/session_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/session_manager.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/validate-request.mdx b/fern/products/sdk-reference/cpp/signalwire/security/validate-request.mdx
new file mode 100644
index 0000000000..a9bf86bae8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/validate-request.mdx
@@ -0,0 +1,59 @@
+---
+slug: "/reference/cpp/signalwire/security/validate-request"
+title: "ValidateRequest"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::security::ValidateRequest"
+ parent: "signalwire::security"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/security/webhook_validator.cpp"
+ visibility: "public"
+---
+# `ValidateRequest`
+
+Legacy @signalwire/compatibility-api drop-in entry point.
+If params\_or\_raw\_body holds a std::string, delegates to ValidateWebhookSignature (Scheme A then Scheme B with parsed form).
+If it holds a FormParams, treats it as pre-parsed form params and runs Scheme B directly (with URL port normalization).
+
+std::invalid\_argument
+
+when signing\_key is empty.
+
+## Signature
+
+```cpp
+bool ValidateRequest(
+ std::string_view signing_key,
+ std::string_view signature,
+ std::string_view url,
+ const ParamsOrBody & params_or_raw_body
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Throws
+
+- `std::invalid_argument` — when signing\_key is empty.
+
+## Source
+
+[`src/security/webhook_validator.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/security/webhook_validator.cpp)
+
+Line 457.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/validate-webhook-signature.mdx b/fern/products/sdk-reference/cpp/signalwire/security/validate-webhook-signature.mdx
new file mode 100644
index 0000000000..7d499ed5ee
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/validate-webhook-signature.mdx
@@ -0,0 +1,84 @@
+---
+slug: "/reference/cpp/signalwire/security/validate-webhook-signature"
+title: "ValidateWebhookSignature"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::security::ValidateWebhookSignature"
+ parent: "signalwire::security"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/security/webhook_validator.cpp"
+ visibility: "public"
+---
+# `ValidateWebhookSignature`
+
+Validate a SignalWire webhook signature against both schemes.
+Tries Scheme A (hex JSON) first; on miss falls back to Scheme B (base64 form) with URL port normalization, repeated-key handling, and optional ?bodySHA256= body-hash check for JSON bodies on the compat surface.
+
+signing\_key
+
+The customer's Signing Key. UTF-8 string. MUST NOT be empty — empty throws std::invalid\_argument, that's a programming error not a validation failure.
+
+signature
+
+The X-SignalWire-Signature header value (or the legacy X-Twilio-Signature alias). Empty returns false without throwing.
+
+url
+
+Full URL SignalWire POSTed to (scheme, host, optional port, path, query) — must match what the platform saw, see the URL-reconstruction section of porting-sdk/webhooks.md.
+
+raw\_body
+
+Raw request body bytes as a UTF-8 string, BEFORE any JSON / form parsing. Re-serialized JSON breaks Scheme A.
+
+true if either scheme matches; false otherwise.
+
+std::invalid\_argument
+
+when signing\_key is empty.
+
+## Signature
+
+```cpp
+bool ValidateWebhookSignature(
+ std::string_view signing_key,
+ std::string_view signature,
+ std::string_view url,
+ std::string_view raw_body
+)
+```
+
+## Parameters
+
+
+ The customer's Signing Key. UTF-8 string. MUST NOT be empty — empty throws std::invalid\_argument, that's a programming error not a validation failure.
+
+
+
+ The X-SignalWire-Signature header value (or the legacy X-Twilio-Signature alias). Empty returns false without throwing.
+
+
+
+ Full URL SignalWire POSTed to (scheme, host, optional port, path, query) — must match what the platform saw, see the URL-reconstruction section of porting-sdk/webhooks.md.
+
+
+
+ Raw request body bytes as a UTF-8 string, BEFORE any JSON / form parsing. Re-serialized JSON breaks Scheme A.
+
+
+## Returns
+
+`bool` — true if either scheme matches; false otherwise.
+
+## Throws
+
+- `std::invalid_argument` — when signing\_key is empty.
+
+## Source
+
+[`src/security/webhook_validator.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/security/webhook_validator.cpp)
+
+Line 406.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/webhook-validator-options/index.mdx b/fern/products/sdk-reference/cpp/signalwire/security/webhook-validator-options/index.mdx
new file mode 100644
index 0000000000..c26f57be45
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/webhook-validator-options/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/security/webhook-validator-options"
+title: "WebhookValidatorOptions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::security::WebhookValidatorOptions"
+ parent: "signalwire::security"
+ module: "signalwire.security"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/webhook_middleware.hpp"
+ visibility: "public"
+---
+# `WebhookValidatorOptions`
+
+Optional knobs for WrapWithSignatureValidation. trust\_proxy controls whether X-Forwarded-Proto / X-Forwarded-Host headers are honored when reconstructing the public URL — opt-in because proxy headers are spoofable. proxy\_url\_base is consulted before the proxy headers and is meant for SWML\_PROXY\_URL\_BASE callers.
+
+## Signature
+
+```cpp
+struct signalwire::security::WebhookValidatorOptions
+```
+
+## Properties
+
+
+ Optional base URL (e.g. https://abcd.ngrok.io) joined with the request path + query when reconstructing the URL. Wins over proxy headers and request.host.
+
+
+
+ If true, honor X-Forwarded-Proto / X-Forwarded-Host when reconstructing the URL. Default false.
+
+
+## Source
+
+[`include/signalwire/security/webhook_middleware.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/security/webhook_middleware.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/security/wrap-with-signature-validation.mdx b/fern/products/sdk-reference/cpp/signalwire/security/wrap-with-signature-validation.mdx
new file mode 100644
index 0000000000..41b7b2448d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/security/wrap-with-signature-validation.mdx
@@ -0,0 +1,82 @@
+---
+slug: "/reference/cpp/signalwire/security/wrap-with-signature-validation"
+title: "WrapWithSignatureValidation"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::security::WrapWithSignatureValidation"
+ parent: "signalwire::security"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/security/webhook_middleware.cpp"
+ visibility: "public"
+---
+# `WrapWithSignatureValidation`
+
+Wrap a downstream cpp-httplib POST handler with SignalWire webhook signature validation.
+Behavior:
+
+Read req.body (cpp-httplib has already buffered it).
+Pull X-SignalWire-Signature (or the X-Twilio-Signature legacy alias) from headers.
+Reconstruct the public URL the platform POSTed to (proxy-aware).
+Call ValidateWebhookSignature.
+On invalid / missing signature: respond 403 Forbidden with no body detail. The downstream handler is NOT called. Per the porting-sdk spec, the validator MUST NOT log which branch failed or the expected signature.
+On valid: call downstream(req, res). The handler can read req.body directly — cpp-httplib buffers it for repeat reads.
+
+signing\_key
+
+Customer's Signing Key (SignalWire Dashboard → API Credentials). MUST NOT be empty — empty throws std::invalid\_argument at wrap time, that's a programming error not a runtime failure.
+
+downstream
+
+Handler to invoke on a valid signature.
+
+opts
+
+Optional URL reconstruction knobs.
+
+A handler suitable for server.Post(path, handler).
+
+std::invalid\_argument
+
+if signing\_key is empty.
+
+## Signature
+
+```cpp
+HttpHandler WrapWithSignatureValidation(
+ std::string_view signing_key,
+ HttpHandler downstream,
+ WebhookValidatorOptions opts = {}
+)
+```
+
+## Parameters
+
+
+ Customer's Signing Key (SignalWire Dashboard → API Credentials). MUST NOT be empty — empty throws std::invalid\_argument at wrap time, that's a programming error not a runtime failure.
+
+
+
+ Handler to invoke on a valid signature.
+
+
+
+ Optional URL reconstruction knobs.
+
+
+## Returns
+
+`HttpHandler` — A handler suitable for server.Post(path, handler).
+
+## Throws
+
+- `std::invalid_argument` — if signing\_key is empty.
+
+## Source
+
+[`src/security/webhook_middleware.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/security/webhook_middleware.cpp)
+
+Line 107.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/agent-server.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/agent-server.mdx
new file mode 100644
index 0000000000..367f54c8b4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/agent-server.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/agent-server"
+title: "AgentServer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::AgentServer"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `AgentServer`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+```cpp
+void AgentServer(const std::string & host = "0.0.0.0", int port = 3000)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/agent-server__2.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/agent-server__2.mdx
new file mode 100644
index 0000000000..2aab93cd17
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/agent-server__2.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/agent-server__2"
+title: "~AgentServer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::~AgentServer"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `~AgentServer`
+
+## Signature
+
+```cpp
+void ~AgentServer()
+```
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/enable-sip-routing.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/enable-sip-routing.mdx
new file mode 100644
index 0000000000..08f798033e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/enable-sip-routing.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/enable-sip-routing"
+title: "enable_sip_routing"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::enable_sip_routing"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `enable_sip_routing`
+
+Enable SIP routing.
+
+## Signature
+
+```cpp
+AgentServer & enable_sip_routing(bool enable = true)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentServer &`
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/index.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/index.mdx
new file mode 100644
index 0000000000..d92ef180cf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/index.mdx
@@ -0,0 +1,70 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server"
+title: "AgentServer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer"
+ parent: "signalwire::server"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `AgentServer`
+
+Multi-agent hosting server.
+
+## Signature
+
+```cpp
+class signalwire::server::AgentServer
+```
+
+## Methods
+
+
+
+
+
+
+
+ Enable SIP routing.
+
+
+
+ List registered routes.
+
+
+
+ Map a SIP username to an agent route.
+
+
+
+ Register an agent at a specific route.
+
+
+
+ Start the server (blocking).
+
+
+
+ Enable static file serving from a directory.
+
+
+
+ Stop the server.
+
+
+
+ Unregister an agent by route.
+
+
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/list-routes.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/list-routes.mdx
new file mode 100644
index 0000000000..d36afce672
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/list-routes.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/list-routes"
+title: "list_routes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::list_routes"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `list_routes`
+
+List registered routes.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< std::string > list_routes() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 34.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/map-sip-username.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/map-sip-username.mdx
new file mode 100644
index 0000000000..a4e733827a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/map-sip-username.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/map-sip-username"
+title: "map_sip_username"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::map_sip_username"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `map_sip_username`
+
+Map a SIP username to an agent route.
+
+## Signature
+
+```cpp
+AgentServer & map_sip_username(
+ const std::string & username,
+ const std::string & route
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentServer &`
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 40.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/register-agent.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/register-agent.mdx
new file mode 100644
index 0000000000..9333bd5439
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/register-agent.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/register-agent"
+title: "register_agent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::register_agent"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `register_agent`
+
+Register an agent at a specific route.
+
+## Signature
+
+```cpp
+AgentServer & register_agent(
+ std::shared_ptr< agent::AgentBase > agent,
+ const std::string & route
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`AgentServer &`
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/run.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/run.mdx
new file mode 100644
index 0000000000..504e5dcd33
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/run.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/run"
+title: "run"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::run"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `run`
+
+Start the server (blocking).
+
+## Signature
+
+```cpp
+void run()
+```
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 46.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/set-static-dir.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/set-static-dir.mdx
new file mode 100644
index 0000000000..4bfd360202
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/set-static-dir.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/set-static-dir"
+title: "set_static_dir"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::set_static_dir"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `set_static_dir`
+
+Enable static file serving from a directory.
+
+## Signature
+
+```cpp
+AgentServer & set_static_dir(const std::string & dir)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentServer &`
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 43.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/stop.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/stop.mdx
new file mode 100644
index 0000000000..3b5a65f327
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/stop.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/stop"
+title: "stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::stop"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `stop`
+
+Stop the server.
+
+## Signature
+
+```cpp
+void stop()
+```
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 49.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/agent-server/unregister-agent.mdx b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/unregister-agent.mdx
new file mode 100644
index 0000000000..658620cf63
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/agent-server/unregister-agent.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/server/agent-server/unregister-agent"
+title: "unregister_agent"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::server::AgentServer::unregister_agent"
+ parent: "signalwire::server::AgentServer"
+ module: "signalwire.server"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `unregister_agent`
+
+Unregister an agent by route.
+
+## Signature
+
+```cpp
+AgentServer & unregister_agent(const std::string & route)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`AgentServer &`
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/index.mdx b/fern/products/sdk-reference/cpp/signalwire/server/index.mdx
new file mode 100644
index 0000000000..eaa9d4d165
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/index.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/server"
+title: "server"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::server"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp"
+---
+# `server`
+
+## Signature
+
+```cpp
+namespace signalwire::server
+```
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+ Multi-agent hosting server.
+
+
+
+## Source
+
+[`include/signalwire/agent/agent_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/agent/agent_base.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/server/json.mdx b/fern/products/sdk-reference/cpp/signalwire/server/json.mdx
new file mode 100644
index 0000000000..9adb7daffd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/server/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/server/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::server::json"
+ parent: "signalwire::server"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/server/agent_server.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/server/agent_server.hpp)
+
+Line 19.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/get-datamap-functions.mdx
new file mode 100644
index 0000000000..e005007954
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkillR::get_datamap_functions"
+ parent: "signalwire::skills::ApiNinjasTriviaSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/index.mdx
new file mode 100644
index 0000000000..e4339f8214
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r"
+title: "ApiNinjasTriviaSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `ApiNinjasTriviaSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::ApiNinjasTriviaSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..f6126dda1c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkillR::register_tools"
+ parent: "signalwire::skills::ApiNinjasTriviaSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/setup.mdx
new file mode 100644
index 0000000000..46672da44b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkillR::setup"
+ parent: "signalwire::skills::ApiNinjasTriviaSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..de54ca452d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkillR::skill_description"
+ parent: "signalwire::skills::ApiNinjasTriviaSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..c94858e1aa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkillR::skill_name"
+ parent: "signalwire::skills::ApiNinjasTriviaSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..51d90b86a5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::ApiNinjasTriviaSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 383.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/get-datamap-functions.mdx
new file mode 100644
index 0000000000..d9b3d37dc2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkill::get_datamap_functions"
+ parent: "signalwire::skills::ApiNinjasTriviaSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/builtin/api_ninjas_trivia.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/index.mdx
new file mode 100644
index 0000000000..263b862c85
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill"
+title: "ApiNinjasTriviaSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp"
+ visibility: "public"
+---
+# `ApiNinjasTriviaSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::ApiNinjasTriviaSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/api_ninjas_trivia.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/register-tools.mdx
new file mode 100644
index 0000000000..06afa2f707
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkill::register_tools"
+ parent: "signalwire::skills::ApiNinjasTriviaSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/api_ninjas_trivia.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp)
+
+Line 23.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/setup.mdx
new file mode 100644
index 0000000000..63407bcfbc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkill::setup"
+ parent: "signalwire::skills::ApiNinjasTriviaSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/api_ninjas_trivia.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/skill-description.mdx
new file mode 100644
index 0000000000..ee31502b24
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkill::skill_description"
+ parent: "signalwire::skills::ApiNinjasTriviaSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/api_ninjas_trivia.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/skill-name.mdx
new file mode 100644
index 0000000000..448779d3fe
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkill::skill_name"
+ parent: "signalwire::skills::ApiNinjasTriviaSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/api_ninjas_trivia.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..7ecead14a3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/api-ninjas-trivia-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/api-ninjas-trivia-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ApiNinjasTriviaSkill::supports_multiple_instances"
+ parent: "signalwire::skills::ApiNinjasTriviaSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/api_ninjas_trivia.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/api_ninjas_trivia.cpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/index.mdx
new file mode 100644
index 0000000000..fb58636015
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill-r"
+title: "ClaudeSkillsSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `ClaudeSkillsSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::ClaudeSkillsSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 389.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..cd2e714f78
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkillR::register_tools"
+ parent: "signalwire::skills::ClaudeSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 389.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/setup.mdx
new file mode 100644
index 0000000000..0e8e5029b9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkillR::setup"
+ parent: "signalwire::skills::ClaudeSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 389.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..9e0ed56706
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkillR::skill_description"
+ parent: "signalwire::skills::ClaudeSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 389.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..54a86aa108
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkillR::skill_name"
+ parent: "signalwire::skills::ClaudeSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 389.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..c48c4f776b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::ClaudeSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 389.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/get-hints.mdx
new file mode 100644
index 0000000000..390231a311
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkill::get_hints"
+ parent: "signalwire::skills::ClaudeSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/builtin/claude_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/index.mdx
new file mode 100644
index 0000000000..6fff0d3471
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill"
+title: "ClaudeSkillsSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp"
+ visibility: "public"
+---
+# `ClaudeSkillsSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::ClaudeSkillsSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/claude_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp)
+
+Line 9.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/register-tools.mdx
new file mode 100644
index 0000000000..3cfe0437bf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkill::register_tools"
+ parent: "signalwire::skills::ClaudeSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/claude_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/setup.mdx
new file mode 100644
index 0000000000..7fd95528ff
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkill::setup"
+ parent: "signalwire::skills::ClaudeSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/claude_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/skill-description.mdx
new file mode 100644
index 0000000000..5ecc3bce30
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkill::skill_description"
+ parent: "signalwire::skills::ClaudeSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/claude_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/skill-name.mdx
new file mode 100644
index 0000000000..03949f25cd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkill::skill_name"
+ parent: "signalwire::skills::ClaudeSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/claude_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..e719fabc5a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/claude-skills-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/claude-skills-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ClaudeSkillsSkill::supports_multiple_instances"
+ parent: "signalwire::skills::ClaudeSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/claude_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/claude_skills.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/index.mdx
new file mode 100644
index 0000000000..e63af6de0a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill-r"
+title: "CustomSkillsSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `CustomSkillsSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::CustomSkillsSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 393.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..4a2efcaa3a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkillR::register_tools"
+ parent: "signalwire::skills::CustomSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 393.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/setup.mdx
new file mode 100644
index 0000000000..1a518cc6df
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkillR::setup"
+ parent: "signalwire::skills::CustomSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 393.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..0573711dc1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkillR::skill_description"
+ parent: "signalwire::skills::CustomSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 393.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..73f1331019
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkillR::skill_name"
+ parent: "signalwire::skills::CustomSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 393.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..10de90f8eb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::CustomSkillsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 393.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/index.mdx
new file mode 100644
index 0000000000..b671e3aab8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill"
+title: "CustomSkillsSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp"
+ visibility: "public"
+---
+# `CustomSkillsSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::CustomSkillsSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/custom_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp)
+
+Line 9.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/register-tools.mdx
new file mode 100644
index 0000000000..5dc696f43e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkill::register_tools"
+ parent: "signalwire::skills::CustomSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/custom_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp)
+
+Line 20.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/setup.mdx
new file mode 100644
index 0000000000..99c8850fa9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkill::setup"
+ parent: "signalwire::skills::CustomSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/custom_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/skill-description.mdx
new file mode 100644
index 0000000000..a10d234787
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkill::skill_description"
+ parent: "signalwire::skills::CustomSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/custom_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/skill-name.mdx
new file mode 100644
index 0000000000..42e689f452
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkill::skill_name"
+ parent: "signalwire::skills::CustomSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/custom_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..c8c2e23272
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/custom-skills-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/custom-skills-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::CustomSkillsSkill::supports_multiple_instances"
+ parent: "signalwire::skills::CustomSkillsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/custom_skills.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/custom_skills.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/get-datamap-functions.mdx
new file mode 100644
index 0000000000..1369ca5686
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill-r/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkillR::get_datamap_functions"
+ parent: "signalwire::skills::DatasphereServerlessSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 377.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/index.mdx
new file mode 100644
index 0000000000..fab96bdcf6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill-r"
+title: "DatasphereServerlessSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `DatasphereServerlessSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::DatasphereServerlessSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 377.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..3f07a45519
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkillR::register_tools"
+ parent: "signalwire::skills::DatasphereServerlessSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 377.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/setup.mdx
new file mode 100644
index 0000000000..0b1c928d0d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkillR::setup"
+ parent: "signalwire::skills::DatasphereServerlessSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 377.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..c720c8f4f7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkillR::skill_description"
+ parent: "signalwire::skills::DatasphereServerlessSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 377.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..cded50c55f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkillR::skill_name"
+ parent: "signalwire::skills::DatasphereServerlessSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 377.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..b1e5bead84
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::DatasphereServerlessSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 377.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-datamap-functions.mdx
new file mode 100644
index 0000000000..7f0d35a3f8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill::get_datamap_functions"
+ parent: "signalwire::skills::DatasphereServerlessSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-global-data.mdx
new file mode 100644
index 0000000000..679b984a6b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill::get_global_data"
+ parent: "signalwire::skills::DatasphereServerlessSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 58.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..86ae33335e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill::get_prompt_sections"
+ parent: "signalwire::skills::DatasphereServerlessSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 52.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/index.mdx
new file mode 100644
index 0000000000..13f38399bf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/index.mdx
@@ -0,0 +1,62 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill"
+title: "DatasphereServerlessSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `DatasphereServerlessSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::DatasphereServerlessSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/register-tools.mdx
new file mode 100644
index 0000000000..c1edc252cc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill::register_tools"
+ parent: "signalwire::skills::DatasphereServerlessSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 29.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/setup.mdx
new file mode 100644
index 0000000000..84f5e9c328
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill::setup"
+ parent: "signalwire::skills::DatasphereServerlessSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 19.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/skill-description.mdx
new file mode 100644
index 0000000000..98cdc45467
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill::skill_description"
+ parent: "signalwire::skills::DatasphereServerlessSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/skill-name.mdx
new file mode 100644
index 0000000000..3201c96bdb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill::skill_name"
+ parent: "signalwire::skills::DatasphereServerlessSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..c2306cd6fd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-serverless-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-serverless-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereServerlessSkill::supports_multiple_instances"
+ parent: "signalwire::skills::DatasphereServerlessSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/datasphere_serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere_serverless.cpp)
+
+Line 17.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/get-global-data.mdx
new file mode 100644
index 0000000000..2c2733a5b4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill-r/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkillR::get_global_data"
+ parent: "signalwire::skills::DatasphereSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 374.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/index.mdx
new file mode 100644
index 0000000000..e42c8bbf0d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill-r"
+title: "DatasphereSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `DatasphereSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::DatasphereSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 296.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..1c0cb21acc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkillR::register_tools"
+ parent: "signalwire::skills::DatasphereSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 316.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/setup.mdx
new file mode 100644
index 0000000000..edb96eb3f1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkillR::setup"
+ parent: "signalwire::skills::DatasphereSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 304.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..4ea22bf247
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkillR::skill_description"
+ parent: "signalwire::skills::DatasphereSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 302.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..32f1d12a3a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkillR::skill_name"
+ parent: "signalwire::skills::DatasphereSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 301.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..94ee00bdb7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::DatasphereSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 303.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/get-global-data.mdx
new file mode 100644
index 0000000000..f52945d50c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkill::get_global_data"
+ parent: "signalwire::skills::DatasphereSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/builtin/datasphere.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp)
+
+Line 106.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..8186be9cc7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkill::get_prompt_sections"
+ parent: "signalwire::skills::DatasphereSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/datasphere.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/index.mdx
new file mode 100644
index 0000000000..24ac5ac9fc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/index.mdx
@@ -0,0 +1,61 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill"
+title: "DatasphereSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp"
+ visibility: "public"
+---
+# `DatasphereSkill`
+
+SignalWire DataSphere RAG search skill — issues a real POST against the DataSphere /api/datasphere/documents/\{document\_id\}/search endpoint with the user query in the JSON body, parses the results\[] array, and returns a flattened text summary. Matches the Python DatasphereSkill upstream-call shape.
+DATASPHERE\_BASE\_URL env var overrides the upstream URL (used by audit\_skills\_dispatch.py); when unset, the real upstream is built from space\_name (https://\{space\}.signalwire.com).
+
+## Signature
+
+```cpp
+class signalwire::skills::DatasphereSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/datasphere.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/register-tools.mdx
new file mode 100644
index 0000000000..e4baa1bd0e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkill::register_tools"
+ parent: "signalwire::skills::DatasphereSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/datasphere.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/setup.mdx
new file mode 100644
index 0000000000..ddef9469b2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkill::setup"
+ parent: "signalwire::skills::DatasphereSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/datasphere.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp)
+
+Line 30.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/skill-description.mdx
new file mode 100644
index 0000000000..9918ad076f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkill::skill_description"
+ parent: "signalwire::skills::DatasphereSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/datasphere.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/skill-name.mdx
new file mode 100644
index 0000000000..397d3037ee
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkill::skill_name"
+ parent: "signalwire::skills::DatasphereSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/datasphere.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..a8f0c75909
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/datasphere-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/datasphere-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DatasphereSkill::supports_multiple_instances"
+ parent: "signalwire::skills::DatasphereSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/datasphere.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datasphere.cpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..d23a01990a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/date-time-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DateTimeSkill::get_prompt_sections"
+ parent: "signalwire::skills::DateTimeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/datetime.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp)
+
+Line 74.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/index.mdx
new file mode 100644
index 0000000000..9f4ab65d0a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/date-time-skill"
+title: "DateTimeSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DateTimeSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp"
+ visibility: "public"
+---
+# `DateTimeSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::DateTimeSkill : signalwire::skills::SkillBase, signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base), [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/datetime.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/register-tools.mdx
new file mode 100644
index 0000000000..7bf363613c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/date-time-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DateTimeSkill::register_tools"
+ parent: "signalwire::skills::DateTimeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/datetime.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/setup.mdx
new file mode 100644
index 0000000000..b43b2497e9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/date-time-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DateTimeSkill::setup"
+ parent: "signalwire::skills::DateTimeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/datetime.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp)
+
+Line 19.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/skill-description.mdx
new file mode 100644
index 0000000000..1d03139d4a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/date-time-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DateTimeSkill::skill_description"
+ parent: "signalwire::skills::DateTimeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/datetime.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/skill-name.mdx
new file mode 100644
index 0000000000..7ebeae4f00
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/date-time-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DateTimeSkill::skill_name"
+ parent: "signalwire::skills::DateTimeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/datetime.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..45c6f2acb9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/date-time-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/date-time-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::DateTimeSkill::supports_multiple_instances"
+ parent: "signalwire::skills::DateTimeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/datetime.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/datetime.cpp)
+
+Line 17.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/ensure-builtin-skills-registered.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/ensure-builtin-skills-registered.mdx
new file mode 100644
index 0000000000..e075b8c86b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/ensure-builtin-skills-registered.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/skills/ensure-builtin-skills-registered"
+title: "ensure_builtin_skills_registered"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::skills::ensure_builtin_skills_registered"
+ parent: "signalwire::skills"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `ensure_builtin_skills_registered`
+
+Ensure all built-in skills are registered. Called automatically but can be called explicitly to force linkage.
+
+## Signature
+
+```cpp
+void ensure_builtin_skills_registered()
+```
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 426.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/get-hints.mdx
new file mode 100644
index 0000000000..3f6f6cb24a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill-r/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkillR::get_hints"
+ parent: "signalwire::skills::GoogleMapsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 226.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/index.mdx
new file mode 100644
index 0000000000..eedd778cd9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill-r"
+title: "GoogleMapsSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `GoogleMapsSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::GoogleMapsSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 226.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..db0d20b558
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkillR::register_tools"
+ parent: "signalwire::skills::GoogleMapsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 226.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/setup.mdx
new file mode 100644
index 0000000000..188fdd2d5a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkillR::setup"
+ parent: "signalwire::skills::GoogleMapsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 226.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..17cfa2d309
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkillR::skill_description"
+ parent: "signalwire::skills::GoogleMapsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 226.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..f1fe080798
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkillR::skill_name"
+ parent: "signalwire::skills::GoogleMapsSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 226.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/get-hints.mdx
new file mode 100644
index 0000000000..ac9f316303
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkill::get_hints"
+ parent: "signalwire::skills::GoogleMapsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/builtin/google_maps.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp)
+
+Line 53.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..7b9724164c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkill::get_prompt_sections"
+ parent: "signalwire::skills::GoogleMapsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/google_maps.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp)
+
+Line 57.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/index.mdx
new file mode 100644
index 0000000000..820faa671d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/index.mdx
@@ -0,0 +1,56 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill"
+title: "GoogleMapsSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp"
+ visibility: "public"
+---
+# `GoogleMapsSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::GoogleMapsSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/google_maps.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp)
+
+Line 9.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/register-tools.mdx
new file mode 100644
index 0000000000..c185b2d3a8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkill::register_tools"
+ parent: "signalwire::skills::GoogleMapsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/google_maps.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/setup.mdx
new file mode 100644
index 0000000000..09b7928339
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkill::setup"
+ parent: "signalwire::skills::GoogleMapsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/google_maps.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/skill-description.mdx
new file mode 100644
index 0000000000..8647c7ddf5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkill::skill_description"
+ parent: "signalwire::skills::GoogleMapsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/google_maps.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/skill-name.mdx
new file mode 100644
index 0000000000..daef2051f5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/google-maps-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/google-maps-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::GoogleMapsSkill::skill_name"
+ parent: "signalwire::skills::GoogleMapsSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/google_maps.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/google_maps.cpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/http-get.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/http-get.mdx
new file mode 100644
index 0000000000..72d577b5a3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/http-get.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/skills/http-get"
+title: "http_get"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::skills::http_get"
+ parent: "signalwire::skills"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skills_http.cpp"
+ visibility: "public"
+---
+# `http_get`
+
+Issue a real HTTP GET. Implementation uses cpp-httplib so it works against any plain-HTTP host (including loopback fixtures used by the audit\_skills\_dispatch.py audit). Skills that need TLS to reach production upstreams set the appropriate base-URL env var (e.g. WEB\_SEARCH\_BASE\_URL) — production deployments point at TLS proxies or a dev-side rewriter; the SDK keeps its transport stack OpenSSL-3 independent until the wider port adopts it.
+
+## Signature
+
+```cpp
+SkillHttpResponse http_get(
+ const std::string & url,
+ const std::map< std::string, std::string > & headers = {},
+ int timeout_seconds = 10
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`SkillHttpResponse`
+
+## Source
+
+[`src/skills/skills_http.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skills_http.cpp)
+
+Line 53.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/http-post.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/http-post.mdx
new file mode 100644
index 0000000000..91d88262d5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/http-post.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/skills/http-post"
+title: "http_post"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::skills::http_post"
+ parent: "signalwire::skills"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skills_http.cpp"
+ visibility: "public"
+---
+# `http_post`
+
+Issue a real HTTP POST with body as the request body and content\_type for Content-Type. Same semantics as http\_get for status / error / body.
+
+## Signature
+
+```cpp
+SkillHttpResponse http_post(
+ const std::string & url,
+ const std::string & body,
+ const std::string & content_type = "application/json",
+ const std::map< std::string, std::string > & headers = {},
+ int timeout_seconds = 10
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`SkillHttpResponse`
+
+## Source
+
+[`src/skills/skills_http.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skills_http.cpp)
+
+Line 76.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/index.mdx
new file mode 100644
index 0000000000..82a3b5e7a3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/index.mdx
@@ -0,0 +1,155 @@
+---
+slug: "/reference/cpp/signalwire/skills"
+title: "skills"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::skills"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+---
+# `skills`
+
+## Signature
+
+```cpp
+namespace signalwire::skills
+```
+
+## Functions
+
+
+
+ Ensure all built-in skills are registered. Called automatically but can be called explicitly to force linkage.
+
+
+
+ Issue a real HTTP GET. Implementation uses cpp-httplib so it works against any plain-HTTP host (including loopback fixtures used by the audit\_skills\_dispatch.py audit). Skills that need TLS to reach production upstreams set the appropriate base-URL env var (e.g. WEB\_SEARCH\_BASE\_URL) — production deployments point at TLS proxies or a dev-side rewriter; the SDK keeps its transport stack OpenSSL-3 independent until the wider port adopts it.
+
+
+
+ Issue a real HTTP POST with body as the request body and content\_type for Content-Type. Same semantics as http\_get for status / error / body.
+
+
+
+## Type Aliases
+
+
+
+
+
+ Factory function type for creating skill instances.
+
+
+
+## Classes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SignalWire DataSphere RAG search skill — issues a real POST against the DataSphere /api/datasphere/documents/\{document\_id\}/search endpoint with the user query in the JSON body, parses the results\[] array, and returns a flattened text summary. Matches the Python DatasphereSkill upstream-call shape. DATASPHERE\_BASE\_URL env var overrides the upstream URL (used by audit\_skills\_dispatch.py); when unset, the real upstream is built from space\_name (https://\{space\}.signalwire.com).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abstract base class for all skills.
+
+
+
+ Result of a skill HTTP request. status is the HTTP status code (0 indicates a transport-level error — connection refused, DNS, etc.). body is the raw response body. error is non-empty when status is 0.
+
+
+
+ Manages skill lifecycle: creation, setup, registration with agents.
+
+
+
+ POM section for skill prompts.
+
+
+
+ Global registry of skill factories.
+
+
+
+ Spider scrape skill — issues a real GET against the URL the LLM passes in. Strips HTML tags from the response and returns the text payload. Matches Python SpiderSkill's scrape\_url behavior. SPIDER\_BASE\_URL env var overrides the host portion of the URL the caller passes in (used by audit\_skills\_dispatch.py to redirect scrape requests at a loopback fixture).
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Google Custom Search API skill — issues a real GET against Google's customsearch/v1 endpoint, parses the items\[] results, and returns a human-readable summary. Matches Python's WebSearchSkill behavior. Configuration: api\_key (or env GOOGLE\_SEARCH\_API\_KEY / GOOGLE\_API\_KEY) search\_engine\_id (or env GOOGLE\_SEARCH\_ENGINE\_ID / GOOGLE\_CSE\_ID) num\_results (default 3) tool\_name (default "web\_search") WEB\_SEARCH\_BASE\_URL env var overrides the upstream URL (used by audit\_skills\_dispatch.py to point the skill at a fixture)
+
+
+
+
+
+ Wikipedia search skill — issues a real GET against the Wikipedia API /w/api.php endpoint with action=query\&list=search, parses the query.search\[] results, and returns titles + snippets. Matches the Python WikipediaSearchSkill upstream call shape. WIKIPEDIA\_BASE\_URL env var overrides the API root (used by audit\_skills\_dispatch.py to point the skill at its loopback fixture).
+
+
+
+
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/get-instance-key.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/get-instance-key.mdx
new file mode 100644
index 0000000000..6e10e0a904
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/get-instance-key.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill-r/get-instance-key"
+title: "get_instance_key"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkillR::get_instance_key"
+ parent: "signalwire::skills::InfoGathererSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_instance_key`
+
+Get instance key for multi-instance skills.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string get_instance_key() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 387.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/index.mdx
new file mode 100644
index 0000000000..7b5263c6f2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill-r"
+title: "InfoGathererSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `InfoGathererSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::InfoGathererSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get instance key for multi-instance skills.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 387.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..a01e3a4097
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkillR::register_tools"
+ parent: "signalwire::skills::InfoGathererSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 387.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/setup.mdx
new file mode 100644
index 0000000000..8b1f701c11
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkillR::setup"
+ parent: "signalwire::skills::InfoGathererSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 387.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..74b44b44c7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkillR::skill_description"
+ parent: "signalwire::skills::InfoGathererSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 387.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..3ea345b229
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkillR::skill_name"
+ parent: "signalwire::skills::InfoGathererSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 387.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..549360f4fc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::InfoGathererSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 387.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-global-data.mdx
new file mode 100644
index 0000000000..c36d5ec095
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill::get_global_data"
+ parent: "signalwire::skills::InfoGathererSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 110.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-instance-key.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-instance-key.mdx
new file mode 100644
index 0000000000..81f4b093d2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-instance-key.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill/get-instance-key"
+title: "get_instance_key"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill::get_instance_key"
+ parent: "signalwire::skills::InfoGathererSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `get_instance_key`
+
+Get instance key for multi-instance skills.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string get_instance_key() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 131.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..38397648e9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill::get_prompt_sections"
+ parent: "signalwire::skills::InfoGathererSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 122.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/index.mdx
new file mode 100644
index 0000000000..79fd25fbde
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/index.mdx
@@ -0,0 +1,62 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill"
+title: "InfoGathererSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `InfoGathererSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::InfoGathererSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get instance key for multi-instance skills.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 9.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/register-tools.mdx
new file mode 100644
index 0000000000..58dcaa331d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill::register_tools"
+ parent: "signalwire::skills::InfoGathererSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/setup.mdx
new file mode 100644
index 0000000000..7a00bf70cc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill::setup"
+ parent: "signalwire::skills::InfoGathererSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 17.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/skill-description.mdx
new file mode 100644
index 0000000000..75002b2593
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill::skill_description"
+ parent: "signalwire::skills::InfoGathererSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/skill-name.mdx
new file mode 100644
index 0000000000..23375c6ada
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill::skill_name"
+ parent: "signalwire::skills::InfoGathererSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..8179ed20fa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/info-gatherer-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/info-gatherer-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::InfoGathererSkill::supports_multiple_instances"
+ parent: "signalwire::skills::InfoGathererSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/info_gatherer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/info_gatherer.cpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-datamap-functions.mdx
new file mode 100644
index 0000000000..c8e4dda55d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill-r/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkillR::get_datamap_functions"
+ parent: "signalwire::skills::JokeSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 72.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-global-data.mdx
new file mode 100644
index 0000000000..639578ab7a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill-r/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkillR::get_global_data"
+ parent: "signalwire::skills::JokeSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 74.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-prompt-sections.mdx
new file mode 100644
index 0000000000..71d8665f4b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill-r/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkillR::get_prompt_sections"
+ parent: "signalwire::skills::JokeSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 73.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/index.mdx
new file mode 100644
index 0000000000..a21cb396f0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/index.mdx
@@ -0,0 +1,60 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill-r"
+title: "JokeSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `JokeSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::JokeSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 65.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..97cb5ed51c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkillR::register_tools"
+ parent: "signalwire::skills::JokeSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 71.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/setup.mdx
new file mode 100644
index 0000000000..c53cc48c4f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkillR::setup"
+ parent: "signalwire::skills::JokeSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 70.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..87c5d4575a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkillR::skill_description"
+ parent: "signalwire::skills::JokeSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 69.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..93f4e687f3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkillR::skill_name"
+ parent: "signalwire::skills::JokeSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 68.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-datamap-functions.mdx
new file mode 100644
index 0000000000..d41747739a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkill::get_datamap_functions"
+ parent: "signalwire::skills::JokeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/builtin/joke.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-global-data.mdx
new file mode 100644
index 0000000000..b4bf7cb2c3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkill::get_global_data"
+ parent: "signalwire::skills::JokeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/builtin/joke.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp)
+
+Line 41.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..e414a6e61e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkill::get_prompt_sections"
+ parent: "signalwire::skills::JokeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/joke.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/index.mdx
new file mode 100644
index 0000000000..53827604c8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/index.mdx
@@ -0,0 +1,60 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill"
+title: "JokeSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp"
+ visibility: "public"
+---
+# `JokeSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::JokeSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/joke.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/register-tools.mdx
new file mode 100644
index 0000000000..6391279df2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkill::register_tools"
+ parent: "signalwire::skills::JokeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/joke.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/setup.mdx
new file mode 100644
index 0000000000..673a507bb6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkill::setup"
+ parent: "signalwire::skills::JokeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/joke.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/skill-description.mdx
new file mode 100644
index 0000000000..92c690cd7f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkill::skill_description"
+ parent: "signalwire::skills::JokeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/joke.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/skill-name.mdx
new file mode 100644
index 0000000000..ea0af1da6c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/joke-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/joke-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::JokeSkill::skill_name"
+ parent: "signalwire::skills::JokeSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/joke.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/joke.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/json.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/json.mdx
new file mode 100644
index 0000000000..2bdcaec157
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/skills/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::skills::json"
+ parent: "signalwire::skills"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/get-prompt-sections.mdx
new file mode 100644
index 0000000000..ce71cbf6d4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill-r/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkillR::get_prompt_sections"
+ parent: "signalwire::skills::MathSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 61.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/index.mdx
new file mode 100644
index 0000000000..49e933bae3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill-r"
+title: "MathSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `MathSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::MathSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 40.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..c065c147dd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkillR::register_tools"
+ parent: "signalwire::skills::MathSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 57.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/setup.mdx
new file mode 100644
index 0000000000..6440329b91
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkillR::setup"
+ parent: "signalwire::skills::MathSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 56.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..aa931a155e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkillR::skill_description"
+ parent: "signalwire::skills::MathSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 55.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..41475eede2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkillR::skill_name"
+ parent: "signalwire::skills::MathSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..0d3189ee52
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkill::get_prompt_sections"
+ parent: "signalwire::skills::MathSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/math.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp)
+
+Line 139.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/index.mdx
new file mode 100644
index 0000000000..d88c01e269
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill"
+title: "MathSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp"
+ visibility: "public"
+---
+# `MathSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::MathSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/math.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp)
+
+Line 100.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/register-tools.mdx
new file mode 100644
index 0000000000..17bda5f877
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkill::register_tools"
+ parent: "signalwire::skills::MathSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/math.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp)
+
+Line 108.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/setup.mdx
new file mode 100644
index 0000000000..aed3d788ef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkill::setup"
+ parent: "signalwire::skills::MathSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/math.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp)
+
+Line 106.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/skill-description.mdx
new file mode 100644
index 0000000000..104eb6443f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkill::skill_description"
+ parent: "signalwire::skills::MathSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/math.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp)
+
+Line 103.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/skill-name.mdx
new file mode 100644
index 0000000000..f4f2dc0058
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkill::skill_name"
+ parent: "signalwire::skills::MathSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/math.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..6f4a388d46
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/math-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/math-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::MathSkill::supports_multiple_instances"
+ parent: "signalwire::skills::MathSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/math.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/math.cpp)
+
+Line 104.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/get-hints.mdx
new file mode 100644
index 0000000000..b2a7654539
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill-r/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkillR::get_hints"
+ parent: "signalwire::skills::McpGatewaySkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 391.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/index.mdx
new file mode 100644
index 0000000000..1f1d275589
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill-r"
+title: "McpGatewaySkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `McpGatewaySkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::McpGatewaySkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 391.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..5314255cf3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkillR::register_tools"
+ parent: "signalwire::skills::McpGatewaySkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 391.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/setup.mdx
new file mode 100644
index 0000000000..0fe17c29f2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkillR::setup"
+ parent: "signalwire::skills::McpGatewaySkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 391.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..7538875fe9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkillR::skill_description"
+ parent: "signalwire::skills::McpGatewaySkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 391.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..e621032900
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkillR::skill_name"
+ parent: "signalwire::skills::McpGatewaySkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 391.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-global-data.mdx
new file mode 100644
index 0000000000..223754bd03
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkill::get_global_data"
+ parent: "signalwire::skills::McpGatewaySkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/builtin/mcp_gateway.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp)
+
+Line 55.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-hints.mdx
new file mode 100644
index 0000000000..38520f113b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkill::get_hints"
+ parent: "signalwire::skills::McpGatewaySkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/builtin/mcp_gateway.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp)
+
+Line 45.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..0db510745f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkill::get_prompt_sections"
+ parent: "signalwire::skills::McpGatewaySkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/mcp_gateway.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp)
+
+Line 69.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/index.mdx
new file mode 100644
index 0000000000..6ef0338ee1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/index.mdx
@@ -0,0 +1,60 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill"
+title: "McpGatewaySkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp"
+ visibility: "public"
+---
+# `McpGatewaySkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::McpGatewaySkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/mcp_gateway.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp)
+
+Line 9.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/register-tools.mdx
new file mode 100644
index 0000000000..52b4e8861d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkill::register_tools"
+ parent: "signalwire::skills::McpGatewaySkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/mcp_gateway.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp)
+
+Line 21.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/setup.mdx
new file mode 100644
index 0000000000..ecb6a0c3f0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkill::setup"
+ parent: "signalwire::skills::McpGatewaySkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/mcp_gateway.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/skill-description.mdx
new file mode 100644
index 0000000000..fdf5ee45a1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkill::skill_description"
+ parent: "signalwire::skills::McpGatewaySkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/mcp_gateway.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/skill-name.mdx
new file mode 100644
index 0000000000..fe3f462277
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/mcp-gateway-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/mcp-gateway-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::McpGatewaySkill::skill_name"
+ parent: "signalwire::skills::McpGatewaySkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/mcp_gateway.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/mcp_gateway.cpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/get-hints.mdx
new file mode 100644
index 0000000000..6a3a4f2e27
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill-r/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkillR::get_hints"
+ parent: "signalwire::skills::NativeVectorSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 385.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/index.mdx
new file mode 100644
index 0000000000..f3b1ba5edd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill-r"
+title: "NativeVectorSearchSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `NativeVectorSearchSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::NativeVectorSearchSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 385.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..12a66ad703
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkillR::register_tools"
+ parent: "signalwire::skills::NativeVectorSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 385.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/setup.mdx
new file mode 100644
index 0000000000..2c825fea43
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkillR::setup"
+ parent: "signalwire::skills::NativeVectorSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 385.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..b4fa5c919a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkillR::skill_description"
+ parent: "signalwire::skills::NativeVectorSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 385.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..fce208acdb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkillR::skill_name"
+ parent: "signalwire::skills::NativeVectorSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 385.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..c7aa93a595
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::NativeVectorSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 385.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/get-hints.mdx
new file mode 100644
index 0000000000..41103be0df
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkill::get_hints"
+ parent: "signalwire::skills::NativeVectorSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/builtin/native_vector_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp)
+
+Line 44.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/index.mdx
new file mode 100644
index 0000000000..727b2f6f46
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill"
+title: "NativeVectorSearchSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp"
+ visibility: "public"
+---
+# `NativeVectorSearchSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::NativeVectorSearchSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/native_vector_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp)
+
+Line 9.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/register-tools.mdx
new file mode 100644
index 0000000000..d21500c0bc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkill::register_tools"
+ parent: "signalwire::skills::NativeVectorSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/native_vector_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp)
+
+Line 27.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/setup.mdx
new file mode 100644
index 0000000000..a551f559c1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkill::setup"
+ parent: "signalwire::skills::NativeVectorSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/native_vector_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp)
+
+Line 17.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/skill-description.mdx
new file mode 100644
index 0000000000..f5fa6e3d48
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkill::skill_description"
+ parent: "signalwire::skills::NativeVectorSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/native_vector_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/skill-name.mdx
new file mode 100644
index 0000000000..79aae792e1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkill::skill_name"
+ parent: "signalwire::skills::NativeVectorSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/native_vector_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..22971e2544
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/native-vector-search-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/native-vector-search-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::NativeVectorSearchSkill::supports_multiple_instances"
+ parent: "signalwire::skills::NativeVectorSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/native_vector_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/native_vector_search.cpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/get-datamap-functions.mdx
new file mode 100644
index 0000000000..bcf2aa7311
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill-r/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkillR::get_datamap_functions"
+ parent: "signalwire::skills::PlayBackgroundFileSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 381.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/index.mdx
new file mode 100644
index 0000000000..159b44ccb8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill-r"
+title: "PlayBackgroundFileSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `PlayBackgroundFileSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::PlayBackgroundFileSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 381.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..8b9fcb0868
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkillR::register_tools"
+ parent: "signalwire::skills::PlayBackgroundFileSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 381.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/setup.mdx
new file mode 100644
index 0000000000..781a79cb33
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkillR::setup"
+ parent: "signalwire::skills::PlayBackgroundFileSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 381.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..b94e16393e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkillR::skill_description"
+ parent: "signalwire::skills::PlayBackgroundFileSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 381.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..6527f1b9b0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkillR::skill_name"
+ parent: "signalwire::skills::PlayBackgroundFileSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 381.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..2eac73f279
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::PlayBackgroundFileSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 381.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/get-datamap-functions.mdx
new file mode 100644
index 0000000000..b593d5b0a1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkill::get_datamap_functions"
+ parent: "signalwire::skills::PlayBackgroundFileSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/builtin/play_background_file.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/index.mdx
new file mode 100644
index 0000000000..1230d9ceed
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill"
+title: "PlayBackgroundFileSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp"
+ visibility: "public"
+---
+# `PlayBackgroundFileSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::PlayBackgroundFileSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/play_background_file.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/register-tools.mdx
new file mode 100644
index 0000000000..b9f76ff8f8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkill::register_tools"
+ parent: "signalwire::skills::PlayBackgroundFileSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/play_background_file.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/setup.mdx
new file mode 100644
index 0000000000..039103deb4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkill::setup"
+ parent: "signalwire::skills::PlayBackgroundFileSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/play_background_file.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/skill-description.mdx
new file mode 100644
index 0000000000..f3675ed7eb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkill::skill_description"
+ parent: "signalwire::skills::PlayBackgroundFileSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/play_background_file.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/skill-name.mdx
new file mode 100644
index 0000000000..381a985b83
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkill::skill_name"
+ parent: "signalwire::skills::PlayBackgroundFileSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/play_background_file.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..471d5b388f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/play-background-file-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/play-background-file-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::PlayBackgroundFileSkill::supports_multiple_instances"
+ parent: "signalwire::skills::PlayBackgroundFileSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/play_background_file.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/play_background_file.cpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/cleanup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/cleanup.mdx
new file mode 100644
index 0000000000..a43fd191e9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/cleanup.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/cleanup"
+title: "cleanup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::cleanup"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `cleanup`
+
+Cleanup resources.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+void cleanup()
+```
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 70.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/define-tool.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/define-tool.mdx
new file mode 100644
index 0000000000..828d44a39f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/define-tool.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/define-tool"
+title: "define_tool"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::define_tool"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `define_tool`
+
+Define a tool (convenience for register\_tools implementations).
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+swaig::ToolDefinition define_tool(
+ const std::string & name,
+ const std::string & description,
+ const json & parameters,
+ swaig::ToolHandler handler,
+ bool secure = false
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`swaig::ToolDefinition`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 77.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-datamap-functions.mdx
new file mode 100644
index 0000000000..a05bfb3e6d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::get_datamap_functions"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 61.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-global-data.mdx
new file mode 100644
index 0000000000..b149610b94
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::get_global_data"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 55.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-hints.mdx
new file mode 100644
index 0000000000..e58d1c2e52
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::get_hints"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 52.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-instance-key.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-instance-key.mdx
new file mode 100644
index 0000000000..221153db10
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-instance-key.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/get-instance-key"
+title: "get_instance_key"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::get_instance_key"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `get_instance_key`
+
+Get instance key for multi-instance skills.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string get_instance_key() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 67.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-param-or-env.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-param-or-env.mdx
new file mode 100644
index 0000000000..9d741fa1d1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-param-or-env.mdx
@@ -0,0 +1,51 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/get-param-or-env"
+title: "get_param_or_env"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::get_param_or_env"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `get_param_or_env`
+
+Get a string parameter with env var fallback.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+std::string get_param_or_env(
+ const json & params,
+ const std::string & key,
+ const std::string & env_var,
+ const std::string & default_val = ""
+) const
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-param.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-param.mdx
new file mode 100644
index 0000000000..37a5303940
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-param.mdx
@@ -0,0 +1,53 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/get-param"
+title: "get_param"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::get_param"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `get_param`
+
+Get a parameter value with a default.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+template
+T get_param(
+ const json & params,
+ const std::string & key,
+ const T & default_val
+) const
+```
+
+## Type Parameters
+
+
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`T`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 94.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-parameter-schema.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-parameter-schema.mdx
new file mode 100644
index 0000000000..f5fc067cee
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-parameter-schema.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/get-parameter-schema"
+title: "get_parameter_schema"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::get_parameter_schema"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `get_parameter_schema`
+
+Get parameter schema for GUI tools.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_parameter_schema() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 64.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-prompt-sections.mdx
new file mode 100644
index 0000000000..4c6b790a57
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::get_prompt_sections"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 58.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/index.mdx
new file mode 100644
index 0000000000..f01f78d211
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/index.mdx
@@ -0,0 +1,96 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base"
+title: "SkillBase"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `SkillBase`
+
+Abstract base class for all skills.
+
+## Signature
+
+```cpp
+class signalwire::skills::SkillBase
+```
+
+## Methods
+
+
+
+
+
+ Cleanup resources.
+
+
+
+ Define a tool (convenience for register\_tools implementations).
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Get instance key for multi-instance skills.
+
+
+
+ Get a parameter value with a default.
+
+
+
+ Get a string parameter with env var fallback.
+
+
+
+ Get parameter schema for GUI tools.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/register-tools.mdx
new file mode 100644
index 0000000000..eeeea295b0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::register_tools"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `virtual` `pure`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools() = 0
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 45.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/required-env-vars.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/required-env-vars.mdx
new file mode 100644
index 0000000000..cd32f68aa7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/required-env-vars.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/required-env-vars"
+title: "required_env_vars"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::required_env_vars"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `required_env_vars`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > required_env_vars() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 38.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/required-packages.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/required-packages.mdx
new file mode 100644
index 0000000000..8e274b0748
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/required-packages.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/required-packages"
+title: "required_packages"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::required_packages"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `required_packages`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > required_packages() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 39.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/setup.mdx
new file mode 100644
index 0000000000..ea5f291a75
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::setup"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `virtual` `pure`
+
+## Signature
+
+```cpp
+bool setup(const json & params) = 0
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-base.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-base.mdx
new file mode 100644
index 0000000000..1942d4ad5d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-base.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/skill-base"
+title: "~SkillBase"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::~SkillBase"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `~SkillBase`
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+void ~SkillBase()
+```
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-description.mdx
new file mode 100644
index 0000000000..70f9e06150
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::skill_description"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `virtual` `pure`
+
+## Signature
+
+```cpp
+std::string skill_description() const = 0
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-name.mdx
new file mode 100644
index 0000000000..59c9bddfa9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::skill_name"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `virtual` `pure`
+
+## Signature
+
+```cpp
+std::string skill_name() const = 0
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 34.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-version.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-version.mdx
new file mode 100644
index 0000000000..c78e3079f0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/skill-version.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/skill-version"
+title: "skill_version"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::skill_version"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `skill_version`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_version() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..0be8de13a7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-base/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-base/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillBase::supports_multiple_instances"
+ parent: "signalwire::skills::SkillBase"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-factory.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-factory.mdx
new file mode 100644
index 0000000000..ef928bc507
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-factory.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-factory"
+title: "SkillFactory"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillFactory"
+ parent: "signalwire::skills"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `SkillFactory`
+
+Factory function type for creating skill instances.
+
+## Signature
+
+```cpp
+typedef std::function< std::unique_ptr< SkillBase >()> SkillFactory
+```
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 118.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-http-response/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-http-response/index.mdx
new file mode 100644
index 0000000000..3392daecc7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-http-response/index.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-http-response"
+title: "SkillHttpResponse"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillHttpResponse"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skills_http.hpp"
+ visibility: "public"
+---
+# `SkillHttpResponse`
+
+Result of a skill HTTP request. status is the HTTP status code (0 indicates a transport-level error — connection refused, DNS, etc.). body is the raw response body. error is non-empty when status is 0.
+
+## Signature
+
+```cpp
+struct signalwire::skills::SkillHttpResponse
+```
+
+## Properties
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/skills/skills_http.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skills_http.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/cleanup-all.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/cleanup-all.mdx
new file mode 100644
index 0000000000..7a4bea2ee1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/cleanup-all.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-manager/cleanup-all"
+title: "cleanup_all"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillManager::cleanup_all"
+ parent: "signalwire::skills::SkillManager"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp"
+ visibility: "public"
+---
+# `cleanup_all`
+
+Cleanup all skills.
+
+## Signature
+
+```cpp
+void cleanup_all()
+```
+
+## Source
+
+[`include/signalwire/skills/skill_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp)
+
+Line 40.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/index.mdx
new file mode 100644
index 0000000000..ae2d510c33
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/index.mdx
@@ -0,0 +1,56 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-manager"
+title: "SkillManager"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillManager"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp"
+ visibility: "public"
+---
+# `SkillManager`
+
+Manages skill lifecycle: creation, setup, registration with agents.
+
+## Signature
+
+```cpp
+class signalwire::skills::SkillManager
+```
+
+## Methods
+
+
+
+ Cleanup all skills.
+
+
+
+ Check if a skill is loaded.
+
+
+
+ List loaded skills.
+
+
+
+ Load a skill by name with params and register it with the agent.
+
+
+
+
+
+ Unload a skill.
+
+
+
+## Source
+
+[`include/signalwire/skills/skill_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/is-loaded.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/is-loaded.mdx
new file mode 100644
index 0000000000..b2059b8e22
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/is-loaded.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-manager/is-loaded"
+title: "is_loaded"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillManager::is_loaded"
+ parent: "signalwire::skills::SkillManager"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp"
+ visibility: "public"
+---
+# `is_loaded`
+
+Check if a skill is loaded.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool is_loaded(const std::string & skill_name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/skills/skill_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp)
+
+Line 34.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/list-loaded.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/list-loaded.mdx
new file mode 100644
index 0000000000..f65f57bce5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/list-loaded.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-manager/list-loaded"
+title: "list_loaded"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillManager::list_loaded"
+ parent: "signalwire::skills::SkillManager"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp"
+ visibility: "public"
+---
+# `list_loaded`
+
+List loaded skills.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< std::string > list_loaded() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/skills/skill_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/load-skill.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/load-skill.mdx
new file mode 100644
index 0000000000..12f1340022
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/load-skill.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-manager/load-skill"
+title: "load_skill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillManager::load_skill"
+ parent: "signalwire::skills::SkillManager"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp"
+ visibility: "public"
+---
+# `load_skill`
+
+Load a skill by name with params and register it with the agent.
+
+## Signature
+
+```cpp
+bool load_skill(
+ const std::string & skill_name,
+ const json & params,
+ agent::AgentBase & agent
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/skills/skill_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp)
+
+Line 27.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/skill-manager.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/skill-manager.mdx
new file mode 100644
index 0000000000..f447eb40d2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/skill-manager.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-manager/skill-manager"
+title: "SkillManager"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillManager::SkillManager"
+ parent: "signalwire::skills::SkillManager"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp"
+ visibility: "public"
+---
+# `SkillManager`
+
+## Signature
+
+```cpp
+void SkillManager()
+```
+
+## Source
+
+[`include/signalwire/skills/skill_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/unload-skill.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/unload-skill.mdx
new file mode 100644
index 0000000000..9777bc67d9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-manager/unload-skill.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-manager/unload-skill"
+title: "unload_skill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillManager::unload_skill"
+ parent: "signalwire::skills::SkillManager"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp"
+ visibility: "public"
+---
+# `unload_skill`
+
+Unload a skill.
+
+## Signature
+
+```cpp
+void unload_skill(const std::string & skill_name)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/skills/skill_manager.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_manager.hpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-prompt-section/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-prompt-section/index.mdx
new file mode 100644
index 0000000000..0f4116a1ef
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-prompt-section/index.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-prompt-section"
+title: "SkillPromptSection"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillPromptSection"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp"
+ visibility: "public"
+---
+# `SkillPromptSection`
+
+POM section for skill prompts.
+
+## Signature
+
+```cpp
+struct signalwire::skills::SkillPromptSection
+```
+
+## Properties
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/skills/skill_base.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_base.hpp)
+
+Line 19.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/add-skill-directory.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/add-skill-directory.mdx
new file mode 100644
index 0000000000..4395929dc7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/add-skill-directory.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-registry/add-skill-directory"
+title: "add_skill_directory"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillRegistry::add_skill_directory"
+ parent: "signalwire::skills::SkillRegistry"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp"
+ visibility: "public"
+---
+# `add_skill_directory`
+
+Add a directory to search for skills.
+Mirrors Python's signalwire.skills.registry.SkillRegistry.add\_skill\_directory: validate that the path exists and is a directory, then append it (de-duplicated) to external\_paths\_. Throws std::invalid\_argument (the C++ analog of Python's ValueError) for invalid input — the path doesn't exist or isn't a directory.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void add_skill_directory(const std::string & path)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/skills/skill_registry.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp)
+
+Line 65.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/create.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/create.mdx
new file mode 100644
index 0000000000..60cf930094
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/create.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-registry/create"
+title: "create"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillRegistry::create"
+ parent: "signalwire::skills::SkillRegistry"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp"
+ visibility: "public"
+---
+# `create`
+
+Create a skill instance by name.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+std::unique_ptr< SkillBase > create(const std::string & name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::unique_ptr< SkillBase >`
+
+## Source
+
+[`include/signalwire/skills/skill_registry.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/external-paths.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/external-paths.mdx
new file mode 100644
index 0000000000..c8fef22c2c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/external-paths.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-registry/external-paths"
+title: "external_paths"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillRegistry::external_paths"
+ parent: "signalwire::skills::SkillRegistry"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp"
+ visibility: "public"
+---
+# `external_paths`
+
+Returns the registered external skill directories. Mirrors Python's SkillRegistry.\_external\_paths (private list, exposed here as a public accessor for parity-test inspection — C++ has no convention for protected attributes that tests can poke).
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+std::vector< std::string > external_paths() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/skills/skill_registry.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp)
+
+Line 84.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/has-skill.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/has-skill.mdx
new file mode 100644
index 0000000000..4daf98add8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/has-skill.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-registry/has-skill"
+title: "has_skill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillRegistry::has_skill"
+ parent: "signalwire::skills::SkillRegistry"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp"
+ visibility: "public"
+---
+# `has_skill`
+
+Check if a skill is registered.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool has_skill(const std::string & name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/skills/skill_registry.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/index.mdx
new file mode 100644
index 0000000000..4dbed98807
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/index.mdx
@@ -0,0 +1,60 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-registry"
+title: "SkillRegistry"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillRegistry"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp"
+ visibility: "public"
+---
+# `SkillRegistry`
+
+Global registry of skill factories.
+
+## Signature
+
+```cpp
+class signalwire::skills::SkillRegistry
+```
+
+## Methods
+
+
+
+ Add a directory to search for skills. Mirrors Python's signalwire.skills.registry.SkillRegistry.add\_skill\_directory: validate that the path exists and is a directory, then append it (de-duplicated) to external\_paths\_. Throws std::invalid\_argument (the C++ analog of Python's ValueError) for invalid input — the path doesn't exist or isn't a directory.
+
+
+
+ Create a skill instance by name.
+
+
+
+ Returns the registered external skill directories. Mirrors Python's SkillRegistry.\_external\_paths (private list, exposed here as a public accessor for parity-test inspection — C++ has no convention for protected attributes that tests can poke).
+
+
+
+ Check if a skill is registered.
+
+
+
+
+
+ List all registered skill names.
+
+
+
+ Register a skill factory.
+
+
+
+## Source
+
+[`include/signalwire/skills/skill_registry.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp)
+
+Line 18.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/instance.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/instance.mdx
new file mode 100644
index 0000000000..a38e7e9633
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/instance.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-registry/instance"
+title: "instance"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillRegistry::instance"
+ parent: "signalwire::skills::SkillRegistry"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp"
+ visibility: "public"
+---
+# `instance`
+
+**Modifiers:** `static` `inline`
+
+## Signature
+
+```cpp
+SkillRegistry & instance()
+```
+
+## Returns
+
+`SkillRegistry &`
+
+## Source
+
+[`include/signalwire/skills/skill_registry.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp)
+
+Line 20.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/list-skills.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/list-skills.mdx
new file mode 100644
index 0000000000..c2bdd237fc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/list-skills.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-registry/list-skills"
+title: "list_skills"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillRegistry::list_skills"
+ parent: "signalwire::skills::SkillRegistry"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp"
+ visibility: "public"
+---
+# `list_skills`
+
+List all registered skill names.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+std::vector< std::string > list_skills() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/skills/skill_registry.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/register-skill.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/register-skill.mdx
new file mode 100644
index 0000000000..d4f9b256ec
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/skill-registry/register-skill.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/skills/skill-registry/register-skill"
+title: "register_skill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SkillRegistry::register_skill"
+ parent: "signalwire::skills::SkillRegistry"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp"
+ visibility: "public"
+---
+# `register_skill`
+
+Register a skill factory.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void register_skill(const std::string & name, SkillFactory factory)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/skills/skill_registry.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/skills/skill_registry.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/get-hints.mdx
new file mode 100644
index 0000000000..9d351de639
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill-r/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkillR::get_hints"
+ parent: "signalwire::skills::SpiderSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 284.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/index.mdx
new file mode 100644
index 0000000000..19570b0594
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/index.mdx
@@ -0,0 +1,54 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill-r"
+title: "SpiderSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `SpiderSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::SpiderSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 232.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..611bffa99c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkillR::register_tools"
+ parent: "signalwire::skills::SpiderSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 254.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/setup.mdx
new file mode 100644
index 0000000000..3ec31780ca
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkillR::setup"
+ parent: "signalwire::skills::SpiderSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 253.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..35e20f1bd5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkillR::skill_description"
+ parent: "signalwire::skills::SpiderSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 251.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..5d82163c81
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkillR::skill_name"
+ parent: "signalwire::skills::SpiderSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 250.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..f4dd040835
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::SpiderSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 252.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/get-hints.mdx
new file mode 100644
index 0000000000..3c622d79f4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkill::get_hints"
+ parent: "signalwire::skills::SpiderSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/builtin/spider.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp)
+
+Line 153.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/index.mdx
new file mode 100644
index 0000000000..dc66878a5a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/index.mdx
@@ -0,0 +1,57 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill"
+title: "SpiderSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp"
+ visibility: "public"
+---
+# `SpiderSkill`
+
+Spider scrape skill — issues a real GET against the URL the LLM passes in. Strips HTML tags from the response and returns the text payload. Matches Python SpiderSkill's scrape\_url behavior.
+SPIDER\_BASE\_URL env var overrides the host portion of the URL the caller passes in (used by audit\_skills\_dispatch.py to redirect scrape requests at a loopback fixture).
+
+## Signature
+
+```cpp
+class signalwire::skills::SpiderSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/spider.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/register-tools.mdx
new file mode 100644
index 0000000000..7e4fe3b308
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkill::register_tools"
+ parent: "signalwire::skills::SpiderSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/spider.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp)
+
+Line 62.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/setup.mdx
new file mode 100644
index 0000000000..8d172afa06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkill::setup"
+ parent: "signalwire::skills::SpiderSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/spider.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp)
+
+Line 60.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/skill-description.mdx
new file mode 100644
index 0000000000..3352b85346
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkill::skill_description"
+ parent: "signalwire::skills::SpiderSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/spider.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp)
+
+Line 57.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/skill-name.mdx
new file mode 100644
index 0000000000..4b5031699e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkill::skill_name"
+ parent: "signalwire::skills::SpiderSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/spider.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp)
+
+Line 56.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..287405d05d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/spider-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/spider-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SpiderSkill::supports_multiple_instances"
+ parent: "signalwire::skills::SpiderSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/spider.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/spider.cpp)
+
+Line 58.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/get-datamap-functions.mdx
new file mode 100644
index 0000000000..1cbc9b1158
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill-r/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkillR::get_datamap_functions"
+ parent: "signalwire::skills::SwmlTransferSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/get-hints.mdx
new file mode 100644
index 0000000000..2d3efc70cb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill-r/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkillR::get_hints"
+ parent: "signalwire::skills::SwmlTransferSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/index.mdx
new file mode 100644
index 0000000000..ee42dfd2f6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/index.mdx
@@ -0,0 +1,58 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill-r"
+title: "SwmlTransferSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `SwmlTransferSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::SwmlTransferSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..7860be90fa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkillR::register_tools"
+ parent: "signalwire::skills::SwmlTransferSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/setup.mdx
new file mode 100644
index 0000000000..57c4c04f2c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkillR::setup"
+ parent: "signalwire::skills::SwmlTransferSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..d3d9cba6e2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkillR::skill_description"
+ parent: "signalwire::skills::SwmlTransferSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..b5967c2bba
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkillR::skill_name"
+ parent: "signalwire::skills::SwmlTransferSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..14d7b1d2b0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::SwmlTransferSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 379.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-datamap-functions.mdx
new file mode 100644
index 0000000000..9fa69e471e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill::get_datamap_functions"
+ parent: "signalwire::skills::SwmlTransferSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-hints.mdx
new file mode 100644
index 0000000000..16df96878d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill/get-hints"
+title: "get_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill::get_hints"
+ parent: "signalwire::skills::SwmlTransferSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `get_hints`
+
+Get speech recognition hints to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_hints() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 62.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..21d2deda2e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill::get_prompt_sections"
+ parent: "signalwire::skills::SwmlTransferSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 81.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/index.mdx
new file mode 100644
index 0000000000..0edf713e55
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/index.mdx
@@ -0,0 +1,62 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill"
+title: "SwmlTransferSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `SwmlTransferSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::SwmlTransferSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Get speech recognition hints to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/register-tools.mdx
new file mode 100644
index 0000000000..de42ffba51
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill::register_tools"
+ parent: "signalwire::skills::SwmlTransferSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/setup.mdx
new file mode 100644
index 0000000000..9210d7bd1b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill::setup"
+ parent: "signalwire::skills::SwmlTransferSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 18.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/skill-description.mdx
new file mode 100644
index 0000000000..ca9482cdd1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill::skill_description"
+ parent: "signalwire::skills::SwmlTransferSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/skill-name.mdx
new file mode 100644
index 0000000000..db63a008c9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill::skill_name"
+ parent: "signalwire::skills::SwmlTransferSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..c45b3e4775
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/swml-transfer-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/swml-transfer-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::SwmlTransferSkill::supports_multiple_instances"
+ parent: "signalwire::skills::SwmlTransferSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/swml_transfer.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/swml_transfer.cpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/get-datamap-functions.mdx
new file mode 100644
index 0000000000..ab92d7e03d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill-r/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkillR::get_datamap_functions"
+ parent: "signalwire::skills::WeatherApiSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 85.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/index.mdx
new file mode 100644
index 0000000000..73fde7811f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill-r"
+title: "WeatherApiSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `WeatherApiSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::WeatherApiSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 78.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..eb789cc128
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkillR::register_tools"
+ parent: "signalwire::skills::WeatherApiSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 84.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/setup.mdx
new file mode 100644
index 0000000000..625aa7624a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkillR::setup"
+ parent: "signalwire::skills::WeatherApiSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 83.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..dfe7662f25
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkillR::skill_description"
+ parent: "signalwire::skills::WeatherApiSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 82.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..a711e8e8f6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkillR::skill_name"
+ parent: "signalwire::skills::WeatherApiSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 81.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/get-datamap-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/get-datamap-functions.mdx
new file mode 100644
index 0000000000..e129d2c426
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/get-datamap-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill/get-datamap-functions"
+title: "get_datamap_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkill::get_datamap_functions"
+ parent: "signalwire::skills::WeatherApiSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp"
+ visibility: "public"
+---
+# `get_datamap_functions`
+
+Get SWAIG DataMap functions (for DataMap-based skills).
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< json > get_datamap_functions() const
+```
+
+## Returns
+
+`std::vector< json >`
+
+## Source
+
+[`src/skills/builtin/weather_api.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/index.mdx
new file mode 100644
index 0000000000..de52694d8d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill"
+title: "WeatherApiSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp"
+ visibility: "public"
+---
+# `WeatherApiSkill`
+
+## Signature
+
+```cpp
+class signalwire::skills::WeatherApiSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get SWAIG DataMap functions (for DataMap-based skills).
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/weather_api.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/register-tools.mdx
new file mode 100644
index 0000000000..ddbc2621a6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkill::register_tools"
+ parent: "signalwire::skills::WeatherApiSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/weather_api.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp)
+
+Line 23.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/setup.mdx
new file mode 100644
index 0000000000..f749543ff2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkill::setup"
+ parent: "signalwire::skills::WeatherApiSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/weather_api.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/skill-description.mdx
new file mode 100644
index 0000000000..65c1be8b72
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkill::skill_description"
+ parent: "signalwire::skills::WeatherApiSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/weather_api.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/skill-name.mdx
new file mode 100644
index 0000000000..e6628f5a13
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/weather-api-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/weather-api-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WeatherApiSkill::skill_name"
+ parent: "signalwire::skills::WeatherApiSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/weather_api.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/weather_api.cpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/get-global-data.mdx
new file mode 100644
index 0000000000..8216c96006
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR::get_global_data"
+ parent: "signalwire::skills::WebSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 163.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/get-prompt-sections.mdx
new file mode 100644
index 0000000000..973d0f71b4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR::get_prompt_sections"
+ parent: "signalwire::skills::WebSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 162.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/index.mdx
new file mode 100644
index 0000000000..11927fdeb2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/index.mdx
@@ -0,0 +1,60 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r"
+title: "WebSearchSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `WebSearchSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::WebSearchSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 95.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..0196a49e92
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR::register_tools"
+ parent: "signalwire::skills::WebSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 117.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/setup.mdx
new file mode 100644
index 0000000000..91ed768ba1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR::setup"
+ parent: "signalwire::skills::WebSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 105.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..cf6acbcb1d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR::skill_description"
+ parent: "signalwire::skills::WebSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..9c1396a3b3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR::skill_name"
+ parent: "signalwire::skills::WebSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 101.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-version.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-version.mdx
new file mode 100644
index 0000000000..00bad99e58
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/skill-version.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r/skill-version"
+title: "skill_version"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR::skill_version"
+ parent: "signalwire::skills::WebSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_version`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_version() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 103.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..9821b2df06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill-r/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill-r/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkillR::supports_multiple_instances"
+ parent: "signalwire::skills::WebSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 104.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/get-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/get-global-data.mdx
new file mode 100644
index 0000000000..9b90a09fe4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/get-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill/get-global-data"
+title: "get_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill::get_global_data"
+ parent: "signalwire::skills::WebSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `get_global_data`
+
+Get global data to merge into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+json get_global_data() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 133.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..f340376746
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill::get_prompt_sections"
+ parent: "signalwire::skills::WebSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 126.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/index.mdx
new file mode 100644
index 0000000000..d1fdd6e45a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/index.mdx
@@ -0,0 +1,68 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill"
+title: "WebSearchSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `WebSearchSkill`
+
+Google Custom Search API skill — issues a real GET against Google's customsearch/v1 endpoint, parses the items\[] results, and returns a human-readable summary. Matches Python's WebSearchSkill behavior.
+Configuration:
+api\_key (or env GOOGLE\_SEARCH\_API\_KEY / GOOGLE\_API\_KEY)
+search\_engine\_id (or env GOOGLE\_SEARCH\_ENGINE\_ID / GOOGLE\_CSE\_ID)
+num\_results (default 3)
+tool\_name (default "web\_search")
+WEB\_SEARCH\_BASE\_URL env var overrides the upstream URL (used by audit\_skills\_dispatch.py to point the skill at a fixture)
+
+## Signature
+
+```cpp
+class signalwire::skills::WebSearchSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get global data to merge into agent.
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/register-tools.mdx
new file mode 100644
index 0000000000..f11be92282
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill::register_tools"
+ parent: "signalwire::skills::WebSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/setup.mdx
new file mode 100644
index 0000000000..50b1be1ecf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill::setup"
+ parent: "signalwire::skills::WebSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 31.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-description.mdx
new file mode 100644
index 0000000000..2f64ba5fc4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill::skill_description"
+ parent: "signalwire::skills::WebSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 27.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-name.mdx
new file mode 100644
index 0000000000..b8997ea91d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill::skill_name"
+ parent: "signalwire::skills::WebSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-version.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-version.mdx
new file mode 100644
index 0000000000..fb1ac024d9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/skill-version.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill/skill-version"
+title: "skill_version"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill::skill_version"
+ parent: "signalwire::skills::WebSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `skill_version`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_version() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/supports-multiple-instances.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/supports-multiple-instances.mdx
new file mode 100644
index 0000000000..c34872dd0a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/web-search-skill/supports-multiple-instances.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/web-search-skill/supports-multiple-instances"
+title: "supports_multiple_instances"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WebSearchSkill::supports_multiple_instances"
+ parent: "signalwire::skills::WebSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp"
+ visibility: "public"
+---
+# `supports_multiple_instances`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+bool supports_multiple_instances() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/web_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/web_search.cpp)
+
+Line 29.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/get-prompt-sections.mdx
new file mode 100644
index 0000000000..9914c39d0a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill-r/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkillR::get_prompt_sections"
+ parent: "signalwire::skills::WikipediaSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 221.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/index.mdx
new file mode 100644
index 0000000000..777bec7976
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/index.mdx
@@ -0,0 +1,52 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill-r"
+title: "WikipediaSearchSkillR"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkillR"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `WikipediaSearchSkillR`
+
+## Signature
+
+```cpp
+class signalwire::skills::WikipediaSearchSkillR : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 169.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/register-tools.mdx
new file mode 100644
index 0000000000..706deb4b24
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill-r/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkillR::register_tools"
+ parent: "signalwire::skills::WikipediaSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 181.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/setup.mdx
new file mode 100644
index 0000000000..8cce766d88
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill-r/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkillR::setup"
+ parent: "signalwire::skills::WikipediaSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 175.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/skill-description.mdx
new file mode 100644
index 0000000000..004221dd2f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill-r/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkillR::skill_description"
+ parent: "signalwire::skills::WikipediaSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 174.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/skill-name.mdx
new file mode 100644
index 0000000000..a798663f33
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill-r/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill-r/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkillR::skill_name"
+ parent: "signalwire::skills::WikipediaSearchSkillR"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/skill_registry.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/skill_registry.cpp)
+
+Line 173.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/get-prompt-sections.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/get-prompt-sections.mdx
new file mode 100644
index 0000000000..87e9c5c251
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill/get-prompt-sections"
+title: "get_prompt_sections"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkill::get_prompt_sections"
+ parent: "signalwire::skills::WikipediaSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp"
+ visibility: "public"
+---
+# `get_prompt_sections`
+
+Get prompt sections to inject into agent.
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< SkillPromptSection > get_prompt_sections() const
+```
+
+## Returns
+
+`std::vector< SkillPromptSection >`
+
+## Source
+
+[`src/skills/builtin/wikipedia_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/index.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/index.mdx
new file mode 100644
index 0000000000..08c9f356a7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/index.mdx
@@ -0,0 +1,55 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill"
+title: "WikipediaSearchSkill"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkill"
+ parent: "signalwire::skills"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp"
+ visibility: "public"
+---
+# `WikipediaSearchSkill`
+
+Wikipedia search skill — issues a real GET against the Wikipedia API /w/api.php endpoint with action=query\&list=search, parses the query.search\[] results, and returns titles + snippets. Matches the Python WikipediaSearchSkill upstream call shape.
+WIKIPEDIA\_BASE\_URL env var overrides the API root (used by audit\_skills\_dispatch.py to point the skill at its loopback fixture).
+
+## Signature
+
+```cpp
+class signalwire::skills::WikipediaSearchSkill : signalwire::skills::SkillBase
+```
+
+## Inheritance
+
+**Extends:** [signalwire::skills::SkillBase](/reference/cpp/signalwire/skills/skill-base)
+
+## Methods
+
+
+
+ Get prompt sections to inject into agent.
+
+
+
+ Register tools with the agent. Returns tool definitions.
+
+
+
+ Initialize the skill with given params. Return true on success.
+
+
+
+
+
+
+
+## Source
+
+[`src/skills/builtin/wikipedia_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp)
+
+Line 20.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/register-tools.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/register-tools.mdx
new file mode 100644
index 0000000000..f2fcad29b8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/register-tools.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill/register-tools"
+title: "register_tools"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkill::register_tools"
+ parent: "signalwire::skills::WikipediaSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp"
+ visibility: "public"
+---
+# `register_tools`
+
+Register tools with the agent. Returns tool definitions.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+std::vector< swaig::ToolDefinition > register_tools()
+```
+
+## Returns
+
+`std::vector< swaig::ToolDefinition >`
+
+## Source
+
+[`src/skills/builtin/wikipedia_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/setup.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/setup.mdx
new file mode 100644
index 0000000000..4c5f4c2ca2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/setup.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill/setup"
+title: "setup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkill::setup"
+ parent: "signalwire::skills::WikipediaSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp"
+ visibility: "public"
+---
+# `setup`
+
+Initialize the skill with given params. Return true on success.
+
+**Modifiers:** `inline` `virtual`
+
+## Signature
+
+```cpp
+bool setup(const json & params)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/skills/builtin/wikipedia_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp)
+
+Line 27.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/skill-description.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/skill-description.mdx
new file mode 100644
index 0000000000..4231f9a516
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/skill-description.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill/skill-description"
+title: "skill_description"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkill::skill_description"
+ parent: "signalwire::skills::WikipediaSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp"
+ visibility: "public"
+---
+# `skill_description`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_description() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/wikipedia_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp)
+
+Line 23.
diff --git a/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/skill-name.mdx b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/skill-name.mdx
new file mode 100644
index 0000000000..465b05af78
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/skills/wikipedia-search-skill/skill-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/skills/wikipedia-search-skill/skill-name"
+title: "skill_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::skills::WikipediaSearchSkill::skill_name"
+ parent: "signalwire::skills::WikipediaSearchSkill"
+ module: "signalwire.skills"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp"
+ visibility: "public"
+---
+# `skill_name`
+
+**Modifiers:** `const` `inline` `virtual`
+
+## Signature
+
+```cpp
+std::string skill_name() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`src/skills/builtin/wikipedia_search.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/skills/builtin/wikipedia_search.cpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-action.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-action.mdx
new file mode 100644
index 0000000000..4670bdadf1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-action.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/add-action"
+title: "add_action"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::add_action"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `add_action`
+
+## Signature
+
+```cpp
+FunctionResult & add_action(const std::string & name, const json & data)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 25.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-actions.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-actions.mdx
new file mode 100644
index 0000000000..f3c0e4b846
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-actions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/add-actions"
+title: "add_actions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::add_actions"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `add_actions`
+
+## Signature
+
+```cpp
+FunctionResult & add_actions(const std::vector< json > & actions)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 26.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-dynamic-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-dynamic-hints.mdx
new file mode 100644
index 0000000000..c087b152f5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/add-dynamic-hints.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/add-dynamic-hints"
+title: "add_dynamic_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::add_dynamic_hints"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `add_dynamic_hints`
+
+## Signature
+
+```cpp
+FunctionResult & add_dynamic_hints(const json & hints)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 84.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/clear-dynamic-hints.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/clear-dynamic-hints.mdx
new file mode 100644
index 0000000000..7ffaae3248
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/clear-dynamic-hints.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/clear-dynamic-hints"
+title: "clear_dynamic_hints"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::clear_dynamic_hints"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `clear_dynamic_hints`
+
+## Signature
+
+```cpp
+FunctionResult & clear_dynamic_hints()
+```
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 85.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/connect.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/connect.mdx
new file mode 100644
index 0000000000..334d8582f2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/connect.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/connect"
+title: "connect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::connect"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `connect`
+
+## Signature
+
+```cpp
+FunctionResult & connect(
+ const std::string & destination,
+ bool final = true,
+ const std::string & from_addr = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-action.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-action.mdx
new file mode 100644
index 0000000000..962d482105
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-action.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/create-payment-action"
+title: "create_payment_action"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::create_payment_action"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `create_payment_action`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+json create_payment_action(
+ const std::string & action_type,
+ const std::string & phrase
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 157.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-parameter.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-parameter.mdx
new file mode 100644
index 0000000000..2db49e6e1c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-parameter.mdx
@@ -0,0 +1,43 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/create-payment-parameter"
+title: "create_payment_parameter"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::create_payment_parameter"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `create_payment_parameter`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+json create_payment_parameter(
+ const std::string & name,
+ const std::string & value
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 159.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-prompt.mdx
new file mode 100644
index 0000000000..aef8befd7d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/create-payment-prompt.mdx
@@ -0,0 +1,49 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/create-payment-prompt"
+title: "create_payment_prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::create_payment_prompt"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `create_payment_prompt`
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+json create_payment_prompt(
+ const std::string & for_situation,
+ const std::vector< json > & actions,
+ const std::string & card_type = "",
+ const std::string & error_type = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 153.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/enable-extensive-data.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/enable-extensive-data.mdx
new file mode 100644
index 0000000000..0345e9dbb5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/enable-extensive-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/enable-extensive-data"
+title: "enable_extensive_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::enable_extensive_data"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `enable_extensive_data`
+
+## Signature
+
+```cpp
+FunctionResult & enable_extensive_data(bool enabled = true)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 90.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/enable-functions-on-timeout.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/enable-functions-on-timeout.mdx
new file mode 100644
index 0000000000..9e8748616a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/enable-functions-on-timeout.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/enable-functions-on-timeout"
+title: "enable_functions_on_timeout"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::enable_functions_on_timeout"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `enable_functions_on_timeout`
+
+## Signature
+
+```cpp
+FunctionResult & enable_functions_on_timeout(bool enabled = true)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 89.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/execute-rpc.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/execute-rpc.mdx
new file mode 100644
index 0000000000..d5f5402e8f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/execute-rpc.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/execute-rpc"
+title: "execute_rpc"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::execute_rpc"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `execute_rpc`
+
+## Signature
+
+```cpp
+FunctionResult & execute_rpc(
+ const std::string & method,
+ const json & params = json::object(),
+ const std::string & call_id = "",
+ const std::string & node_id = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 139.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/execute-swml.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/execute-swml.mdx
new file mode 100644
index 0000000000..1a0d0eb3e8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/execute-swml.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/execute-swml"
+title: "execute_swml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::execute_swml"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `execute_swml`
+
+## Signature
+
+```cpp
+FunctionResult & execute_swml(const json & swml_content, bool transfer = false)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 98.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/function-result.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/function-result.mdx
new file mode 100644
index 0000000000..a1a0abea95
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/function-result.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/function-result"
+title: "FunctionResult"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::FunctionResult"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `FunctionResult`
+
+**Modifiers:** `explicit`
+
+## Signature
+
+```cpp
+void FunctionResult(
+ const std::string & response = "",
+ bool post_process = false
+)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 17.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/hangup.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/hangup.mdx
new file mode 100644
index 0000000000..a087bed49d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/hangup.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/hangup"
+title: "hangup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::hangup"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `hangup`
+
+## Signature
+
+```cpp
+FunctionResult & hangup()
+```
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/hold.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/hold.mdx
new file mode 100644
index 0000000000..b472536f72
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/hold.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/hold"
+title: "hold"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::hold"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `hold`
+
+## Signature
+
+```cpp
+FunctionResult & hold(int timeout = 300)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 37.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/index.mdx
new file mode 100644
index 0000000000..6f4c49db08
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/index.mdx
@@ -0,0 +1,136 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result"
+title: "FunctionResult"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult"
+ parent: "signalwire::swaig"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `FunctionResult`
+
+Builder for SWAIG function results with 40+ action methods. Every method returns \*this for chaining.
+
+## Signature
+
+```cpp
+class signalwire::swaig::FunctionResult
+```
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/join-conference.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/join-conference.mdx
new file mode 100644
index 0000000000..5af78ea59e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/join-conference.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/join-conference"
+title: "join_conference"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::join_conference"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `join_conference`
+
+## Signature
+
+```cpp
+FunctionResult & join_conference(
+ const std::string & name,
+ bool muted = false,
+ const std::string & beep = "true"
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/join-room.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/join-room.mdx
new file mode 100644
index 0000000000..edcf511f8e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/join-room.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/join-room"
+title: "join_room"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::join_room"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `join_room`
+
+## Signature
+
+```cpp
+FunctionResult & join_room(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 101.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/pay.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/pay.mdx
new file mode 100644
index 0000000000..6732892fc3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/pay.mdx
@@ -0,0 +1,92 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/pay"
+title: "pay"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::pay"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `pay`
+
+## Signature
+
+```cpp
+FunctionResult & pay(
+ const std::string & payment_connector_url,
+ const std::string & input_method = "dtmf",
+ const std::string & status_url = "",
+ const std::string & payment_method = "credit-card",
+ int timeout = 5,
+ int max_attempts = 1,
+ bool security_code = true,
+ const std::string & postal_code = "true",
+ int min_postal_code_length = 0,
+ const std::string & token_type = "reusable",
+ const std::string & charge_amount = "",
+ const std::string & currency = "usd",
+ const std::string & language = "en-US",
+ const std::string & voice = "woman",
+ const std::string & description = "",
+ const std::string & valid_card_types = "visa mastercard amex",
+ const std::vector< json > & parameters = {},
+ const std::vector< json > & prompts = {},
+ const std::string & ai_response = "The payment status is ${pay_result}, do not mention anything else about collecting payment if successful."
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 114.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/play-background-file.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/play-background-file.mdx
new file mode 100644
index 0000000000..5cbcb30743
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/play-background-file.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/play-background-file"
+title: "play_background_file"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::play_background_file"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `play_background_file`
+
+## Signature
+
+```cpp
+FunctionResult & play_background_file(
+ const std::string & filename,
+ bool wait = false
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 65.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/record-call.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/record-call.mdx
new file mode 100644
index 0000000000..b352fe1e6a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/record-call.mdx
@@ -0,0 +1,68 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/record-call"
+title: "record_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::record_call"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `record_call`
+
+## Signature
+
+```cpp
+FunctionResult & record_call(
+ const std::string & control_id = "",
+ bool stereo = false,
+ const std::string & format = "wav",
+ const std::string & direction = "both",
+ const std::string & terminators = "",
+ bool beep = false,
+ double input_sensitivity = 44.0,
+ std::optional< double > initial_timeout = std::nullopt,
+ std::optional< double > end_silence_timeout = std::nullopt,
+ std::optional< double > max_length = std::nullopt,
+ const std::string & status_url = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 67.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/remove-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/remove-global-data.mdx
new file mode 100644
index 0000000000..864726b8e3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/remove-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/remove-global-data"
+title: "remove_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::remove_global_data"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `remove_global_data`
+
+## Signature
+
+```cpp
+FunctionResult & remove_global_data(const json & keys)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/remove-metadata.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/remove-metadata.mdx
new file mode 100644
index 0000000000..865cb195a3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/remove-metadata.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/remove-metadata"
+title: "remove_metadata"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::remove_metadata"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `remove_metadata`
+
+## Signature
+
+```cpp
+FunctionResult & remove_metadata(const json & keys)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 50.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/replace-in-history.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/replace-in-history.mdx
new file mode 100644
index 0000000000..ad4e9d8e78
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/replace-in-history.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/replace-in-history"
+title: "replace_in_history"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::replace_in_history"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `replace_in_history`
+
+## Signature
+
+```cpp
+FunctionResult & replace_in_history(const json & text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 58.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-ai-message.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-ai-message.mdx
new file mode 100644
index 0000000000..4cbcfd8e9b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-ai-message.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/rpc-ai-message"
+title: "rpc_ai_message"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::rpc_ai_message"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `rpc_ai_message`
+
+## Signature
+
+```cpp
+FunctionResult & rpc_ai_message(
+ const std::string & call_id,
+ const std::string & message_text,
+ const std::string & role = "system"
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 145.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-ai-unhold.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-ai-unhold.mdx
new file mode 100644
index 0000000000..1fa1c2e20b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-ai-unhold.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/rpc-ai-unhold"
+title: "rpc_ai_unhold"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::rpc_ai_unhold"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `rpc_ai_unhold`
+
+## Signature
+
+```cpp
+FunctionResult & rpc_ai_unhold(const std::string & call_id)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 147.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-dial.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-dial.mdx
new file mode 100644
index 0000000000..8c2d068604
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/rpc-dial.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/rpc-dial"
+title: "rpc_dial"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::rpc_dial"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `rpc_dial`
+
+## Signature
+
+```cpp
+FunctionResult & rpc_dial(
+ const std::string & to_number,
+ const std::string & from_number,
+ const std::string & dest_swml,
+ const std::string & device_type = "phone"
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 142.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/say.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/say.mdx
new file mode 100644
index 0000000000..d358633ebe
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/say.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/say"
+title: "say"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::say"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `say`
+
+## Signature
+
+```cpp
+FunctionResult & say(const std::string & text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 64.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/send-sms.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/send-sms.mdx
new file mode 100644
index 0000000000..77e035ec51
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/send-sms.mdx
@@ -0,0 +1,53 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/send-sms"
+title: "send_sms"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::send_sms"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `send_sms`
+
+## Signature
+
+```cpp
+FunctionResult & send_sms(
+ const std::string & to,
+ const std::string & from,
+ const std::string & body = "",
+ const std::vector< std::string > & media = {},
+ const std::vector< std::string > & tags = {},
+ const std::string & region = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 109.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-end-of-speech-timeout.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-end-of-speech-timeout.mdx
new file mode 100644
index 0000000000..79e8c6a809
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-end-of-speech-timeout.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/set-end-of-speech-timeout"
+title: "set_end_of_speech_timeout"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::set_end_of_speech_timeout"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `set_end_of_speech_timeout`
+
+## Signature
+
+```cpp
+FunctionResult & set_end_of_speech_timeout(int milliseconds)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 86.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-metadata.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-metadata.mdx
new file mode 100644
index 0000000000..cffabbb154
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-metadata.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/set-metadata"
+title: "set_metadata"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::set_metadata"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `set_metadata`
+
+## Signature
+
+```cpp
+FunctionResult & set_metadata(const json & data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 49.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-post-process.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-post-process.mdx
new file mode 100644
index 0000000000..dc781315fa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-post-process.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/set-post-process"
+title: "set_post_process"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::set_post_process"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `set_post_process`
+
+## Signature
+
+```cpp
+FunctionResult & set_post_process(bool pp)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-response.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-response.mdx
new file mode 100644
index 0000000000..30be885127
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-response.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/set-response"
+title: "set_response"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::set_response"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `set_response`
+
+## Signature
+
+```cpp
+FunctionResult & set_response(const std::string & response)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 23.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-speech-event-timeout.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-speech-event-timeout.mdx
new file mode 100644
index 0000000000..11ec314f9f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/set-speech-event-timeout.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/set-speech-event-timeout"
+title: "set_speech_event_timeout"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::set_speech_event_timeout"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `set_speech_event_timeout`
+
+## Signature
+
+```cpp
+FunctionResult & set_speech_event_timeout(int milliseconds)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 87.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/simulate-user-input.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/simulate-user-input.mdx
new file mode 100644
index 0000000000..a7140b59dd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/simulate-user-input.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/simulate-user-input"
+title: "simulate_user_input"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::simulate_user_input"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `simulate_user_input`
+
+## Signature
+
+```cpp
+FunctionResult & simulate_user_input(const std::string & text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 92.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/sip-refer.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/sip-refer.mdx
new file mode 100644
index 0000000000..e1d98a57b0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/sip-refer.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/sip-refer"
+title: "sip_refer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::sip_refer"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `sip_refer`
+
+## Signature
+
+```cpp
+FunctionResult & sip_refer(const std::string & to_uri)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-background-file.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-background-file.mdx
new file mode 100644
index 0000000000..6878118a79
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-background-file.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/stop-background-file"
+title: "stop_background_file"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::stop_background_file"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `stop_background_file`
+
+## Signature
+
+```cpp
+FunctionResult & stop_background_file()
+```
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 66.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-record-call.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-record-call.mdx
new file mode 100644
index 0000000000..e58ca35984
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-record-call.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/stop-record-call"
+title: "stop_record_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::stop_record_call"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `stop_record_call`
+
+## Signature
+
+```cpp
+FunctionResult & stop_record_call(const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 78.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-tap.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-tap.mdx
new file mode 100644
index 0000000000..2b0a57bf7e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop-tap.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/stop-tap"
+title: "stop_tap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::stop_tap"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `stop_tap`
+
+## Signature
+
+```cpp
+FunctionResult & stop_tap(const std::string & control_id = "")
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 108.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop.mdx
new file mode 100644
index 0000000000..77bd529bbe
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/stop.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/stop"
+title: "stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::stop"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `stop`
+
+## Signature
+
+```cpp
+FunctionResult & stop()
+```
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 41.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/switch-context.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/switch-context.mdx
new file mode 100644
index 0000000000..a4d291f0c4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/switch-context.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/switch-context"
+title: "switch_context"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::switch_context"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `switch_context`
+
+## Signature
+
+```cpp
+FunctionResult & switch_context(
+ const std::string & system_prompt = "",
+ const std::string & user_prompt = "",
+ bool consolidate = false,
+ bool full_reset = false
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-change-context.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-change-context.mdx
new file mode 100644
index 0000000000..cd4e604e6e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-change-context.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/swml-change-context"
+title: "swml_change_context"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::swml_change_context"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `swml_change_context`
+
+## Signature
+
+```cpp
+FunctionResult & swml_change_context(const std::string & context_name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 53.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-change-step.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-change-step.mdx
new file mode 100644
index 0000000000..768bd0259c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-change-step.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/swml-change-step"
+title: "swml_change_step"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::swml_change_step"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `swml_change_step`
+
+## Signature
+
+```cpp
+FunctionResult & swml_change_step(const std::string & step_name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 52.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-transfer.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-transfer.mdx
new file mode 100644
index 0000000000..ac0ce25098
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-transfer.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/swml-transfer"
+title: "swml_transfer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::swml_transfer"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `swml_transfer`
+
+## Signature
+
+```cpp
+FunctionResult & swml_transfer(
+ const std::string & dest,
+ const std::string & ai_response,
+ bool final = true
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 34.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-user-event.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-user-event.mdx
new file mode 100644
index 0000000000..0ed4b7929d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/swml-user-event.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/swml-user-event"
+title: "swml_user_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::swml_user_event"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `swml_user_event`
+
+## Signature
+
+```cpp
+FunctionResult & swml_user_event(const json & event_data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 51.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/tap.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/tap.mdx
new file mode 100644
index 0000000000..29080eab91
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/tap.mdx
@@ -0,0 +1,53 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/tap"
+title: "tap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::tap"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `tap`
+
+## Signature
+
+```cpp
+FunctionResult & tap(
+ const std::string & uri,
+ const std::string & control_id = "",
+ const std::string & direction = "both",
+ const std::string & codec = "PCMU",
+ int rtp_ptime = 20,
+ const std::string & status_url = ""
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 103.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/to-json.mdx
new file mode 100644
index 0000000000..dbea4e39b1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/to-json.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::to_json"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 166.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/to-string.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/to-string.mdx
new file mode 100644
index 0000000000..e603ac132c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/to-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/to-string"
+title: "to_string"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::to_string"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `to_string`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string to_string(int indent = -1) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 167.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/toggle-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/toggle-functions.mdx
new file mode 100644
index 0000000000..1c1994902a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/toggle-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/toggle-functions"
+title: "toggle_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::toggle_functions"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `toggle_functions`
+
+## Signature
+
+```cpp
+FunctionResult & toggle_functions(const json & function_toggles)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 88.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/update-global-data.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/update-global-data.mdx
new file mode 100644
index 0000000000..fa8366dd02
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/update-global-data.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/update-global-data"
+title: "update_global_data"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::update_global_data"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `update_global_data`
+
+## Signature
+
+```cpp
+FunctionResult & update_global_data(const json & data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 47.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/update-settings.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/update-settings.mdx
new file mode 100644
index 0000000000..80ef27a2e2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/update-settings.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/update-settings"
+title: "update_settings"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::update_settings"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `update_settings`
+
+## Signature
+
+```cpp
+FunctionResult & update_settings(const json & settings)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 91.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/wait-for-user.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/wait-for-user.mdx
new file mode 100644
index 0000000000..a199bc603b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/function-result/wait-for-user.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/swaig/function-result/wait-for-user"
+title: "wait_for_user"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::FunctionResult::wait_for_user"
+ parent: "signalwire::swaig::FunctionResult"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `wait_for_user`
+
+## Signature
+
+```cpp
+FunctionResult & wait_for_user(
+ std::optional< bool > enabled = std::nullopt,
+ std::optional< int > timeout = std::nullopt,
+ bool answer_first = false
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`FunctionResult &`
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 38.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/index.mdx
new file mode 100644
index 0000000000..84f54288f0
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/index.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/swaig"
+title: "swaig"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::swaig"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+---
+# `swaig`
+
+## Signature
+
+```cpp
+namespace signalwire::swaig
+```
+
+## Type Aliases
+
+
+
+
+
+
+
+## Classes
+
+
+
+ Builder for SWAIG function results with 40+ action methods. Every method returns \*this for chaining.
+
+
+
+ Definition of a SWAIG tool (function).
+
+
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 9.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/json.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/json.mdx
new file mode 100644
index 0000000000..cc8b853a5c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/swaig/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::json"
+ parent: "signalwire::swaig"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/swaig/function_result.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/function_result.hpp)
+
+Line 11.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/tool-definition/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/tool-definition/index.mdx
new file mode 100644
index 0000000000..18183c92bf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/tool-definition/index.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/swaig/tool-definition"
+title: "ToolDefinition"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::ToolDefinition"
+ parent: "signalwire::swaig"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/tool_definition.hpp"
+ visibility: "public"
+---
+# `ToolDefinition`
+
+Definition of a SWAIG tool (function).
+
+## Signature
+
+```cpp
+struct signalwire::swaig::ToolDefinition
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+ Render to the SWAIG function JSON format (for inclusion in SWML).
+
+
+
+## Source
+
+[`include/signalwire/swaig/tool_definition.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/tool_definition.hpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/tool-definition/to-swaig-json.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/tool-definition/to-swaig-json.mdx
new file mode 100644
index 0000000000..00387e4f31
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/tool-definition/to-swaig-json.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swaig/tool-definition/to-swaig-json"
+title: "to_swaig_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::ToolDefinition::to_swaig_json"
+ parent: "signalwire::swaig::ToolDefinition"
+ module: "signalwire.swaig"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/tool_definition.hpp"
+ visibility: "public"
+---
+# `to_swaig_json`
+
+Render to the SWAIG function JSON format (for inclusion in SWML).
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json to_swaig_json(const std::string & web_hook_url = "") const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swaig/tool_definition.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/tool_definition.hpp)
+
+Line 23.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swaig/tool-handler.mdx b/fern/products/sdk-reference/cpp/signalwire/swaig/tool-handler.mdx
new file mode 100644
index 0000000000..f778eb672f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swaig/tool-handler.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/swaig/tool-handler"
+title: "ToolHandler"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::swaig::ToolHandler"
+ parent: "signalwire::swaig"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/tool_definition.hpp"
+ visibility: "public"
+---
+# `ToolHandler`
+
+## Signature
+
+```cpp
+typedef std::function< FunctionResult(const json &args, const json &raw_data)> ToolHandler
+```
+
+## Source
+
+[`include/signalwire/swaig/tool_definition.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swaig/tool_definition.hpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/add-verb-to-section.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/add-verb-to-section.mdx
new file mode 100644
index 0000000000..decfe6654f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/add-verb-to-section.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/add-verb-to-section"
+title: "add_verb_to_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::add_verb_to_section"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `add_verb_to_section`
+
+Add a verb to a specific section.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+Document & add_verb_to_section(
+ const std::string & section_name,
+ const std::string & verb_name,
+ const json & params
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`Document &`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 87.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/add-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/add-verb.mdx
new file mode 100644
index 0000000000..57a897eca1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/add-verb.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/add-verb"
+title: "add_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::add_verb"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `add_verb`
+
+Add a verb to the main section.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+Document & add_verb(const std::string & verb_name, const json & params)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Document &`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 81.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/document.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/document.mdx
new file mode 100644
index 0000000000..8fb2babdb9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/document.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/document"
+title: "Document"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::Document"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `Document`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void Document()
+```
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 55.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/has-section.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/has-section.mdx
new file mode 100644
index 0000000000..f7633b3f00
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/has-section.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/has-section"
+title: "has_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::has_section"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `has_section`
+
+Check if a section exists.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+bool has_section(const std::string & name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 95.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/index.mdx
new file mode 100644
index 0000000000..8e6bfdb8b1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/index.mdx
@@ -0,0 +1,68 @@
+---
+slug: "/reference/cpp/signalwire/swml/document"
+title: "Document"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document"
+ parent: "signalwire::swml"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `Document`
+
+A complete SWML document with version and sections.
+
+## Signature
+
+```cpp
+class signalwire::swml::Document
+```
+
+## Methods
+
+
+
+ Add a verb to the main section.
+
+
+
+ Add a verb to a specific section.
+
+
+
+
+
+ Check if a section exists.
+
+
+
+ Get the main section.
+
+
+
+ Get or create a section by name.
+
+
+
+ Set the document version.
+
+
+
+ Render to JSON.
+
+
+
+ Render to JSON string.
+
+
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 53.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/main.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/main.mdx
new file mode 100644
index 0000000000..d2ec6cc648
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/main.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/main"
+title: "main"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::main"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `main`
+
+Get the main section.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+Section & main()
+```
+
+## Returns
+
+`Section &`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 76.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/section.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/section.mdx
new file mode 100644
index 0000000000..e78aa050f3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/section.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/section"
+title: "section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::section"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `section`
+
+Get or create a section by name.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+Section & section(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Section &`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 66.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/set-version.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/set-version.mdx
new file mode 100644
index 0000000000..d9408cbfe2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/set-version.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/set-version"
+title: "set_version"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::set_version"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `set_version`
+
+Set the document version.
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+Document & set_version(const std::string & version)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Document &`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 60.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/to-json.mdx
new file mode 100644
index 0000000000..c227696ea4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/to-json.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::to_json"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+Render to JSON.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 100.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/document/to-string.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/document/to-string.mdx
new file mode 100644
index 0000000000..d6bbae45cf
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/document/to-string.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/document/to-string"
+title: "to_string"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Document::to_string"
+ parent: "signalwire::swml::Document"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `to_string`
+
+Render to JSON string.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+std::string to_string(int indent = -1) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 124.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/get-embedded-schema.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/get-embedded-schema.mdx
new file mode 100644
index 0000000000..f10f406768
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/get-embedded-schema.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/swml/get-embedded-schema"
+title: "get_embedded_schema"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::swml::get_embedded_schema"
+ parent: "signalwire::swml"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/swml/schema.cpp"
+ visibility: "public"
+---
+# `get_embedded_schema`
+
+Get the embedded schema JSON string.
+
+## Signature
+
+```cpp
+const std::string & get_embedded_schema()
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`src/swml/schema.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/swml/schema.cpp)
+
+Line 52.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/index.mdx
new file mode 100644
index 0000000000..a77bdd63c8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/index.mdx
@@ -0,0 +1,73 @@
+---
+slug: "/reference/cpp/signalwire/swml"
+title: "swml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::swml"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+---
+# `swml`
+
+## Signature
+
+```cpp
+namespace signalwire::swml
+```
+
+## Constants
+
+
+
+## Functions
+
+
+
+ Get the embedded schema JSON string.
+
+
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+ A complete SWML document with version and sections.
+
+
+
+ Schema loader that extracts verb definitions from schema.json.
+
+
+
+ A named section containing an ordered list of verbs.
+
+
+
+ Base SWML service providing HTTP server, auth, and verb methods. Also hosts SWAIG functions: any Service (sidecar, non-agent verb host) can register tools and serve them on /swaig without subclassing AgentBase.
+
+
+
+ Represents a single SWML verb instance, e.g. \{"answer": \{"max\_duration": 3600\}\}.
+
+
+
+ Represents a verb definition extracted from the SWML schema.
+
+
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 10.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/json.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/json.mdx
new file mode 100644
index 0000000000..1de7d52775
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/swml/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::swml::json"
+ parent: "signalwire::swml"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 12.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/find-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/find-verb.mdx
new file mode 100644
index 0000000000..cc7ea5b7a7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/find-verb.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema/find-verb"
+title: "find_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema::find_verb"
+ parent: "signalwire::swml::Schema"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `find_verb`
+
+Get a specific verb definition by verb name.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+const VerbDefinition * find_verb(const std::string & verb_name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`const VerbDefinition *`
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 39.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/index.mdx
new file mode 100644
index 0000000000..bb605ebf08
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/index.mdx
@@ -0,0 +1,64 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema"
+title: "Schema"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema"
+ parent: "signalwire::swml"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `Schema`
+
+Schema loader that extracts verb definitions from schema.json.
+
+## Signature
+
+```cpp
+class signalwire::swml::Schema
+```
+
+## Methods
+
+
+
+ Get a specific verb definition by verb name.
+
+
+
+ Load the embedded schema.
+
+
+
+ Load schema from a file path.
+
+
+
+ Load schema from a JSON string.
+
+
+
+ Get the raw schema JSON.
+
+
+
+
+
+ Get all verb definitions.
+
+
+
+ Get all verb names.
+
+
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-embedded.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-embedded.mdx
new file mode 100644
index 0000000000..223cee3f3b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-embedded.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema/load-embedded"
+title: "load_embedded"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema::load_embedded"
+ parent: "signalwire::swml::Schema"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `load_embedded`
+
+Load the embedded schema.
+
+## Signature
+
+```cpp
+bool load_embedded()
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 33.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-from-file.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-from-file.mdx
new file mode 100644
index 0000000000..028c874f72
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-from-file.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema/load-from-file"
+title: "load_from_file"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema::load_from_file"
+ parent: "signalwire::swml::Schema"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `load_from_file`
+
+Load schema from a file path.
+
+## Signature
+
+```cpp
+bool load_from_file(const std::string & path)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 30.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-from-string.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-from-string.mdx
new file mode 100644
index 0000000000..ea1a9b30d1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/load-from-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema/load-from-string"
+title: "load_from_string"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema::load_from_string"
+ parent: "signalwire::swml::Schema"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `load_from_string`
+
+Load schema from a JSON string.
+
+## Signature
+
+```cpp
+bool load_from_string(const std::string & schema_json)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 27.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/raw.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/raw.mdx
new file mode 100644
index 0000000000..492a02bbd8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/raw.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema/raw"
+title: "raw"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema::raw"
+ parent: "signalwire::swml::Schema"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `raw`
+
+Get the raw schema JSON.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const json & raw() const
+```
+
+## Returns
+
+`const json &`
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 45.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/schema.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/schema.mdx
new file mode 100644
index 0000000000..664e35cb16
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/schema.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema/schema"
+title: "Schema"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema::Schema"
+ parent: "signalwire::swml::Schema"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `Schema`
+
+## Signature
+
+```cpp
+void Schema()
+```
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 24.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/verb-definitions.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/verb-definitions.mdx
new file mode 100644
index 0000000000..1481c846e6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/verb-definitions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema/verb-definitions"
+title: "verb_definitions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema::verb_definitions"
+ parent: "signalwire::swml::Schema"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `verb_definitions`
+
+Get all verb definitions.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::vector< VerbDefinition > & verb_definitions() const
+```
+
+## Returns
+
+`const std::vector< VerbDefinition > &`
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/schema/verb-names.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/schema/verb-names.mdx
new file mode 100644
index 0000000000..157c300922
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/schema/verb-names.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/schema/verb-names"
+title: "verb_names"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Schema::verb_names"
+ parent: "signalwire::swml::Schema"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `verb_names`
+
+Get all verb names.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< std::string > verb_names() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/section/add-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/section/add-verb.mdx
new file mode 100644
index 0000000000..45b5d533e1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/section/add-verb.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/swml/section/add-verb"
+title: "add_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Section::add_verb"
+ parent: "signalwire::swml::Section"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `add_verb`
+
+**Modifiers:** `inline`
+
+## Signature
+
+
+
+ ```cpp
+ void add_verb(const Verb & verb)
+ ```
+
+
+
+ ```cpp
+ void add_verb(const std::string & verb_name, const json & params)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/section/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/section/index.mdx
new file mode 100644
index 0000000000..ebd21376ae
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/section/index.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/swml/section"
+title: "Section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Section"
+ parent: "signalwire::swml"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `Section`
+
+A named section containing an ordered list of verbs.
+
+## Signature
+
+```cpp
+struct signalwire::swml::Section
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/section/section.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/section/section.mdx
new file mode 100644
index 0000000000..23d10cd3c3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/section/section.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/swml/section/section"
+title: "Section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Section::Section"
+ parent: "signalwire::swml::Section"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `Section`
+
+## Signature
+
+
+
+ ```cpp
+ void Section()
+ ```
+
+
+
+ ```cpp
+ void Section(std::string n)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/section/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/section/to-json.mdx
new file mode 100644
index 0000000000..021b3eb666
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/section/to-json.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/swml/section/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Section::to_json"
+ parent: "signalwire::swml::Section"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 43.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/add-security-headers.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/add-security-headers.mdx
new file mode 100644
index 0000000000..fe1d8516e4
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/add-security-headers.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/add-security-headers"
+title: "add_security_headers"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::add_security_headers"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "protected"
+---
+# `add_security_headers`
+
+Add security headers to response.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+void add_security_headers(httplib::Response & res)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 275.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/add-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/add-verb.mdx
new file mode 100644
index 0000000000..5822197e58
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/add-verb.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/add-verb"
+title: "add_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::add_verb"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `add_verb`
+
+## Signature
+
+```cpp
+Service & add_verb(
+ const std::string & section,
+ const std::string & verb_name,
+ const json & params
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 131.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/ai.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/ai.mdx
new file mode 100644
index 0000000000..734e806fdb
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/ai.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/ai"
+title: "ai"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::ai"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `ai`
+
+## Signature
+
+```cpp
+Service & ai(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 89.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/amazon-bedrock.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/amazon-bedrock.mdx
new file mode 100644
index 0000000000..b45d84bf50
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/amazon-bedrock.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/amazon-bedrock"
+title: "amazon_bedrock"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::amazon_bedrock"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `amazon_bedrock`
+
+## Signature
+
+```cpp
+Service & amazon_bedrock(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 90.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/answer.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/answer.mdx
new file mode 100644
index 0000000000..d14f0a8a20
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/answer.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/answer"
+title: "answer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::answer"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `answer`
+
+## Signature
+
+```cpp
+Service & answer(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 88.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/auth-password.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/auth-password.mdx
new file mode 100644
index 0000000000..658ef67805
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/auth-password.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/auth-password"
+title: "auth_password"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::auth_password"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `auth_password`
+
+Get the password for basic auth.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & auth_password() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 63.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/auth-username.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/auth-username.mdx
new file mode 100644
index 0000000000..251e1b75d7
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/auth-username.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/auth-username"
+title: "auth_username"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::auth_username"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `auth_username`
+
+Get the username for basic auth.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & auth_username() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 60.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/build-tool-registry-json.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/build-tool-registry-json.mdx
new file mode 100644
index 0000000000..a4f1564811
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/build-tool-registry-json.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/build-tool-registry-json"
+title: "build_tool_registry_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::build_tool_registry_json"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `build_tool_registry_json`
+
+Build the introspect payload for the registered tools as a JSON string shaped like \{"tools":\[\]\}. Iterates tool\_order\_ first, falling back to map order for entries registered only via register\_swaig\_function. Stable across SDKs so the swaig-test --example CLI can parse output uniformly. Used by the SWAIG\_LIST\_TOOLS env-var path; pulled out as a separate helper so tests can assert content without invoking exit().
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string build_tool_registry_json() const
+```
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 204.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/cond.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/cond.mdx
new file mode 100644
index 0000000000..f58a838f0c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/cond.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/cond"
+title: "cond"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::cond"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `cond`
+
+## Signature
+
+```cpp
+Service & cond(const json & params = json::array())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 91.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/connect.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/connect.mdx
new file mode 100644
index 0000000000..98867c4077
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/connect.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/connect"
+title: "connect"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::connect"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `connect`
+
+## Signature
+
+```cpp
+Service & connect(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 92.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/define-tool.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/define-tool.mdx
new file mode 100644
index 0000000000..6285586e04
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/define-tool.mdx
@@ -0,0 +1,70 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/define-tool"
+title: "define_tool"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::define_tool"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `define_tool`
+
+Define a SWAIG function the AI can call.
+
+## Signature
+
+
+
+ ```cpp
+ Service & define_tool(
+ const std::string & name,
+ const std::string & description,
+ const json & parameters,
+ swaig::ToolHandler handler,
+ bool secure = false
+ )
+ ```
+
+
+
+ ```cpp
+ Service & define_tool(const swaig::ToolDefinition & tool)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+
+
+
+
+
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Returns (Overload 1)
+
+`Service &`
+
+## Returns (Overload 2)
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 156.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/denoise.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/denoise.mdx
new file mode 100644
index 0000000000..33cb5c3cc8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/denoise.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/denoise"
+title: "denoise"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::denoise"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `denoise`
+
+## Signature
+
+```cpp
+Service & denoise(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 93.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/detect-machine.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/detect-machine.mdx
new file mode 100644
index 0000000000..0bd02c285c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/detect-machine.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/detect-machine"
+title: "detect_machine"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::detect_machine"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `detect_machine`
+
+## Signature
+
+```cpp
+Service & detect_machine(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 94.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/document.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/document.mdx
new file mode 100644
index 0000000000..6f69502c58
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/document.mdx
@@ -0,0 +1,50 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/document"
+title: "document"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::document"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `document`
+
+Get the underlying SWML document.
+
+**Modifiers:** `inline`
+
+## Signature
+
+
+
+ ```cpp
+ Document & document()
+ ```
+
+
+
+ ```cpp
+ const Document & document() const
+ ```
+
+
+
+## Returns (Overload 1)
+
+`Document &`
+
+## Returns (Overload 2)
+
+`const Document &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 138.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/enter-queue.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/enter-queue.mdx
new file mode 100644
index 0000000000..bd34f909a6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/enter-queue.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/enter-queue"
+title: "enter_queue"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::enter_queue"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `enter_queue`
+
+## Signature
+
+```cpp
+Service & enter_queue(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 95.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/execute.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/execute.mdx
new file mode 100644
index 0000000000..8639b00915
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/execute.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/execute"
+title: "execute"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::execute"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `execute`
+
+## Signature
+
+```cpp
+Service & execute(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 96.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/extract-introspect-payload.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/extract-introspect-payload.mdx
new file mode 100644
index 0000000000..8693e6456a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/extract-introspect-payload.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/extract-introspect-payload"
+title: "extract_introspect_payload"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::extract_introspect_payload"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `extract_introspect_payload`
+
+Pure-string extractor: slice the JSON payload between **SWAIG\_TOOLS\_BEGIN** and **SWAIG\_TOOLS\_END** sentinels in a captured stdout. Returns empty string if either marker is missing or the order is wrong. Static so the swaig-test CLI / tests can reuse it.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+std::string extract_introspect_payload(const std::string & stdout_capture)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 209.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/generate-random-hex.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/generate-random-hex.mdx
new file mode 100644
index 0000000000..7eaba6a4c9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/generate-random-hex.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/generate-random-hex"
+title: "generate_random_hex"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::generate_random_hex"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `generate_random_hex`
+
+Generate a random hex string of given byte length.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+std::string generate_random_hex(size_t bytes)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 228.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/get-all-functions.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/get-all-functions.mdx
new file mode 100644
index 0000000000..78ba09ba5e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/get-all-functions.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/get-all-functions"
+title: "get_all_functions"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::get_all_functions"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `get_all_functions`
+
+Snapshot of all registered SWAIG functions keyed by name. Returned by value so subsequent registrations don't mutate the snapshot. Python parity: ToolRegistry.get\_all\_functions.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::map< std::string, swaig::ToolDefinition > get_all_functions() const
+```
+
+## Returns
+
+`std::map< std::string, swaig::ToolDefinition >`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 190.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/get-basic-auth-credentials-with-source.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/get-basic-auth-credentials-with-source.mdx
new file mode 100644
index 0000000000..cc168255dd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/get-basic-auth-credentials-with-source.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/get-basic-auth-credentials-with-source"
+title: "get_basic_auth_credentials_with_source"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::get_basic_auth_credentials_with_source"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `get_basic_auth_credentials_with_source`
+
+Get (user, password, source) where source is one of "provided", "environment", or "generated". Python parity: AuthMixin.get\_basic\_auth\_credentials(include\_source=True).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::tuple< std::string, std::string, std::string > get_basic_auth_credentials_with_source() const
+```
+
+## Returns
+
+`std::tuple< std::string, std::string, std::string >`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 82.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/get-basic-auth-credentials.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/get-basic-auth-credentials.mdx
new file mode 100644
index 0000000000..c3c98fb9ed
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/get-basic-auth-credentials.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/get-basic-auth-credentials"
+title: "get_basic_auth_credentials"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::get_basic_auth_credentials"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `get_basic_auth_credentials`
+
+Get (user, password) — Python-canonical name. Python parity: AuthMixin.get\_basic\_auth\_credentials.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::pair< std::string, std::string > get_basic_auth_credentials() const
+```
+
+## Returns
+
+`std::pair< std::string, std::string >`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 76.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/get-function.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/get-function.mdx
new file mode 100644
index 0000000000..354aa4404d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/get-function.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/get-function"
+title: "get_function"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::get_function"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `get_function`
+
+Get a registered SWAIG function definition by name. Returns nullptr when no such function is registered. Python parity: ToolRegistry.get\_function.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+const swaig::ToolDefinition * get_function(const std::string & name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`const swaig::ToolDefinition *`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 185.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/goto-section.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/goto-section.mdx
new file mode 100644
index 0000000000..17d8062482
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/goto-section.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/goto-section"
+title: "goto_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::goto_section"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `goto_section`
+
+## Signature
+
+```cpp
+Service & goto_section(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 97.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/handle-swaig-endpoint.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/handle-swaig-endpoint.mdx
new file mode 100644
index 0000000000..81d4196f20
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/handle-swaig-endpoint.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/handle-swaig-endpoint"
+title: "handle_swaig_endpoint"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::handle_swaig_endpoint"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "protected"
+---
+# `handle_swaig_endpoint`
+
+Handle GET/POST /swaig (lifted from AgentBase).
+
+## Signature
+
+```cpp
+void handle_swaig_endpoint(
+ const httplib::Request & req,
+ httplib::Response & res
+)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 281.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/hangup.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/hangup.mdx
new file mode 100644
index 0000000000..6c132e3f25
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/hangup.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/hangup"
+title: "hangup"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::hangup"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `hangup`
+
+## Signature
+
+```cpp
+Service & hangup(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 98.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/has-function.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/has-function.mdx
new file mode 100644
index 0000000000..f01933b719
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/has-function.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/has-function"
+title: "has_function"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::has_function"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `has_function`
+
+Whether a SWAIG function with the given name is registered. Python parity: ToolRegistry.has\_function.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool has_function(const std::string & name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 180.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/has-tool.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/has-tool.mdx
new file mode 100644
index 0000000000..55937b6e48
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/has-tool.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/has-tool"
+title: "has_tool"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::has_tool"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `has_tool`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool has_tool(const std::string & name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 171.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/index.mdx
new file mode 100644
index 0000000000..38ff43cdb2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/index.mdx
@@ -0,0 +1,270 @@
+---
+slug: "/reference/cpp/signalwire/swml/service"
+title: "Service"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service"
+ parent: "signalwire::swml"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `Service`
+
+Base SWML service providing HTTP server, auth, and verb methods. Also hosts SWAIG functions: any Service (sidecar, non-agent verb host) can register tools and serve them on /swaig without subclassing AgentBase.
+
+## Signature
+
+```cpp
+class signalwire::swml::Service
+```
+
+## Methods
+
+
+
+
+
+ Add security headers to response.
+
+
+
+
+
+
+
+
+
+
+
+ Get the password for basic auth.
+
+
+
+ Get the username for basic auth.
+
+
+
+ Build the introspect payload for the registered tools as a JSON string shaped like \{"tools":\[\]\}. Iterates tool\_order\_ first, falling back to map order for entries registered only via register\_swaig\_function. Stable across SDKs so the swaig-test --example CLI can parse output uniformly. Used by the SWAIG\_LIST\_TOOLS env-var path; pulled out as a separate helper so tests can assert content without invoking exit().
+
+
+
+
+
+
+
+ Define a SWAIG function the AI can call.
+
+
+
+
+
+
+
+ Get the underlying SWML document.
+
+
+
+
+
+
+
+ Pure-string extractor: slice the JSON payload between **SWAIG\_TOOLS\_BEGIN** and **SWAIG\_TOOLS\_END** sentinels in a captured stdout. Returns empty string if either marker is missing or the order is wrong. Static so the swaig-test CLI / tests can reuse it.
+
+
+
+ Generate a random hex string of given byte length.
+
+
+
+ Snapshot of all registered SWAIG functions keyed by name. Returned by value so subsequent registrations don't mutate the snapshot. Python parity: ToolRegistry.get\_all\_functions.
+
+
+
+ Get (user, password) — Python-canonical name. Python parity: AuthMixin.get\_basic\_auth\_credentials.
+
+
+
+ Get (user, password, source) where source is one of "provided", "environment", or "generated". Python parity: AuthMixin.get\_basic\_auth\_credentials(include\_source=True).
+
+
+
+ Get a registered SWAIG function definition by name. Returns nullptr when no such function is registered. Python parity: ToolRegistry.get\_function.
+
+
+
+
+
+ Handle GET/POST /swaig (lifted from AgentBase).
+
+
+
+
+
+ Whether a SWAIG function with the given name is registered. Python parity: ToolRegistry.has\_function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dispatch a function call to the registered handler. Returns a FunctionResult; if the function isn't registered, returns a FunctionResult with a "Function not found" response.
+
+
+
+ Override to customize SWML rendering.
+
+
+
+ Customization hook called when SWML is requested. Default delegates to on\_swml\_request and returns its result. Subclasses typically override on\_swml\_request rather than this method. Returns std::nullopt to use the default SWML rendering, or a non-null JSON with modifications to merge into the rendered document. Python parity: WebMixin.on\_request(request\_data, callback\_path). The Python third request argument is FastAPI-specific and intentionally not mirrored on the cross-language API.
+
+
+
+ Customization point for subclasses to modify SWML based on request data. Default returns std::nullopt (no modification). Python parity: WebMixin.on\_swml\_request(request\_data, callback\_path).
+
+
+
+
+
+
+
+ Get the effective port.
+
+
+
+
+
+
+
+
+
+
+
+ Extension point: register additional HTTP routes. AgentBase uses this to add /post\_prompt, /mcp, etc.
+
+
+
+ Register a raw SWAIG function definition (e.g. DataMap tools).
+
+
+
+ Remove a registered SWAIG function. Returns true when the function was found and removed; false when it wasn't registered. Python parity: ToolRegistry.remove\_function.
+
+
+
+ Extension point: render the SWML document for the main path or for GET /swaig. Default returns the currently-built Document. AgentBase overrides to emit prompt + AI verb at request time.
+
+
+
+ Render the SWML document to JSON.
+
+
+
+
+
+
+
+
+
+ SchemaUtils helper bound to this Service. Mirrors Python's self.schema\_utils instance attribute on SWMLService. Built lazily on first access; the underlying schema is cached so the helper is cheap to build.
+
+
+
+
+
+
+
+
+
+ Start the HTTP server (blocking).
+
+
+
+
+
+
+
+ Set basic auth credentials (auto-generated if not set).
+
+
+
+ Set the host to bind to.
+
+
+
+ Set the service name (default: "service").
+
+
+
+ Set the port to listen on.
+
+
+
+ Set the route path for this service (default: "/").
+
+
+
+
+
+
+
+
+
+ Stop the HTTP server.
+
+
+
+
+
+
+
+
+
+ Extension point: invoked between argument parsing and function dispatch on POST /swaig. Returns a target Service\* (defaults to this) and an optional short-circuit JSON. If short\_circuit is non-null, it's returned as the SWAIG response without calling on\_function\_call. AgentBase overrides for token validation.
+
+
+
+
+
+
+
+ Timing-safe string comparison using CRYPTO\_memcmp.
+
+
+
+
+
+
+
+
+
+ Validate basic auth from a request; returns true if valid.
+
+
+
+ Validate provided basic-auth credentials against the configured ones using a constant-time comparison. Python parity: AuthMixin.validate\_basic\_auth(username, password).
+
+
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 33.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/join-conference.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/join-conference.mdx
new file mode 100644
index 0000000000..a6fa4ef9ee
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/join-conference.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/join-conference"
+title: "join_conference"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::join_conference"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `join_conference`
+
+## Signature
+
+```cpp
+Service & join_conference(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 99.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/join-room.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/join-room.mdx
new file mode 100644
index 0000000000..ffb268de3b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/join-room.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/join-room"
+title: "join_room"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::join_room"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `join_room`
+
+## Signature
+
+```cpp
+Service & join_room(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 100.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/label.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/label.mdx
new file mode 100644
index 0000000000..030b91127b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/label.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/label"
+title: "label"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::label"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `label`
+
+## Signature
+
+```cpp
+Service & label(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 101.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/list-tool-names.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/list-tool-names.mdx
new file mode 100644
index 0000000000..2c4477d486
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/list-tool-names.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/list-tool-names"
+title: "list_tool_names"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::list_tool_names"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `list_tool_names`
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< std::string > list_tool_names() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 172.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/live-transcribe.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/live-transcribe.mdx
new file mode 100644
index 0000000000..ee40b1a9ac
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/live-transcribe.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/live-transcribe"
+title: "live_transcribe"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::live_transcribe"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `live_transcribe`
+
+## Signature
+
+```cpp
+Service & live_transcribe(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 102.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/live-translate.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/live-translate.mdx
new file mode 100644
index 0000000000..2199c5bb20
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/live-translate.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/live-translate"
+title: "live_translate"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::live_translate"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `live_translate`
+
+## Signature
+
+```cpp
+Service & live_translate(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 103.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/name.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/name.mdx
new file mode 100644
index 0000000000..6026e3c070
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/name"
+title: "name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::name"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `name`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & name() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 44.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/on-function-call.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/on-function-call.mdx
new file mode 100644
index 0000000000..6a1aa53b13
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/on-function-call.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/on-function-call"
+title: "on_function_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::on_function_call"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `on_function_call`
+
+Dispatch a function call to the registered handler. Returns a FunctionResult; if the function isn't registered, returns a FunctionResult with a "Function not found" response.
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+swaig::FunctionResult on_function_call(
+ const std::string & name,
+ const json & args,
+ const json & raw_data
+)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`swaig::FunctionResult`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 167.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/on-render-swml.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/on-render-swml.mdx
new file mode 100644
index 0000000000..50ac227386
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/on-render-swml.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/on-render-swml"
+title: "on_render_swml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::on_render_swml"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "protected"
+---
+# `on_render_swml`
+
+Override to customize SWML rendering.
+
+**Modifiers:** `const` `virtual`
+
+## Signature
+
+```cpp
+json on_render_swml() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 255.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/on-request.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/on-request.mdx
new file mode 100644
index 0000000000..f595d5b4d9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/on-request.mdx
@@ -0,0 +1,47 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/on-request"
+title: "on_request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::on_request"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `on_request`
+
+Customization hook called when SWML is requested. Default delegates to on\_swml\_request and returns its result. Subclasses typically override on\_swml\_request rather than this method.
+Returns std::nullopt to use the default SWML rendering, or a non-null JSON with modifications to merge into the rendered document.
+Python parity: WebMixin.on\_request(request\_data, callback\_path). The Python third request argument is FastAPI-specific and intentionally not mirrored on the cross-language API.
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+std::optional< json > on_request(
+ const std::optional< json > & request_data = std::nullopt,
+ const std::optional< std::string > & callback_path = std::nullopt
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::optional< json >`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 241.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/on-swml-request.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/on-swml-request.mdx
new file mode 100644
index 0000000000..dd0db16773
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/on-swml-request.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/on-swml-request"
+title: "on_swml_request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::on_swml_request"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `on_swml_request`
+
+Customization point for subclasses to modify SWML based on request data. Default returns std::nullopt (no modification).
+Python parity: WebMixin.on\_swml\_request(request\_data, callback\_path).
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+std::optional< json > on_swml_request(
+ const std::optional< json > & request_data = std::nullopt,
+ const std::optional< std::string > & callback_path = std::nullopt
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::optional< json >`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 249.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/pay.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/pay.mdx
new file mode 100644
index 0000000000..0d488ac854
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/pay.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/pay"
+title: "pay"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::pay"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `pay`
+
+## Signature
+
+```cpp
+Service & pay(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 104.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/play.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/play.mdx
new file mode 100644
index 0000000000..c42f44b477
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/play.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/play"
+title: "play"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::play"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `play`
+
+## Signature
+
+```cpp
+Service & play(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 105.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/port.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/port.mdx
new file mode 100644
index 0000000000..7205954fbd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/port.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/port"
+title: "port"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::port"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `port`
+
+Get the effective port.
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+int port() const
+```
+
+## Returns
+
+`int`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 222.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/prompt.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/prompt.mdx
new file mode 100644
index 0000000000..17065ccc19
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/prompt.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/prompt"
+title: "prompt"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::prompt"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `prompt`
+
+## Signature
+
+```cpp
+Service & prompt(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 106.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/receive-fax.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/receive-fax.mdx
new file mode 100644
index 0000000000..b789b8b6ba
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/receive-fax.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/receive-fax"
+title: "receive_fax"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::receive_fax"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `receive_fax`
+
+## Signature
+
+```cpp
+Service & receive_fax(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 107.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/record-call.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/record-call.mdx
new file mode 100644
index 0000000000..55357fb300
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/record-call.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/record-call"
+title: "record_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::record_call"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `record_call`
+
+## Signature
+
+```cpp
+Service & record_call(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 109.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/record.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/record.mdx
new file mode 100644
index 0000000000..331cd15017
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/record.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/record"
+title: "record"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::record"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `record`
+
+## Signature
+
+```cpp
+Service & record(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 108.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/register-additional-routes.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/register-additional-routes.mdx
new file mode 100644
index 0000000000..bcd698cfc5
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/register-additional-routes.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/register-additional-routes"
+title: "register_additional_routes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::register_additional_routes"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "protected"
+---
+# `register_additional_routes`
+
+Extension point: register additional HTTP routes. AgentBase uses this to add /post\_prompt, /mcp, etc.
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+void register_additional_routes(httplib::Server & server)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 272.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/register-swaig-function.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/register-swaig-function.mdx
new file mode 100644
index 0000000000..c7daf64daa
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/register-swaig-function.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/register-swaig-function"
+title: "register_swaig_function"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::register_swaig_function"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `register_swaig_function`
+
+Register a raw SWAIG function definition (e.g. DataMap tools).
+
+## Signature
+
+```cpp
+Service & register_swaig_function(const json & func_def)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 162.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/remove-function.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/remove-function.mdx
new file mode 100644
index 0000000000..c73c66c600
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/remove-function.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/remove-function"
+title: "remove_function"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::remove_function"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `remove_function`
+
+Remove a registered SWAIG function. Returns true when the function was found and removed; false when it wasn't registered. Python parity: ToolRegistry.remove\_function.
+
+## Signature
+
+```cpp
+bool remove_function(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 195.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/render-main-swml.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/render-main-swml.mdx
new file mode 100644
index 0000000000..ad262c0598
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/render-main-swml.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/render-main-swml"
+title: "render_main_swml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::render_main_swml"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "protected"
+---
+# `render_main_swml`
+
+Extension point: render the SWML document for the main path or for GET /swaig. Default returns the currently-built Document. AgentBase overrides to emit prompt + AI verb at request time.
+
+**Modifiers:** `const` `virtual`
+
+## Signature
+
+```cpp
+json render_main_swml(const httplib::Request & req) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 260.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/render-swml.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/render-swml.mdx
new file mode 100644
index 0000000000..7ddc41e026
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/render-swml.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/render-swml"
+title: "render_swml"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::render_swml"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `render_swml`
+
+Render the SWML document to JSON.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json render_swml() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 149.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/request.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/request.mdx
new file mode 100644
index 0000000000..1786d6483e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/request.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/request"
+title: "request"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::request"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `request`
+
+## Signature
+
+```cpp
+Service & request(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 110.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/return-section.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/return-section.mdx
new file mode 100644
index 0000000000..7051bb29dc
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/return-section.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/return-section"
+title: "return_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::return_section"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `return_section`
+
+## Signature
+
+```cpp
+Service & return_section(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 111.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/route.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/route.mdx
new file mode 100644
index 0000000000..d1bb5a721a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/route.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/route"
+title: "route"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::route"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `route`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & route() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 48.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/schema-utils.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/schema-utils.mdx
new file mode 100644
index 0000000000..edcd1b2475
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/schema-utils.mdx
@@ -0,0 +1,48 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/schema-utils"
+title: "schema_utils"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::schema_utils"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `schema_utils`
+
+SchemaUtils helper bound to this Service. Mirrors Python's self.schema\_utils instance attribute on SWMLService. Built lazily on first access; the underlying schema is cached so the helper is cheap to build.
+
+## Signature
+
+
+
+ ```cpp
+ signalwire::utils::SchemaUtils & schema_utils()
+ ```
+
+
+
+ ```cpp
+ const signalwire::utils::SchemaUtils & schema_utils() const
+ ```
+
+
+
+## Returns (Overload 1)
+
+`signalwire::utils::SchemaUtils &`
+
+## Returns (Overload 2)
+
+`const signalwire::utils::SchemaUtils &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 145.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/send-digits.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/send-digits.mdx
new file mode 100644
index 0000000000..1dedcd686e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/send-digits.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/send-digits"
+title: "send_digits"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::send_digits"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `send_digits`
+
+## Signature
+
+```cpp
+Service & send_digits(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 112.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/send-fax.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/send-fax.mdx
new file mode 100644
index 0000000000..d2940d8106
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/send-fax.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/send-fax"
+title: "send_fax"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::send_fax"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `send_fax`
+
+## Signature
+
+```cpp
+Service & send_fax(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 113.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/send-sms.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/send-sms.mdx
new file mode 100644
index 0000000000..43403ef2ae
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/send-sms.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/send-sms"
+title: "send_sms"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::send_sms"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `send_sms`
+
+## Signature
+
+```cpp
+Service & send_sms(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 114.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/serve.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/serve.mdx
new file mode 100644
index 0000000000..cc7375d5e8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/serve.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/serve"
+title: "serve"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::serve"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `serve`
+
+Start the HTTP server (blocking).
+
+## Signature
+
+```cpp
+void serve()
+```
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 216.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/service.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/service.mdx
new file mode 100644
index 0000000000..ef1afe6f9c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/service.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/service"
+title: "Service"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::Service"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `Service`
+
+## Signature
+
+```cpp
+void Service()
+```
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 35.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/service__2.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/service__2.mdx
new file mode 100644
index 0000000000..f119977fd1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/service__2.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/service__2"
+title: "~Service"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::~Service"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `~Service`
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+void ~Service()
+```
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/set-auth.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-auth.mdx
new file mode 100644
index 0000000000..e99893d261
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-auth.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/set-auth"
+title: "set_auth"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::set_auth"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `set_auth`
+
+Set basic auth credentials (auto-generated if not set).
+
+## Signature
+
+```cpp
+Service & set_auth(const std::string & username, const std::string & password)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 57.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/set-host.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-host.mdx
new file mode 100644
index 0000000000..425c2c18cd
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-host.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/set-host"
+title: "set_host"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::set_host"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `set_host`
+
+Set the host to bind to.
+
+## Signature
+
+```cpp
+Service & set_host(const std::string & host)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 51.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/set-name.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-name.mdx
new file mode 100644
index 0000000000..59a16936a8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-name.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/set-name"
+title: "set_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::set_name"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `set_name`
+
+Set the service name (default: "service").
+
+## Signature
+
+```cpp
+Service & set_name(const std::string & name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 43.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/set-port.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-port.mdx
new file mode 100644
index 0000000000..9de6afa539
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-port.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/set-port"
+title: "set_port"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::set_port"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `set_port`
+
+Set the port to listen on.
+
+## Signature
+
+```cpp
+Service & set_port(int port)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 54.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/set-route.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-route.mdx
new file mode 100644
index 0000000000..c0da7c4e02
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/set-route.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/set-route"
+title: "set_route"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::set_route"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `set_route`
+
+Set the route path for this service (default: "/").
+
+## Signature
+
+```cpp
+Service & set_route(const std::string & route)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 47.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/set.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/set.mdx
new file mode 100644
index 0000000000..835d94fd69
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/set.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/set"
+title: "set"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::set"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `set`
+
+## Signature
+
+```cpp
+Service & set(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 115.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/setup-routes.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/setup-routes.mdx
new file mode 100644
index 0000000000..ffbe706cf1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/setup-routes.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/setup-routes"
+title: "setup_routes"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::setup_routes"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "protected"
+---
+# `setup_routes`
+
+## Signature
+
+```cpp
+void setup_routes(httplib::Server & server)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 304.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/sip-refer.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/sip-refer.mdx
new file mode 100644
index 0000000000..2c883bb338
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/sip-refer.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/sip-refer"
+title: "sip_refer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::sip_refer"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `sip_refer`
+
+## Signature
+
+```cpp
+Service & sip_refer(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 117.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/sleep.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/sleep.mdx
new file mode 100644
index 0000000000..a67ae41154
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/sleep.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/sleep"
+title: "sleep"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::sleep"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `sleep`
+
+## Signature
+
+```cpp
+Service & sleep(int milliseconds)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 116.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-denoise.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-denoise.mdx
new file mode 100644
index 0000000000..b189148d5e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-denoise.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/stop-denoise"
+title: "stop_denoise"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::stop_denoise"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `stop_denoise`
+
+## Signature
+
+```cpp
+Service & stop_denoise(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 118.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-record-call.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-record-call.mdx
new file mode 100644
index 0000000000..0daec3fb5d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-record-call.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/stop-record-call"
+title: "stop_record_call"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::stop_record_call"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `stop_record_call`
+
+## Signature
+
+```cpp
+Service & stop_record_call(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 119.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-tap.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-tap.mdx
new file mode 100644
index 0000000000..383d2b547f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/stop-tap.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/stop-tap"
+title: "stop_tap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::stop_tap"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `stop_tap`
+
+## Signature
+
+```cpp
+Service & stop_tap(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 120.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/stop.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/stop.mdx
new file mode 100644
index 0000000000..d6b8e41d06
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/stop.mdx
@@ -0,0 +1,30 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/stop"
+title: "stop"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::stop"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `stop`
+
+Stop the HTTP server.
+
+## Signature
+
+```cpp
+void stop()
+```
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 219.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/swaig-pre-dispatch.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/swaig-pre-dispatch.mdx
new file mode 100644
index 0000000000..b63f8423d3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/swaig-pre-dispatch.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/swaig-pre-dispatch"
+title: "swaig_pre_dispatch"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::swaig_pre_dispatch"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "protected"
+---
+# `swaig_pre_dispatch`
+
+Extension point: invoked between argument parsing and function dispatch on POST /swaig. Returns a target Service\* (defaults to this) and an optional short-circuit JSON. If short\_circuit is non-null, it's returned as the SWAIG response without calling on\_function\_call. AgentBase overrides for token validation.
+
+**Modifiers:** `virtual`
+
+## Signature
+
+```cpp
+std::pair< Service *, std::optional< json > > swaig_pre_dispatch(
+ const json & request_data,
+ const std::string & func_name
+)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::pair< Service *, std::optional< json > >`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 268.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/switch-section.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/switch-section.mdx
new file mode 100644
index 0000000000..137e13fcd6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/switch-section.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/switch-section"
+title: "switch_section"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::switch_section"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `switch_section`
+
+## Signature
+
+```cpp
+Service & switch_section(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 121.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/tap.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/tap.mdx
new file mode 100644
index 0000000000..128c99ef39
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/tap.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/tap"
+title: "tap"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::tap"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `tap`
+
+## Signature
+
+```cpp
+Service & tap(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 122.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/timing-safe-compare.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/timing-safe-compare.mdx
new file mode 100644
index 0000000000..4677ba8b86
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/timing-safe-compare.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/timing-safe-compare"
+title: "timing_safe_compare"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::timing_safe_compare"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `timing_safe_compare`
+
+Timing-safe string comparison using CRYPTO\_memcmp.
+
+**Modifiers:** `static`
+
+## Signature
+
+```cpp
+bool timing_safe_compare(const std::string & a, const std::string & b)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 225.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/transfer.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/transfer.mdx
new file mode 100644
index 0000000000..94f1757e8d
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/transfer.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/transfer"
+title: "transfer"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::transfer"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `transfer`
+
+## Signature
+
+```cpp
+Service & transfer(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 123.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/unset.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/unset.mdx
new file mode 100644
index 0000000000..173b871ac9
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/unset.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/unset"
+title: "unset"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::unset"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `unset`
+
+## Signature
+
+```cpp
+Service & unset(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 124.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/user-event.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/user-event.mdx
new file mode 100644
index 0000000000..460c1d9a63
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/user-event.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/user-event"
+title: "user_event"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::user_event"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `user_event`
+
+## Signature
+
+```cpp
+Service & user_event(const json & params = json::object())
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Service &`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 125.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/validate-auth.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/validate-auth.mdx
new file mode 100644
index 0000000000..2095724b0e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/validate-auth.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/validate-auth"
+title: "validate_auth"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::validate_auth"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "protected"
+---
+# `validate_auth`
+
+Validate basic auth from a request; returns true if valid.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool validate_auth(const httplib::Request & req, httplib::Response & res) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 278.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/service/validate-basic-auth.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/service/validate-basic-auth.mdx
new file mode 100644
index 0000000000..859f948509
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/service/validate-basic-auth.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/swml/service/validate-basic-auth"
+title: "validate_basic_auth"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Service::validate_basic_auth"
+ parent: "signalwire::swml::Service"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp"
+ visibility: "public"
+---
+# `validate_basic_auth`
+
+Validate provided basic-auth credentials against the configured ones using a constant-time comparison. Python parity: AuthMixin.validate\_basic\_auth(username, password).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool validate_basic_auth(
+ const std::string & username,
+ const std::string & password
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/swml/service.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/service.hpp)
+
+Line 72.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/verb-definition/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/verb-definition/index.mdx
new file mode 100644
index 0000000000..830236649e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/verb-definition/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/swml/verb-definition"
+title: "VerbDefinition"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::swml::VerbDefinition"
+ parent: "signalwire::swml"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp"
+ visibility: "public"
+---
+# `VerbDefinition`
+
+Represents a verb definition extracted from the SWML schema.
+
+## Signature
+
+```cpp
+struct signalwire::swml::VerbDefinition
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/swml/schema.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/schema.hpp)
+
+Line 14.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/verb/index.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/verb/index.mdx
new file mode 100644
index 0000000000..dddac5d905
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/verb/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/swml/verb"
+title: "Verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Verb"
+ parent: "signalwire::swml"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `Verb`
+
+Represents a single SWML verb instance, e.g. \{"answer": \{"max\_duration": 3600\}\}.
+
+## Signature
+
+```cpp
+struct signalwire::swml::Verb
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 15.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/verb/to-json.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/verb/to-json.mdx
new file mode 100644
index 0000000000..ec221d4ee8
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/verb/to-json.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/swml/verb/to-json"
+title: "to_json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Verb::to_json"
+ parent: "signalwire::swml::Verb"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `to_json`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+json to_json() const
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 22.
diff --git a/fern/products/sdk-reference/cpp/signalwire/swml/verb/verb.mdx b/fern/products/sdk-reference/cpp/signalwire/swml/verb/verb.mdx
new file mode 100644
index 0000000000..899dbfb12b
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/swml/verb/verb.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/swml/verb/verb"
+title: "Verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::swml::Verb::Verb"
+ parent: "signalwire::swml::Verb"
+ module: "signalwire.swml"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp"
+ visibility: "public"
+---
+# `Verb`
+
+## Signature
+
+
+
+ ```cpp
+ void Verb()
+ ```
+
+
+
+ ```cpp
+ void Verb(std::string n, json p)
+ ```
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+## Source
+
+[`include/signalwire/swml/document.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/swml/document.hpp)
+
+Line 19.
diff --git a/fern/products/sdk-reference/cpp/signalwire/timing-safe-compare.mdx b/fern/products/sdk-reference/cpp/signalwire/timing-safe-compare.mdx
new file mode 100644
index 0000000000..6575eca0b1
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/timing-safe-compare.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/timing-safe-compare"
+title: "timing_safe_compare"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::timing_safe_compare"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp"
+ visibility: "public"
+---
+# `timing_safe_compare`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+bool timing_safe_compare(const std::string & a, const std::string & b)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/common.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp)
+
+Line 87.
diff --git a/fern/products/sdk-reference/cpp/signalwire/url-encode.mdx b/fern/products/sdk-reference/cpp/signalwire/url-encode.mdx
new file mode 100644
index 0000000000..01697697e2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/url-encode.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/cpp/signalwire/url-encode"
+title: "url_encode"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::url_encode"
+ parent: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp"
+ visibility: "public"
+---
+# `url_encode`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+std::string url_encode(const std::string & value)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/common.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/common.hpp)
+
+Line 55.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/index.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/index.mdx
new file mode 100644
index 0000000000..2af574092c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/index.mdx
@@ -0,0 +1,63 @@
+---
+slug: "/reference/cpp/signalwire/utils"
+title: "utils"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::utils"
+ parent: "signalwire"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+---
+# `utils`
+
+## Signature
+
+```cpp
+namespace signalwire::utils
+```
+
+## Functions
+
+
+
+ Cross-language SDK contract: signalwire.utils.is\_serverless\_mode returns true whenever the SDK is running inside any short-lived / event-driven invocation environment (anything other than "server"). Mirrors signalwire.utils.is\_serverless\_mode in the Python reference. true unless the detected mode is "server".
+
+
+
+## Type Aliases
+
+
+
+
+
+## Classes
+
+
+
+ SchemaUtils — C++ port of signalwire.utils.schema\_utils.SchemaUtils.
+
+
+
+ SchemaValidationError — C++ port of signalwire.utils.schema\_utils.SchemaValidationError.
+
+
+
+ Verb metadata extracted from the schema.
+
+
+
+## Modules
+
+
+
+
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 28.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/is-serverless-mode.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/is-serverless-mode.mdx
new file mode 100644
index 0000000000..dd8b828f4c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/is-serverless-mode.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/utils/is-serverless-mode"
+title: "is_serverless_mode"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::utils::is_serverless_mode"
+ parent: "signalwire::utils"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/utils/serverless.cpp"
+ visibility: "public"
+---
+# `is_serverless_mode`
+
+Cross-language SDK contract: signalwire.utils.is\_serverless\_mode returns true whenever the SDK is running inside any short-lived / event-driven invocation environment (anything other than "server").
+Mirrors signalwire.utils.is\_serverless\_mode in the Python reference.
+true unless the detected mode is "server".
+
+## Signature
+
+```cpp
+bool is_serverless_mode()
+```
+
+## Returns
+
+`bool` — true unless the detected mode is "server".
+
+## Source
+
+[`src/utils/serverless.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/utils/serverless.cpp)
+
+Line 13.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/json.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/json.mdx
new file mode 100644
index 0000000000..b90d81cb15
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/json.mdx
@@ -0,0 +1,28 @@
+---
+slug: "/reference/cpp/signalwire/utils/json"
+title: "json"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::utils::json"
+ parent: "signalwire::utils"
+ module: "signalwire"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `json`
+
+## Signature
+
+```cpp
+typedef nlohmann::json json
+```
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 30.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/full-validation-available.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/full-validation-available.mdx
new file mode 100644
index 0000000000..f0337c5527
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/full-validation-available.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/full-validation-available"
+title: "full_validation_available"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::full_validation_available"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `full_validation_available`
+
+Whether full JSON Schema validation is wired up. Mirrors Python's full\_validation\_available property.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+bool full_validation_available() const
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 69.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/generate-method-body.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/generate-method-body.mdx
new file mode 100644
index 0000000000..eb7f6a4668
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/generate-method-body.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/generate-method-body"
+title: "generate_method_body"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::generate_method_body"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `generate_method_body`
+
+Generate a Python-style method body string for a verb. Mirrors Python's generate\_method\_body(verb\_name).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string generate_method_body(const std::string & verb_name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 109.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/generate-method-signature.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/generate-method-signature.mdx
new file mode 100644
index 0000000000..9857028ad6
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/generate-method-signature.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/generate-method-signature"
+title: "generate_method_signature"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::generate_method_signature"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `generate_method_signature`
+
+Generate a Python-style method signature string for a verb. Mirrors Python's generate\_method\_signature(verb\_name).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::string generate_method_signature(const std::string & verb_name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::string`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 105.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-all-verb-names.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-all-verb-names.mdx
new file mode 100644
index 0000000000..ca26df0c41
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-all-verb-names.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/get-all-verb-names"
+title: "get_all_verb_names"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::get_all_verb_names"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `get_all_verb_names`
+
+Sorted list of all known verb names. Mirrors Python's get\_all\_verb\_names().
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_all_verb_names() const
+```
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 76.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-parameters.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-parameters.mdx
new file mode 100644
index 0000000000..45f2c82d17
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-parameters.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/get-verb-parameters"
+title: "get_verb_parameters"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::get_verb_parameters"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `get_verb_parameters`
+
+Parameter-definition block used by code-gen tooling. Mirrors Python's get\_verb\_parameters(verb\_name).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json get_verb_parameters(const std::string & verb_name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 88.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-properties.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-properties.mdx
new file mode 100644
index 0000000000..520b54796f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-properties.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/get-verb-properties"
+title: "get_verb_properties"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::get_verb_properties"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `get_verb_properties`
+
+The properties\[verb\_name] block for a verb, or empty when unknown. Mirrors Python's get\_verb\_properties(verb\_name).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+json get_verb_properties(const std::string & verb_name) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 80.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-required-properties.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-required-properties.mdx
new file mode 100644
index 0000000000..45b6097862
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/get-verb-required-properties.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/get-verb-required-properties"
+title: "get_verb_required_properties"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::get_verb_required_properties"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `get_verb_required_properties`
+
+The required list for a verb, or empty when unknown / not specified. Mirrors Python's get\_verb\_required\_properties(verb\_name).
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::vector< std::string > get_verb_required_properties(
+ const std::string & verb_name
+) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::vector< std::string >`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 84.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/index.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/index.mdx
new file mode 100644
index 0000000000..36eb23577a
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/index.mdx
@@ -0,0 +1,78 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils"
+title: "SchemaUtils"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils"
+ parent: "signalwire::utils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `SchemaUtils`
+
+SchemaUtils — C++ port of signalwire.utils.schema\_utils.SchemaUtils.
+
+## Signature
+
+```cpp
+class signalwire::utils::SchemaUtils
+```
+
+## Methods
+
+
+
+ Whether full JSON Schema validation is wired up. Mirrors Python's full\_validation\_available property.
+
+
+
+ Generate a Python-style method body string for a verb. Mirrors Python's generate\_method\_body(verb\_name).
+
+
+
+ Generate a Python-style method signature string for a verb. Mirrors Python's generate\_method\_signature(verb\_name).
+
+
+
+ Sorted list of all known verb names. Mirrors Python's get\_all\_verb\_names().
+
+
+
+ Parameter-definition block used by code-gen tooling. Mirrors Python's get\_verb\_parameters(verb\_name).
+
+
+
+ The properties\[verb\_name] block for a verb, or empty when unknown. Mirrors Python's get\_verb\_properties(verb\_name).
+
+
+
+ The required list for a verb, or empty when unknown / not specified. Mirrors Python's get\_verb\_required\_properties(verb\_name).
+
+
+
+ Read and parse the JSON Schema. Mirrors Python's load\_schema().
+
+
+
+ Construct a SchemaUtils. Mirrors Python's SchemaUtils(schema\_path=None, schema\_validation=True). Pass schema\_path = "" to use the embedded schema.
+
+
+
+ Validate a complete SWML document. Mirrors Python's validate\_document(document). Returns (false, \["Schema validator not initialized"]) when no full validator is wired in.
+
+
+
+ Validate a verb config against the schema. Mirrors Python's validate\_verb(verb\_name, verb\_config). Returns (valid, errors) — Python's Tuple\[bool, List\[str]].
+
+
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 60.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/load-schema.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/load-schema.mdx
new file mode 100644
index 0000000000..41b35e9c8f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/load-schema.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/load-schema"
+title: "load_schema"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::load_schema"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `load_schema`
+
+Read and parse the JSON Schema. Mirrors Python's load\_schema().
+
+## Signature
+
+```cpp
+json load_schema()
+```
+
+## Returns
+
+`json`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 72.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/schema-utils.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/schema-utils.mdx
new file mode 100644
index 0000000000..972c0feb6c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/schema-utils.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/schema-utils"
+title: "SchemaUtils"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::SchemaUtils"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `SchemaUtils`
+
+Construct a SchemaUtils. Mirrors Python's SchemaUtils(schema\_path=None, schema\_validation=True). Pass schema\_path = "" to use the embedded schema.
+
+## Signature
+
+```cpp
+void SchemaUtils(
+ const std::string & schema_path = "",
+ bool schema_validation = true
+)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 65.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/validate-document.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/validate-document.mdx
new file mode 100644
index 0000000000..bda39131ea
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/validate-document.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/validate-document"
+title: "validate_document"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::validate_document"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `validate_document`
+
+Validate a complete SWML document. Mirrors Python's validate\_document(document). Returns (false, \["Schema validator not initialized"]) when no full validator is wired in.
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::pair< bool, std::vector< std::string > > validate_document(
+ const json & document
+) const
+```
+
+## Parameters
+
+
+
+## Returns
+
+`std::pair< bool, std::vector< std::string > >`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 101.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/validate-verb.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/validate-verb.mdx
new file mode 100644
index 0000000000..a7db41dc22
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-utils/validate-verb.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-utils/validate-verb"
+title: "validate_verb"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaUtils::validate_verb"
+ parent: "signalwire::utils::SchemaUtils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `validate_verb`
+
+Validate a verb config against the schema. Mirrors Python's validate\_verb(verb\_name, verb\_config). Returns (valid, errors) — Python's Tuple\[bool, List\[str]].
+
+**Modifiers:** `const`
+
+## Signature
+
+```cpp
+std::pair< bool, std::vector< std::string > > validate_verb(
+ const std::string & verb_name,
+ const json & verb_config
+) const
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`std::pair< bool, std::vector< std::string > >`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 94.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/errors.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/errors.mdx
new file mode 100644
index 0000000000..694a43155e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/errors.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-validation-error/errors"
+title: "errors"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaValidationError::errors"
+ parent: "signalwire::utils::SchemaValidationError"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `errors`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::vector< std::string > & errors() const
+```
+
+## Returns
+
+`const std::vector< std::string > &`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 42.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/index.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/index.mdx
new file mode 100644
index 0000000000..bba45bf1b3
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-validation-error"
+title: "SchemaValidationError"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaValidationError"
+ parent: "signalwire::utils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `SchemaValidationError`
+
+SchemaValidationError — C++ port of signalwire.utils.schema\_utils.SchemaValidationError.
+
+## Signature
+
+```cpp
+class signalwire::utils::SchemaValidationError : std::runtime_error
+```
+
+## Inheritance
+
+**Extends:** `std::runtime_error`
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 34.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/schema-validation-error.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/schema-validation-error.mdx
new file mode 100644
index 0000000000..4369ef9c96
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/schema-validation-error.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-validation-error/schema-validation-error"
+title: "SchemaValidationError"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaValidationError::SchemaValidationError"
+ parent: "signalwire::utils::SchemaValidationError"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `SchemaValidationError`
+
+**Modifiers:** `inline`
+
+## Signature
+
+```cpp
+void SchemaValidationError(
+ std::string verb_name,
+ std::vector< std::string > errors
+)
+```
+
+## Parameters
+
+
+
+
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 36.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/verb-name.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/verb-name.mdx
new file mode 100644
index 0000000000..c2b98b707f
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/schema-validation-error/verb-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/utils/schema-validation-error/verb-name"
+title: "verb_name"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "cpp"
+ qualified_name: "signalwire::utils::SchemaValidationError::verb_name"
+ parent: "signalwire::utils::SchemaValidationError"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `verb_name`
+
+**Modifiers:** `const` `inline`
+
+## Signature
+
+```cpp
+const std::string & verb_name() const
+```
+
+## Returns
+
+`const std::string &`
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 41.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/index.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/index.mdx
new file mode 100644
index 0000000000..b621382bb2
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/index.mdx
@@ -0,0 +1,53 @@
+---
+slug: "/reference/cpp/signalwire/utils/url-validator"
+title: "url_validator"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "signalwire::utils::url_validator"
+ parent: "signalwire::utils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/url_validator.hpp"
+---
+# `url_validator`
+
+## Signature
+
+```cpp
+namespace signalwire::utils::url_validator
+```
+
+## Constants
+
+
+ Cross-port SSRF block list. Order matches the Python reference for ease of cross-language review.
+
+
+## Functions
+
+
+
+ Install a custom resolver (for tests). Pass nullptr to clear.
+
+
+
+ Validate that a URL is safe to fetch. Mirrors Python's signalwire.utils.url\_validator.validate\_url(url, allow\_private=False) -> bool.
+
+
+
+## Type Aliases
+
+
+
+ Pluggable resolver. Tests inject a callable to keep the suite hermetic; production resolves via getaddrinfo. Returns nullopt on resolution failure. The signature: function(hostname) -> optional\> of IP-string addresses.
+
+
+
+## Source
+
+[`include/signalwire/utils/url_validator.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/url_validator.hpp)
+
+Line 16.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/resolver-fn.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/resolver-fn.mdx
new file mode 100644
index 0000000000..ea09990318
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/resolver-fn.mdx
@@ -0,0 +1,31 @@
+---
+slug: "/reference/cpp/signalwire/utils/url-validator/resolver-fn"
+title: "ResolverFn"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "type_alias"
+ language: "cpp"
+ qualified_name: "signalwire::utils::url_validator::ResolverFn"
+ parent: "signalwire::utils::url_validator"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/url_validator.hpp"
+ visibility: "public"
+---
+# `ResolverFn`
+
+Pluggable resolver. Tests inject a callable to keep the suite hermetic; production resolves via getaddrinfo. Returns nullopt on resolution failure.
+The signature: function(hostname) -> optional\> of IP-string addresses.
+
+## Signature
+
+```cpp
+typedef std::function< std::optional< std::vector< std::string > >(const std::string &)> ResolverFn
+```
+
+## Source
+
+[`include/signalwire/utils/url_validator.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/url_validator.hpp)
+
+Line 32.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/set-resolver.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/set-resolver.mdx
new file mode 100644
index 0000000000..ec43a7b654
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/set-resolver.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/cpp/signalwire/utils/url-validator/set-resolver"
+title: "_set_resolver"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::utils::url_validator::_set_resolver"
+ parent: "signalwire::utils::url_validator"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/utils/url_validator.cpp"
+ visibility: "public"
+---
+# `_set_resolver`
+
+Install a custom resolver (for tests). Pass nullptr to clear.
+
+## Signature
+
+```cpp
+void _set_resolver(ResolverFn resolver)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`src/utils/url_validator.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/utils/url_validator.cpp)
+
+Line 185.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/validate-url.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/validate-url.mdx
new file mode 100644
index 0000000000..76906f9def
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/url-validator/validate-url.mdx
@@ -0,0 +1,55 @@
+---
+slug: "/reference/cpp/signalwire/utils/url-validator/validate-url"
+title: "validate_url"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "function"
+ language: "cpp"
+ qualified_name: "signalwire::utils::url_validator::validate_url"
+ parent: "signalwire::utils::url_validator"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/src/utils/url_validator.cpp"
+ visibility: "public"
+---
+# `validate_url`
+
+Validate that a URL is safe to fetch.
+Mirrors Python's signalwire.utils.url\_validator.validate\_url(url, allow\_private=False) -> bool.
+
+url
+
+URL to validate.
+
+allow\_private
+
+When true, bypass the IP-blocklist check.
+
+True iff the URL is safe to fetch.
+
+## Signature
+
+```cpp
+bool validate_url(const std::string & url, bool allow_private = false)
+```
+
+## Parameters
+
+
+ URL to validate.
+
+
+
+ When true, bypass the IP-blocklist check.
+
+
+## Returns
+
+`bool` — True iff the URL is safe to fetch.
+
+## Source
+
+[`src/utils/url_validator.cpp`](https://github.com/signalwire/signalwire-cpp/blob/main/src/utils/url_validator.cpp)
+
+Line 189.
diff --git a/fern/products/sdk-reference/cpp/signalwire/utils/verb-info/index.mdx b/fern/products/sdk-reference/cpp/signalwire/utils/verb-info/index.mdx
new file mode 100644
index 0000000000..e285cfb12e
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/signalwire/utils/verb-info/index.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/cpp/signalwire/utils/verb-info"
+title: "VerbInfo"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "cpp"
+ qualified_name: "signalwire::utils::VerbInfo"
+ parent: "signalwire::utils"
+ module: "signalwire.utils"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp"
+ visibility: "public"
+---
+# `VerbInfo`
+
+Verb metadata extracted from the schema.
+
+## Signature
+
+```cpp
+struct signalwire::utils::VerbInfo
+```
+
+## Properties
+
+
+
+
+
+
+
+## Source
+
+[`include/signalwire/utils/schema_utils.hpp`](https://github.com/signalwire/signalwire-cpp/blob/main/include/signalwire/utils/schema_utils.hpp)
+
+Line 52.
diff --git a/fern/products/sdk-reference/cpp/std/index.mdx b/fern/products/sdk-reference/cpp/std/index.mdx
new file mode 100644
index 0000000000..34b84a663c
--- /dev/null
+++ b/fern/products/sdk-reference/cpp/std/index.mdx
@@ -0,0 +1,25 @@
+---
+slug: "/reference/cpp/std"
+title: "std"
+sdk_label: "C++ SDK"
+icon: "cpp"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "cpp"
+ qualified_name: "std"
+ source_url: "https://github.com/signalwire/signalwire-cpp/blob/main/[generated]"
+---
+# `std`
+
+## Signature
+
+```cpp
+namespace std
+```
+
+## Source
+
+[`[generated]`](https://github.com/signalwire/signalwire-cpp/blob/main/[generated])
+
+Line 1.
diff --git a/fern/products/sdk-reference/dotnet/_meta.json b/fern/products/sdk-reference/dotnet/_meta.json
new file mode 100644
index 0000000000..e7189f19a5
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/_meta.json
@@ -0,0 +1,10 @@
+{
+ "language": "dotnet",
+ "sdk_name": "dotnet-sdk",
+ "version": null,
+ "source_repo": "https://github.com/signalwire/signalwire-dotnet",
+ "format": "mdx",
+ "platform": "fern",
+ "base_slug": "/reference/dotnet",
+ "item_count": 1295
+}
\ No newline at end of file
diff --git a/fern/products/sdk-reference/dotnet/index.mdx b/fern/products/sdk-reference/dotnet/index.mdx
new file mode 100644
index 0000000000..3a9b85240c
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/index.mdx
@@ -0,0 +1,30 @@
+---
+title: ".NET SDK"
+slug: "/reference/dotnet"
+lustri:
+ auto_generated: true
+ language: "dotnet"
+ kind: "sdk"
+---
+# .NET SDK Reference
+
+## Modules
+
+- [`SignalWire.Agent`](/reference/dotnet/signal-wire.agent)
+- [`SignalWire.Contexts`](/reference/dotnet/signal-wire.contexts)
+- [`SignalWire.DataMap`](/reference/dotnet/signal-wire.data-map)
+- [`SignalWire.Logging`](/reference/dotnet/signal-wire.logging)
+- [`SignalWire.POM`](/reference/dotnet/signal-wire.pom)
+- [`SignalWire.Prefabs`](/reference/dotnet/signal-wire.prefabs)
+- [`SignalWire.Relay`](/reference/dotnet/signal-wire.relay)
+- [`SignalWire.REST`](/reference/dotnet/signal-wire.rest)
+- [`SignalWire.REST.Namespaces`](/reference/dotnet/signal-wire.rest.namespaces)
+- [`SignalWire.Security`](/reference/dotnet/signal-wire.security)
+- [`SignalWire.Server`](/reference/dotnet/signal-wire.server)
+- [`SignalWire.Serverless`](/reference/dotnet/signal-wire.serverless)
+- [`SignalWire.Skills`](/reference/dotnet/signal-wire.skills)
+- [`SignalWire.Skills.Builtin`](/reference/dotnet/signal-wire.skills.builtin)
+- [`SignalWire.SWAIG`](/reference/dotnet/signal-wire.swaig)
+- [`SignalWire.SWML`](/reference/dotnet/signal-wire.swml)
+- [`SignalWire.Utils`](/reference/dotnet/signal-wire.utils)
+
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-answer-verb.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-answer-verb.mdx
new file mode 100644
index 0000000000..9fe0a44c54
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-answer-verb.mdx
@@ -0,0 +1,58 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-answer-verb"
+title: "AddAnswerVerb"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddAnswerVerb(string, System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddAnswerVerb`
+
+Alias for <xref href="SignalWire.Agent.AgentBase.AddPostAnswerVerb(System.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.Object%7d)" data-throw-if-not-resolved="false"></xref>.
+
+## Signature
+
+
+
+ ```dotnet
+ public AgentBase AddAnswerVerb(string verb, Dictionary config)
+ ```
+
+
+
+ ```dotnet
+ public AgentBase AddAnswerVerb(Dictionary config)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Returns (Overload 1)
+
+`SignalWire.Agent.AgentBase`
+
+## Returns (Overload 2)
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 812.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-function-include-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-function-include-dictionary-string-object.mdx
new file mode 100644
index 0000000000..e856255b00
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-function-include-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-function-include-dictionary-string-object"
+title: "AddFunctionInclude(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddFunctionInclude(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddFunctionInclude(Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase AddFunctionInclude(Dictionary include)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 771.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-hint-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-hint-string.mdx
new file mode 100644
index 0000000000..bc5e4c0eb0
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-hint-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-hint-string"
+title: "AddHint(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddHint(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddHint(string)`
+
+## Signature
+
+```dotnet
+public AgentBase AddHint(string hint)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 480.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-hints-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-hints-list-string.mdx
new file mode 100644
index 0000000000..02aa025a94
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-hints-list-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-hints-list-string"
+title: "AddHints(List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddHints(System.Collections.Generic.List)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddHints(List)`
+
+## Signature
+
+```dotnet
+public AgentBase AddHints(List hints)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 486.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-internal-filler.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-internal-filler.mdx
new file mode 100644
index 0000000000..c4b4e548b7
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-internal-filler.mdx
@@ -0,0 +1,65 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-internal-filler"
+title: "AddInternalFiller"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddInternalFiller(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddInternalFiller`
+
+Add internal fillers for a single internal function and language.
+
+<p>See
+<xref href="SignalWire.Agent.AgentBase.SetInternalFillers(System.Collections.Generic.Dictionary%7bSystem.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.Collections.Generic.List%7bSystem.String%7d%7d%7d)" data-throw-if-not-resolved="false"></xref>
+for the complete list of supported function names and what fillers
+do. Names outside the supported set log a warning.</p>
+
+## Signature
+
+
+
+ ```dotnet
+ public AgentBase AddInternalFiller(string filler)
+ ```
+
+
+
+ ```dotnet
+ public AgentBase AddInternalFiller(string functionName, string languageCode, List fillers)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+## Parameters (Overload 2)
+
+
+
+
+
+
+
+## Returns (Overload 1)
+
+`SignalWire.Agent.AgentBase`
+
+## Returns (Overload 2)
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 730.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-language.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-language.mdx
new file mode 100644
index 0000000000..5a55f4e7b6
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-language.mdx
@@ -0,0 +1,78 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-language"
+title: "AddLanguage"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddLanguage(string, string, string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddLanguage`
+
+Add a language configuration with optional per-language engine-specific
+params (e.g. voice stability/similarity for ElevenLabs, model knobs).
+The <code>params</code> key is only emitted into SWML when non-empty, so
+existing language entries stay byte-identical when no params are passed.
+Mirrors signalwire-python's <code>AIConfigMixin.add\_language(params=...)</code>.
+
+## Signature
+
+
+
+ ```dotnet
+ public AgentBase AddLanguage(string name, string code, string voice)
+ ```
+
+
+
+ ```dotnet
+ public AgentBase AddLanguage(string name, string code, string voice, Dictionary? languageParams)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+
+
+
+
+## Parameters (Overload 2)
+
+
+ Language name (e.g. "English").
+
+
+
+ Language code (e.g. "en-US").
+
+
+
+ TTS voice name or combined "engine.voice:model".
+
+
+
+ Optional engine-specific params dict. <code>null</code> or empty omits the SWML <code>params</code> key.
+
+
+## Returns (Overload 1)
+
+`SignalWire.Agent.AgentBase`
+
+## Returns (Overload 2)
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 498.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pattern-hint-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pattern-hint-string.mdx
new file mode 100644
index 0000000000..04fafb7698
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pattern-hint-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-pattern-hint-string"
+title: "AddPatternHint(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddPatternHint(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddPatternHint(string)`
+
+## Signature
+
+```dotnet
+public AgentBase AddPatternHint(string pattern)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 492.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-post-ai-verb-string-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-post-ai-verb-string-dictionary-string-object.mdx
new file mode 100644
index 0000000000..efdc9e7f80
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-post-ai-verb-string-dictionary-string-object.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-post-ai-verb-string-dictionary-string-object"
+title: "AddPostAiVerb(string, Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddPostAiVerb(string, System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddPostAiVerb(string, Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase AddPostAiVerb(string verb, Dictionary config)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 825.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-post-answer-verb-string-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-post-answer-verb-string-dictionary-string-object.mdx
new file mode 100644
index 0000000000..ab4bb9ecc4
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-post-answer-verb-string-dictionary-string-object.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-post-answer-verb-string-dictionary-string-object"
+title: "AddPostAnswerVerb(string, Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddPostAnswerVerb(string, System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddPostAnswerVerb(string, Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase AddPostAnswerVerb(string verb, Dictionary config)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 805.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pre-answer-verb-string-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pre-answer-verb-string-dictionary-string-object.mdx
new file mode 100644
index 0000000000..8aa11b7b31
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pre-answer-verb-string-dictionary-string-object.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-pre-answer-verb-string-dictionary-string-object"
+title: "AddPreAnswerVerb(string, Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddPreAnswerVerb(string, System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddPreAnswerVerb(string, Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase AddPreAnswerVerb(string verb, Dictionary config)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 799.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pronunciation-string-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pronunciation-string-string-string.mdx
new file mode 100644
index 0000000000..27eb9a10ba
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-pronunciation-string-string-string.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-pronunciation-string-string-string"
+title: "AddPronunciation(string, string, string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddPronunciation(string, string, string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddPronunciation(string, string, string)`
+
+## Signature
+
+```dotnet
+public AgentBase AddPronunciation(string replace, string with, string ignore = "")
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 594.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-skill-string-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-skill-string-dictionary-string-object.mdx
new file mode 100644
index 0000000000..156efca3c0
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-skill-string-dictionary-string-object.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-skill-string-dictionary-string-object"
+title: "AddSkill(string, Dictionary?)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddSkill(string, System.Collections.Generic.Dictionary?)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddSkill(string, Dictionary?)`
+
+Load and activate a skill by name. Resolves through <xref href="SignalWire.Skills.SkillRegistry" data-throw-if-not-resolved="false"></xref>,
+validates env vars, calls Setup/RegisterTools, and merges hints/globalData/prompts.
+
+## Signature
+
+```dotnet
+public AgentBase AddSkill(string name, Dictionary? parameters = null)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 927.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-swaig-query-params-dictionary-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-swaig-query-params-dictionary-string-string.mdx
new file mode 100644
index 0000000000..f3a5daa1ac
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/add-swaig-query-params-dictionary-string-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/add-swaig-query-params-dictionary-string-string"
+title: "AddSwaigQueryParams(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AddSwaigQueryParams(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AddSwaigQueryParams(Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase AddSwaigQueryParams(Dictionary parameters)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1008.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/agent-base-agent-options.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/agent-base-agent-options.mdx
new file mode 100644
index 0000000000..bf7e981c52
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/agent-base-agent-options.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/agent-base-agent-options"
+title: "AgentBase(AgentOptions)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AgentBase(SignalWire.Agent.AgentOptions)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AgentBase(AgentOptions)`
+
+## Signature
+
+```dotnet
+public AgentBase(AgentOptions options)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 145.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/auto-map-sip-usernames.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/auto-map-sip-usernames.mdx
new file mode 100644
index 0000000000..c7868462df
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/auto-map-sip-usernames.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/auto-map-sip-usernames"
+title: "AutoMapSipUsernames()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.AutoMapSipUsernames()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AutoMapSipUsernames()`
+
+Enable auto-mapping of SIP usernames to this agent's
+route (Python parity: `agent.auto_map_sip_usernames()`).
+Chainable.
+
+## Signature
+
+```dotnet
+public AgentBase AutoMapSipUsernames()
+```
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 914.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/build-ai-verb-dictionary-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/build-ai-verb-dictionary-string-string.mdx
new file mode 100644
index 0000000000..de9a510b1c
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/build-ai-verb-dictionary-string-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/build-ai-verb-dictionary-string-string"
+title: "BuildAiVerb(Dictionary?)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.BuildAiVerb(System.Collections.Generic.Dictionary?)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `BuildAiVerb(Dictionary?)`
+
+Build the AI verb configuration block.
+
+## Signature
+
+```dotnet
+public Dictionary BuildAiVerb(Dictionary? headers = null)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1146.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-post-ai-verbs.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-post-ai-verbs.mdx
new file mode 100644
index 0000000000..2098199af9
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-post-ai-verbs.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/clear-post-ai-verbs"
+title: "ClearPostAiVerbs()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.ClearPostAiVerbs()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `ClearPostAiVerbs()`
+
+## Signature
+
+```dotnet
+public AgentBase ClearPostAiVerbs()
+```
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 843.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-post-answer-verbs.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-post-answer-verbs.mdx
new file mode 100644
index 0000000000..b434d56c1b
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-post-answer-verbs.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/clear-post-answer-verbs"
+title: "ClearPostAnswerVerbs()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.ClearPostAnswerVerbs()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `ClearPostAnswerVerbs()`
+
+## Signature
+
+```dotnet
+public AgentBase ClearPostAnswerVerbs()
+```
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 837.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-pre-answer-verbs.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-pre-answer-verbs.mdx
new file mode 100644
index 0000000000..7e8ec9ef62
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-pre-answer-verbs.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/clear-pre-answer-verbs"
+title: "ClearPreAnswerVerbs()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.ClearPreAnswerVerbs()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `ClearPreAnswerVerbs()`
+
+## Signature
+
+```dotnet
+public AgentBase ClearPreAnswerVerbs()
+```
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 831.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-swaig-query-params.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-swaig-query-params.mdx
new file mode 100644
index 0000000000..5403b0a771
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clear-swaig-query-params.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/clear-swaig-query-params"
+title: "ClearSwaigQueryParams()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.ClearSwaigQueryParams()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `ClearSwaigQueryParams()`
+
+## Signature
+
+```dotnet
+public AgentBase ClearSwaigQueryParams()
+```
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1017.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clone-for-request.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clone-for-request.mdx
new file mode 100644
index 0000000000..dd09445a59
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/clone-for-request.mdx
@@ -0,0 +1,35 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/clone-for-request"
+title: "CloneForRequest()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.CloneForRequest()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `CloneForRequest()`
+
+Create a deep copy of this agent for per-request customisation.
+Collections are deeply copied; callbacks are preserved by reference.
+
+## Signature
+
+```dotnet
+public AgentBase CloneForRequest()
+```
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1429.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/contexts.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/contexts.mdx
new file mode 100644
index 0000000000..89efd2dc46
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/contexts.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/contexts"
+title: "Contexts()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.Contexts()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `Contexts()`
+
+Alias for <xref href="SignalWire.Agent.AgentBase.DefineContexts" data-throw-if-not-resolved="false"></xref>.
+
+## Signature
+
+```dotnet
+public ContextBuilder Contexts()
+```
+
+## Returns
+
+`SignalWire.Contexts.ContextBuilder`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 871.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/create-tool-token-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/create-tool-token-string-string.mdx
new file mode 100644
index 0000000000..2f48c72ae0
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/create-tool-token-string-string.mdx
@@ -0,0 +1,41 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/create-tool-token-string-string"
+title: "CreateToolToken(string, string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.CreateToolToken(string, string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `CreateToolToken(string, string)`
+
+Create a per-call SWAIG-function token. Returns empty
+string on failure. (Python parity: `StateMixin._create_tool_token`.)
+
+## Signature
+
+```dotnet
+public string CreateToolToken(string toolName, string callId)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`string`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 441.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/define-contexts.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/define-contexts.mdx
new file mode 100644
index 0000000000..992bc56895
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/define-contexts.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/define-contexts"
+title: "DefineContexts()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.DefineContexts()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `DefineContexts()`
+
+Return the ContextBuilder, creating it lazily on first access.
+The builder is wired to report registered SWAIG tool names back
+so its <xref href="SignalWire.Contexts.ContextBuilder.Validate" data-throw-if-not-resolved="false"></xref> can check for
+collisions with reserved native tool names (<code>next\_step</code>, <code>change\_context</code>, <code>gather\_submit</code>).
+
+## Signature
+
+```dotnet
+public ContextBuilder DefineContexts()
+```
+
+## Returns
+
+`SignalWire.Contexts.ContextBuilder`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 860.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/enable-debug-events-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/enable-debug-events-string.mdx
new file mode 100644
index 0000000000..a4c5d9fdfe
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/enable-debug-events-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/enable-debug-events-string"
+title: "EnableDebugEvents(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.EnableDebugEvents(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `EnableDebugEvents(string)`
+
+## Signature
+
+```dotnet
+public AgentBase EnableDebugEvents(string level = "all")
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 765.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/enable-sip-routing-bool-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/enable-sip-routing-bool-string.mdx
new file mode 100644
index 0000000000..59d0920d2d
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/enable-sip-routing-bool-string.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/enable-sip-routing-bool-string"
+title: "EnableSipRouting(bool, string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.EnableSipRouting(bool, string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `EnableSipRouting(bool, string)`
+
+Enable SIP routing on this agent. `autoMap` opts into Python's
+auto-mapping behaviour (sip\_username = agent name); `path` lets
+the caller pin a specific SIP route prefix.
+
+## Signature
+
+```dotnet
+public AgentBase EnableSipRouting(bool autoMap = false, string path = "")
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1046.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-contexts.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-contexts.mdx
new file mode 100644
index 0000000000..16bef27078
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-contexts.mdx
@@ -0,0 +1,35 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/get-contexts"
+title: "GetContexts()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.GetContexts()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `GetContexts()`
+
+Return the contexts configuration if defined, else null.
+(Python parity: `PromptManager.get_contexts`.)
+
+## Signature
+
+```dotnet
+public Dictionary? GetContexts()
+```
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 392.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-language-params-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-language-params-string.mdx
new file mode 100644
index 0000000000..e1f867f1f3
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-language-params-string.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/get-language-params-string"
+title: "GetLanguageParams(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.GetLanguageParams(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `GetLanguageParams(string)`
+
+Read the per-language <code>params</code> dict for a previously-added
+language. Returns <code>null</code> when the params were never set or
+when the code is unknown — no exception path, matching Python.
+
+## Signature
+
+```dotnet
+public Dictionary? GetLanguageParams(string code)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 571.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-name.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-name.mdx
new file mode 100644
index 0000000000..92313f3095
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-name.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/get-name"
+title: "GetName()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.GetName()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `GetName()`
+
+Return the agent name (Python parity: `agent.get_name()`).
+
+## Signature
+
+```dotnet
+public string GetName()
+```
+
+## Returns
+
+`string`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 905.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-post-prompt.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-post-prompt.mdx
new file mode 100644
index 0000000000..bda4311672
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-post-prompt.mdx
@@ -0,0 +1,35 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/get-post-prompt"
+title: "GetPostPrompt()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.GetPostPrompt()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `GetPostPrompt()`
+
+Return the post-prompt text if set, else null.
+(Python parity: `PromptManager.get_post_prompt`.)
+
+## Signature
+
+```dotnet
+public string? GetPostPrompt()
+```
+
+## Returns
+
+`string`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 388.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-prompt-sections.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-prompt-sections.mdx
new file mode 100644
index 0000000000..7c938e7d5f
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-prompt-sections.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/get-prompt-sections"
+title: "GetPromptSections()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.GetPromptSections()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `GetPromptSections()`
+
+The raw POM section dicts. Mirrors how the dotnet
+agent has historically stored its prompt-object data and how
+SWML rendering consumes it. Read-only snapshot.
+
+## Signature
+
+```dotnet
+public IReadOnlyList> GetPromptSections()
+```
+
+## Returns
+
+`IReadOnlyList>`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 437.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-prompt.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-prompt.mdx
new file mode 100644
index 0000000000..827250baa0
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-prompt.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/get-prompt"
+title: "GetPrompt()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.GetPrompt()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `GetPrompt()`
+
+Return the prompt payload: POM array if enabled and populated, otherwise raw text.
+
+## Signature
+
+```dotnet
+public object GetPrompt()
+```
+
+## Returns
+
+`object`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 373.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-raw-prompt.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-raw-prompt.mdx
new file mode 100644
index 0000000000..db6092f0ab
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-raw-prompt.mdx
@@ -0,0 +1,35 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/get-raw-prompt"
+title: "GetRawPrompt()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.GetRawPrompt()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `GetRawPrompt()`
+
+Return the raw prompt text if set, else null.
+(Python parity: `PromptManager.get_raw_prompt`.)
+
+## Signature
+
+```dotnet
+public string? GetRawPrompt()
+```
+
+## Returns
+
+`string`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 384.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-skill-manager.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-skill-manager.mdx
new file mode 100644
index 0000000000..bde9b51ee9
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/get-skill-manager.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/get-skill-manager"
+title: "GetSkillManager()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.GetSkillManager()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `GetSkillManager()`
+
+Return the skill manager, creating it lazily on first access.
+
+## Signature
+
+```dotnet
+public SkillManager GetSkillManager()
+```
+
+## Returns
+
+`SignalWire.Skills.SkillManager`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 895.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-post-prompt-dictionary-string-object-dictionary-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-post-prompt-dictionary-string-object-dictionary-string-string.mdx
new file mode 100644
index 0000000000..1b2bcb172a
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-post-prompt-dictionary-string-object-dictionary-string-string.mdx
@@ -0,0 +1,42 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/handle-post-prompt-dictionary-string-object-dictionary-string-string"
+title: "HandlePostPrompt(Dictionary?, Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.HandlePostPrompt(System.Collections.Generic.Dictionary?, System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "protected"
+---
+# `HandlePostPrompt(Dictionary?, Dictionary)`
+
+Handle the post-prompt callback.
+
+**Modifiers:** `override`
+
+## Signature
+
+```dotnet
+protected override (int, Dictionary, string) HandlePostPrompt(Dictionary? requestData, Dictionary headers)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`System.ValueTuple,string>`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1384.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-request-string-string-dictionary-string-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-request-string-string-dictionary-string-string-string.mdx
new file mode 100644
index 0000000000..72d967e9e6
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-request-string-string-dictionary-string-string-string.mdx
@@ -0,0 +1,62 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/handle-request-string-string-dictionary-string-string-string"
+title: "HandleRequest(string, string, Dictionary, string?)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.HandleRequest(string, string, System.Collections.Generic.Dictionary, string?)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `HandleRequest(string, string, Dictionary, string?)`
+
+Override the base dispatch to enforce webhook signature validation on
+POST requests targeting the signed routes (<code>/</code>, <code>/swaig</code>, <code>/post\_prompt</code>) when <xref href="SignalWire.Agent.AgentBase.SigningKey" data-throw-if-not-resolved="false"></xref> is configured.
+
+<p>Validation is gated behind Basic Auth: callers must already
+satisfy the SWMLService basic-auth check (it always runs first in
+<xref href="SignalWire.SWML.Service.HandleRequest(System.String%2cSystem.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.String%7d%2cSystem.String)" data-throw-if-not-resolved="false"></xref>) before we even look at
+signatures, matching Python where <code>signing_key</code> is layered on
+top of <code>basic_auth</code>.</p>
+
+<p>On invalid signature: returns 403 directly without dispatching
+to the agent's POST handler. On valid signature (or non-POST, or
+non-signed route): delegates to <xref href="SignalWire.SWML.Service.HandleRequest(System.String%2cSystem.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.String%7d%2cSystem.String)" data-throw-if-not-resolved="false"></xref>.
+</p>
+
+<p>(Python parity: <code>web_mixin._register_routes</code> wraps the
+signed POST routes in a FastAPI <code>Depends(sig_dep)</code> dependency
+when <code>signing_key</code> is set; this is the .NET equivalent.)</p>
+
+**Modifiers:** `override`
+
+## Signature
+
+```dotnet
+public override (int Status, Dictionary Headers, string Body) HandleRequest(string method, string path, Dictionary headers, string? body)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`System.ValueTuple,string>`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1275.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-swml-request-string-dictionary-string-object-dictionary-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-swml-request-string-dictionary-string-object-dictionary-string-string.mdx
new file mode 100644
index 0000000000..2acafa4364
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/handle-swml-request-string-dictionary-string-object-dictionary-string-string.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/handle-swml-request-string-dictionary-string-object-dictionary-string-string"
+title: "HandleSwmlRequest(string, Dictionary?, Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.HandleSwmlRequest(string, System.Collections.Generic.Dictionary?, System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "protected"
+---
+# `HandleSwmlRequest(string, Dictionary?, Dictionary)`
+
+Handle the SWML document request. If a dynamic-config callback is registered,
+clone the agent, pass the clone to the callback, and render from the clone.
+
+**Modifiers:** `override`
+
+## Signature
+
+```dotnet
+protected override (int, Dictionary, string) HandleSwmlRequest(string method, Dictionary? requestData, Dictionary headers)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`System.ValueTuple,string>`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1350.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/has-skill-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/has-skill-string.mdx
new file mode 100644
index 0000000000..e2f9fea692
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/has-skill-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/has-skill-string"
+title: "HasSkill(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.HasSkill(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `HasSkill(string)`
+
+Check if a skill is loaded by instance key.
+
+## Signature
+
+```dotnet
+public bool HasSkill(string name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 969.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/index.mdx
new file mode 100644
index 0000000000..0d26c72af5
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/index.mdx
@@ -0,0 +1,280 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base"
+title: "AgentBase"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase"
+ parent: "SignalWire.Agent"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AgentBase`
+
+AI agent built on <xref href="SignalWire.SWML.Service" data-throw-if-not-resolved="false"></xref>. Provides prompt management, SWAIG tool dispatch,
+context switching, skill stubs, and a 5-phase SWML rendering pipeline.
+All configuration methods return <code>this</code> for fluent chaining.
+
+## Signature
+
+```dotnet
+public class AgentBase : Service
+```
+
+## Inheritance
+
+**Extends:** [SignalWire.SWML.Service](/reference/dotnet/signal-wire.swml/service)
+
+## Properties
+
+
+
+
+ True iff signature validation is enabled — i.e. either the <code>SigningKey</code> option or <code>SIGNALWIRE\_SIGNING\_KEY</code> env var was set at construction time. (Python parity: <code>bool(agent.signing\_key)</code>.)
+
+
+
+ The prompt as a <xref href="SignalWire.POM.PromptObjectModel" data-throw-if-not-resolved="false"></xref> instance (Python parity: `agent.pom`). Returns null when <code>UsePom</code> is false. Materialised on each access from the internal list-of-dicts so mutations stay round-trip-safe. To inspect raw section dicts, use <xref href="SignalWire.Agent.AgentBase.GetPromptSections" data-throw-if-not-resolved="false"></xref>.
+
+
+
+ The configured Signing Key, or null when validation is disabled. Read-only — the resolution order (constructor arg → <code>SIGNALWIRE\_SIGNING\_KEY</code> env) is fixed at construction time. (Python parity: <code>agent.signing\_key</code>.)
+
+
+
+ Skill manager (Python parity: `agent.skill_manager`).
+
+
+
+ The complete set of internal SWAIG function names that accept fillers, matching the SWAIGInternalFiller schema definition. Any name outside this set is silently ignored by the runtime — <xref href="SignalWire.Agent.AgentBase.SetInternalFillers(System.Collections.Generic.Dictionary%7bSystem.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.Collections.Generic.List%7bSystem.String%7d%7d%7d)" data-throw-if-not-resolved="false"></xref> and <xref href="SignalWire.Agent.AgentBase.AddInternalFiller(System.String%2cSystem.String%2cSystem.Collections.Generic.List%7bSystem.String%7d)" data-throw-if-not-resolved="false"></xref> warn if you pass an unknown name. Notable absences: <code>change\_step</code>, <code>gather\_submit</code>, or arbitrary user-defined SWAIG function names are NOT supported.
+
+
+## Methods
+
+
+
+ Alias for <xref href="SignalWire.Agent.AgentBase.AddPostAnswerVerb(System.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.Object%7d)" data-throw-if-not-resolved="false"></xref>.
+
+
+
+
+
+
+
+
+
+ Add internal fillers for a single internal function and language. <p>See <xref href="SignalWire.Agent.AgentBase.SetInternalFillers(System.Collections.Generic.Dictionary%7bSystem.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.Collections.Generic.List%7bSystem.String%7d%7d%7d)" data-throw-if-not-resolved="false"></xref> for the complete list of supported function names and what fillers do. Names outside the supported set log a warning.</p>
+
+
+
+ Add a language configuration with optional per-language engine-specific params (e.g. voice stability/similarity for ElevenLabs, model knobs). The <code>params</code> key is only emitted into SWML when non-empty, so existing language entries stay byte-identical when no params are passed. Mirrors signalwire-python's <code>AIConfigMixin.add\_language(params=...)</code>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Load and activate a skill by name. Resolves through <xref href="SignalWire.Skills.SkillRegistry" data-throw-if-not-resolved="false"></xref>, validates env vars, calls Setup/RegisterTools, and merges hints/globalData/prompts.
+
+
+
+
+
+
+
+ Enable auto-mapping of SIP usernames to this agent's route (Python parity: `agent.auto_map_sip_usernames()`). Chainable.
+
+
+
+ Build the AI verb configuration block.
+
+
+
+
+
+
+
+
+
+
+
+ Create a deep copy of this agent for per-request customisation. Collections are deeply copied; callbacks are preserved by reference.
+
+
+
+ Alias for <xref href="SignalWire.Agent.AgentBase.DefineContexts" data-throw-if-not-resolved="false"></xref>.
+
+
+
+ Create a per-call SWAIG-function token. Returns empty string on failure. (Python parity: `StateMixin._create_tool_token`.)
+
+
+
+ Return the ContextBuilder, creating it lazily on first access. The builder is wired to report registered SWAIG tool names back so its <xref href="SignalWire.Contexts.ContextBuilder.Validate" data-throw-if-not-resolved="false"></xref> can check for collisions with reserved native tool names (<code>next\_step</code>, <code>change\_context</code>, <code>gather\_submit</code>).
+
+
+
+
+
+ Enable SIP routing on this agent. `autoMap` opts into Python's auto-mapping behaviour (sip\_username = agent name); `path` lets the caller pin a specific SIP route prefix.
+
+
+
+ Return the contexts configuration if defined, else null. (Python parity: `PromptManager.get_contexts`.)
+
+
+
+ Read the per-language <code>params</code> dict for a previously-added language. Returns <code>null</code> when the params were never set or when the code is unknown — no exception path, matching Python.
+
+
+
+ Return the agent name (Python parity: `agent.get_name()`).
+
+
+
+ Return the post-prompt text if set, else null. (Python parity: `PromptManager.get_post_prompt`.)
+
+
+
+ Return the prompt payload: POM array if enabled and populated, otherwise raw text.
+
+
+
+ The raw POM section dicts. Mirrors how the dotnet agent has historically stored its prompt-object data and how SWML rendering consumes it. Read-only snapshot.
+
+
+
+ Return the raw prompt text if set, else null. (Python parity: `PromptManager.get_raw_prompt`.)
+
+
+
+ Return the skill manager, creating it lazily on first access.
+
+
+
+ Handle the post-prompt callback.
+
+
+
+ Override the base dispatch to enforce webhook signature validation on POST requests targeting the signed routes (<code>/</code>, <code>/swaig</code>, <code>/post\_prompt</code>) when <xref href="SignalWire.Agent.AgentBase.SigningKey" data-throw-if-not-resolved="false"></xref> is configured. <p>Validation is gated behind Basic Auth: callers must already satisfy the SWMLService basic-auth check (it always runs first in <xref href="SignalWire.SWML.Service.HandleRequest(System.String%2cSystem.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.String%7d%2cSystem.String)" data-throw-if-not-resolved="false"></xref>) before we even look at signatures, matching Python where <code>signing\_key</code> is layered on top of <code>basic\_auth</code>.</p> <p>On invalid signature: returns 403 directly without dispatching to the agent's POST handler. On valid signature (or non-POST, or non-signed route): delegates to <xref href="SignalWire.SWML.Service.HandleRequest(System.String%2cSystem.String%2cSystem.Collections.Generic.Dictionary%7bSystem.String%2cSystem.String%7d%2cSystem.String)" data-throw-if-not-resolved="false"></xref>. </p> <p>(Python parity: <code>web\_mixin.\_register\_routes</code> wraps the signed POST routes in a FastAPI <code>Depends(sig\_dep)</code> dependency when <code>signing\_key</code> is set; this is the .NET equivalent.)</p>
+
+
+
+ Handle the SWML document request. If a dynamic-config callback is registered, clone the agent, pass the clone to the callback, and render from the clone.
+
+
+
+ Check if a skill is loaded by instance key.
+
+
+
+ List all loaded skill instance keys.
+
+
+
+ Manually override the proxy URL used for SWAIG webhook construction.
+
+
+
+
+
+
+
+ Add a top-level POM section with an optional body, bullets, numbering, and subsections. (Python parity: `prompt_add_section`.)
+
+
+
+ Add a subsection nested under an existing parent section. (Python parity: `prompt_add_subsection(parent_title, title, body, bullets)`.)
+
+
+
+ Append body text, a single bullet, and/or bullets list to an existing section. (Python parity: `prompt_add_to_section(title, body, bullet, bullets)`.)
+
+
+
+ Check whether a POM section with the given title exists.
+
+
+
+ Register a SIP username under this agent's own route — Python equivalent of `register_sip_username(self, sip_username)`.
+
+
+
+ Remove a loaded skill by its instance key.
+
+
+
+ Build the complete SWML document. <p>Phases: 1) Pre-answer verbs 2) Answer 3) Record call 4) Post-answer verbs 5) AI verb 6) Post-AI verbs</p>
+
+
+
+ Render with request body and headers context.
+
+
+
+ Remove all contexts, returning the agent to a no-contexts state. This is a convenience wrapper around <code>DefineContexts().Reset()</code>. Use it in a dynamic config callback when you need to rebuild contexts from scratch for a specific request.
+
+
+
+
+
+
+
+
+
+ Set internal fillers for native SWAIG functions. <p>Internal fillers are short phrases the AI agent speaks (via TTS) while an internal/native function is running, so the caller doesn't hear dead air during transitions or background work.</p> <p>Supported function names (match the SWAIGInternalFiller schema): <code>hangup</code>, <code>check\_time</code>, <code>wait\_for\_user</code>, <code>wait\_seconds</code>, <code>adjust\_response\_latency</code>, <code>next\_step</code>, <code>change\_context</code>, <code>get\_visual\_input</code>, <code>get\_ideal\_strategy</code>. See <xref href="SignalWire.Agent.AgentBase.SupportedInternalFillerNames" data-throw-if-not-resolved="false"></xref>.</p> <p>Notably NOT supported: <code>change\_step</code>, <code>gather\_submit</code>, or arbitrary user-defined SWAIG function names. The runtime only honors fillers for the names listed above; everything else is silently ignored at the SWML level. This method warns at registration time if you pass an unknown name so you catch the typo early.</p>
+
+
+
+ Set (or replace) the per-language <code>params</code> dict on an already-added language. Useful when language entries are built up via <xref href="SignalWire.Agent.AgentBase.AddLanguage(System.String%2cSystem.String%2cSystem.String)" data-throw-if-not-resolved="false"></xref> first and engine-specific tuning is added later (e.g., from a config loader). Empty dict removes the key. No-op if <code class="paramref">code</code> isn't found — matches Python's silent-skip behavior.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set the prompt as a list-of-section dicts (POM form). Throws when `UsePom` is false. (Python parity: `PromptManager.set_prompt_pom`.)
+
+
+
+
+
+
+
+
+
+
+
+ Validate a per-call SWAIG-function token. Rejects when the function is not registered, when the SessionManager rejects the token, or on any error. (Python parity: `StateMixin.validate_tool_token`.)
+
+
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 51.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/list-skills.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/list-skills.mdx
new file mode 100644
index 0000000000..91bca45dbf
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/list-skills.mdx
@@ -0,0 +1,34 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/list-skills"
+title: "ListSkills()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.ListSkills()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `ListSkills()`
+
+List all loaded skill instance keys.
+
+## Signature
+
+```dotnet
+public List ListSkills()
+```
+
+## Returns
+
+`List`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 959.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/manual-set-proxy-url-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/manual-set-proxy-url-string.mdx
new file mode 100644
index 0000000000..ebdef37ff3
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/manual-set-proxy-url-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/manual-set-proxy-url-string"
+title: "ManualSetProxyUrl(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.ManualSetProxyUrl(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `ManualSetProxyUrl(string)`
+
+Manually override the proxy URL used for SWAIG webhook construction.
+
+## Signature
+
+```dotnet
+public AgentBase ManualSetProxyUrl(string url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1002.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/on-debug-event-action-dictionary-string-object-dictionary-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/on-debug-event-action-dictionary-string-object-dictionary-string-string.mdx
new file mode 100644
index 0000000000..fc1d0a3cd2
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/on-debug-event-action-dictionary-string-object-dictionary-string-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/on-debug-event-action-dictionary-string-object-dictionary-string-string"
+title: "OnDebugEvent(Action?, Dictionary>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.OnDebugEvent(System.Action?, System.Collections.Generic.Dictionary>)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `OnDebugEvent(Action?, Dictionary>)`
+
+## Signature
+
+```dotnet
+public AgentBase OnDebugEvent(Action?, Dictionary> callback)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1030.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/on-summary-action-string-dictionary-string-object-dictionary-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/on-summary-action-string-dictionary-string-object-dictionary-string-string.mdx
new file mode 100644
index 0000000000..afabfb0bb0
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/on-summary-action-string-dictionary-string-object-dictionary-string-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/on-summary-action-string-dictionary-string-object-dictionary-string-string"
+title: "OnSummary(Action?, Dictionary>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.OnSummary(System.Action?, System.Collections.Generic.Dictionary>)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `OnSummary(Action?, Dictionary>)`
+
+## Signature
+
+```dotnet
+public AgentBase OnSummary(Action?, Dictionary> callback)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1023.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-section-string-string-list-string-bool-bool-list-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-section-string-string-list-string-bool-bool-list-dictionary-string-object.mdx
new file mode 100644
index 0000000000..70f0da5eb2
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-section-string-string-list-string-bool-bool-list-dictionary-string-object.mdx
@@ -0,0 +1,49 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/prompt-add-section-string-string-list-string-bool-bool-list-dictionary-string-object"
+title: "PromptAddSection(string, string, List?, bool, bool, List>?)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.PromptAddSection(string, string, System.Collections.Generic.List?, bool, bool, System.Collections.Generic.List>?)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `PromptAddSection(string, string, List?, bool, bool, List>?)`
+
+Add a top-level POM section with an optional body, bullets,
+numbering, and subsections. (Python parity: `prompt_add_section`.)
+
+## Signature
+
+```dotnet
+public AgentBase PromptAddSection(string title, string body = "", List? bullets = null, bool numbered = false, bool numberedBullets = false, List>? subsections = null)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 263.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-subsection-string-string-string-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-subsection-string-string-string-list-string.mdx
new file mode 100644
index 0000000000..172ecdd2d4
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-subsection-string-string-string-list-string.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/prompt-add-subsection-string-string-string-list-string"
+title: "PromptAddSubsection(string, string, string, List?)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.PromptAddSubsection(string, string, string, System.Collections.Generic.List?)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `PromptAddSubsection(string, string, string, List?)`
+
+Add a subsection nested under an existing parent section.
+(Python parity: `prompt_add_subsection(parent_title, title, body, bullets)`.)
+
+## Signature
+
+```dotnet
+public AgentBase PromptAddSubsection(string parentTitle, string title, string body = "", List? bullets = null)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 293.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-to-section-string-string-string-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-to-section-string-string-string-list-string.mdx
new file mode 100644
index 0000000000..2e99d18164
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-add-to-section-string-string-string-list-string.mdx
@@ -0,0 +1,46 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/prompt-add-to-section-string-string-string-list-string"
+title: "PromptAddToSection(string, string?, string?, List?)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.PromptAddToSection(string, string?, string?, System.Collections.Generic.List?)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `PromptAddToSection(string, string?, string?, List?)`
+
+Append body text, a single bullet, and/or bullets list to an
+existing section. (Python parity:
+`prompt_add_to_section(title, body, bullet, bullets)`.)
+
+## Signature
+
+```dotnet
+public AgentBase PromptAddToSection(string title, string? body = null, string? bullet = null, List? bullets = null)
+```
+
+## Parameters
+
+
+
+
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 327.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-has-section-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-has-section-string.mdx
new file mode 100644
index 0000000000..9f80511edc
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/prompt-has-section-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/prompt-has-section-string"
+title: "PromptHasSection(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.PromptHasSection(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `PromptHasSection(string)`
+
+Check whether a POM section with the given title exists.
+
+## Signature
+
+```dotnet
+public bool PromptHasSection(string title)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 365.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/register-sip-username.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/register-sip-username.mdx
new file mode 100644
index 0000000000..05a03f8dee
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/register-sip-username.mdx
@@ -0,0 +1,59 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/register-sip-username"
+title: "RegisterSipUsername"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.RegisterSipUsername(string, string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `RegisterSipUsername`
+
+Register a SIP username under this agent's own route — Python
+equivalent of `register_sip_username(self, sip_username)`.
+
+## Signature
+
+
+
+ ```dotnet
+ public AgentBase RegisterSipUsername(string username, string route = "")
+ ```
+
+
+
+ ```dotnet
+ public AgentBase RegisterSipUsername(string username)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Returns (Overload 1)
+
+`SignalWire.Agent.AgentBase`
+
+## Returns (Overload 2)
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1054.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/remove-skill-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/remove-skill-string.mdx
new file mode 100644
index 0000000000..70034b2c66
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/remove-skill-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/remove-skill-string"
+title: "RemoveSkill(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.RemoveSkill(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `RemoveSkill(string)`
+
+Remove a loaded skill by its instance key.
+
+## Signature
+
+```dotnet
+public AgentBase RemoveSkill(string name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 949.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/render-swml-with-context-dictionary-string-object-dictionary-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/render-swml-with-context-dictionary-string-object-dictionary-string-string.mdx
new file mode 100644
index 0000000000..e64373c57a
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/render-swml-with-context-dictionary-string-object-dictionary-string-string.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/render-swml-with-context-dictionary-string-object-dictionary-string-string"
+title: "RenderSwmlWithContext(Dictionary?, Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.RenderSwmlWithContext(System.Collections.Generic.Dictionary?, System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `RenderSwmlWithContext(Dictionary?, Dictionary)`
+
+Render with request body and headers context.
+
+## Signature
+
+```dotnet
+public Dictionary RenderSwmlWithContext(Dictionary? requestBody, Dictionary headers)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1084.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/render-swml.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/render-swml.mdx
new file mode 100644
index 0000000000..9de0073ad8
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/render-swml.mdx
@@ -0,0 +1,39 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/render-swml"
+title: "RenderSwml()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.RenderSwml()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `RenderSwml()`
+
+Build the complete SWML document.
+
+<p>Phases: 1) Pre-answer verbs 2) Answer 3) Record call
+4) Post-answer verbs 5) AI verb 6) Post-AI verbs</p>
+
+**Modifiers:** `override`
+
+## Signature
+
+```dotnet
+public override Dictionary RenderSwml()
+```
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 1078.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/reset-contexts.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/reset-contexts.mdx
new file mode 100644
index 0000000000..702f9d65b6
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/reset-contexts.mdx
@@ -0,0 +1,37 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/reset-contexts"
+title: "ResetContexts()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.ResetContexts()"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `ResetContexts()`
+
+Remove all contexts, returning the agent to a no-contexts state.
+This is a convenience wrapper around <code>DefineContexts().Reset()</code>.
+Use it in a dynamic config callback when you need to rebuild
+contexts from scratch for a specific request.
+
+## Signature
+
+```dotnet
+public AgentBase ResetContexts()
+```
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 882.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-dynamic-config-callback-action-dictionary-string-object-dictionary-string-object-dictionary-string-string-agent-base.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-dynamic-config-callback-action-dictionary-string-object-dictionary-string-object-dictionary-string-string-agent-base.mdx
new file mode 100644
index 0000000000..cd7f74e968
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-dynamic-config-callback-action-dictionary-string-object-dictionary-string-object-dictionary-string-string-agent-base.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-dynamic-config-callback-action-dictionary-string-object-dictionary-string-object-dictionary-string-string-agent-base"
+title: "SetDynamicConfigCallback(Action?, Dictionary?, Dictionary, AgentBase>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetDynamicConfigCallback(System.Action?, System.Collections.Generic.Dictionary?, System.Collections.Generic.Dictionary, SignalWire.Agent.AgentBase>)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetDynamicConfigCallback(Action?, Dictionary?, Dictionary, AgentBase>)`
+
+## Signature
+
+```dotnet
+public AgentBase SetDynamicConfigCallback(Action?, Dictionary?, Dictionary, AgentBase> callback)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 982.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-function-includes-list-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-function-includes-list-dictionary-string-object.mdx
new file mode 100644
index 0000000000..df757739d5
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-function-includes-list-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-function-includes-list-dictionary-string-object"
+title: "SetFunctionIncludes(List>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetFunctionIncludes(System.Collections.Generic.List>)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetFunctionIncludes(List>)`
+
+## Signature
+
+```dotnet
+public AgentBase SetFunctionIncludes(List> includes)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 777.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-global-data-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-global-data-dictionary-string-object.mdx
new file mode 100644
index 0000000000..d088a2a5ae
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-global-data-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-global-data-dictionary-string-object"
+title: "SetGlobalData(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetGlobalData(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetGlobalData(Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase SetGlobalData(Dictionary data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 627.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-internal-fillers.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-internal-fillers.mdx
new file mode 100644
index 0000000000..119321a38d
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-internal-fillers.mdx
@@ -0,0 +1,74 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-internal-fillers"
+title: "SetInternalFillers"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetInternalFillers(System.Collections.Generic.List)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetInternalFillers`
+
+Set internal fillers for native SWAIG functions.
+
+<p>Internal fillers are short phrases the AI agent speaks (via
+TTS) while an internal/native function is running, so the caller
+doesn't hear dead air during transitions or background work.</p>
+
+<p>Supported function names (match the SWAIGInternalFiller
+schema): <code>hangup</code>, <code>check_time</code>, <code>wait_for_user</code>,
+<code>wait_seconds</code>, <code>adjust_response_latency</code>,
+<code>next_step</code>, <code>change_context</code>, <code>get_visual_input</code>,
+<code>get_ideal_strategy</code>. See
+<xref href="SignalWire.Agent.AgentBase.SupportedInternalFillerNames" data-throw-if-not-resolved="false"></xref>.</p>
+
+<p>Notably NOT supported: <code>change_step</code>,
+<code>gather_submit</code>, or arbitrary user-defined SWAIG function
+names. The runtime only honors fillers for the names listed above;
+everything else is silently ignored at the SWML level. This method
+warns at registration time if you pass an unknown name so you
+catch the typo early.</p>
+
+## Signature
+
+
+
+ ```dotnet
+ public AgentBase SetInternalFillers(List fillers)
+ ```
+
+
+
+ ```dotnet
+ public AgentBase SetInternalFillers(Dictionary>> fillers)
+ ```
+
+
+
+## Parameters (Overload 1)
+
+
+
+## Parameters (Overload 2)
+
+
+
+## Returns (Overload 1)
+
+`SignalWire.Agent.AgentBase`
+
+## Returns (Overload 2)
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 672.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-language-params-string-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-language-params-string-dictionary-string-object.mdx
new file mode 100644
index 0000000000..776ce70edb
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-language-params-string-dictionary-string-object.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-language-params-string-dictionary-string-object"
+title: "SetLanguageParams(string, Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetLanguageParams(string, System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetLanguageParams(string, Dictionary)`
+
+Set (or replace) the per-language <code>params</code> dict on an
+already-added language. Useful when language entries are built
+up via <xref href="SignalWire.Agent.AgentBase.AddLanguage(System.String%2cSystem.String%2cSystem.String)" data-throw-if-not-resolved="false"></xref> first and
+engine-specific tuning is added later (e.g., from a config loader).
+Empty dict removes the key. No-op if <code class="paramref">code</code> isn't
+found — matches Python's silent-skip behavior.
+
+## Signature
+
+```dotnet
+public AgentBase SetLanguageParams(string code, Dictionary languageParams)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 546.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-languages-list-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-languages-list-dictionary-string-object.mdx
new file mode 100644
index 0000000000..e372507227
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-languages-list-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-languages-list-dictionary-string-object"
+title: "SetLanguages(List>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetLanguages(System.Collections.Generic.List>)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetLanguages(List>)`
+
+## Signature
+
+```dotnet
+public AgentBase SetLanguages(List> languages)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 588.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-native-functions-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-native-functions-list-string.mdx
new file mode 100644
index 0000000000..a93471255f
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-native-functions-list-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-native-functions-list-string"
+title: "SetNativeFunctions(List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetNativeFunctions(System.Collections.Generic.List)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetNativeFunctions(List)`
+
+## Signature
+
+```dotnet
+public AgentBase SetNativeFunctions(List functions)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 642.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-param-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-param-string-object.mdx
new file mode 100644
index 0000000000..b19fc67ca7
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-param-string-object.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-param-string-object"
+title: "SetParam(string, object)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetParam(string, object)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetParam(string, object)`
+
+## Signature
+
+```dotnet
+public AgentBase SetParam(string key, object value)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 615.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-params-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-params-dictionary-string-object.mdx
new file mode 100644
index 0000000000..9fe6076c11
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-params-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-params-dictionary-string-object"
+title: "SetParams(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetParams(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetParams(Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase SetParams(Dictionary parameters)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 621.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-llm-params-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-llm-params-dictionary-string-object.mdx
new file mode 100644
index 0000000000..24469db26e
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-llm-params-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-llm-params-dictionary-string-object"
+title: "SetPostPromptLlmParams(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetPostPromptLlmParams(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetPostPromptLlmParams(Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase SetPostPromptLlmParams(Dictionary parameters)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 789.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-string.mdx
new file mode 100644
index 0000000000..5ea6874f69
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-string"
+title: "SetPostPrompt(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetPostPrompt(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetPostPrompt(string)`
+
+## Signature
+
+```dotnet
+public AgentBase SetPostPrompt(string text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 255.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-url-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-url-string.mdx
new file mode 100644
index 0000000000..511db922ee
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-url-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-post-prompt-url-string"
+title: "SetPostPromptUrl(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetPostPromptUrl(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetPostPromptUrl(string)`
+
+## Signature
+
+```dotnet
+public AgentBase SetPostPromptUrl(string url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 995.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-llm-params-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-llm-params-dictionary-string-object.mdx
new file mode 100644
index 0000000000..da82b1d92b
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-llm-params-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-prompt-llm-params-dictionary-string-object"
+title: "SetPromptLlmParams(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetPromptLlmParams(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetPromptLlmParams(Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase SetPromptLlmParams(Dictionary parameters)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 783.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-pom-list-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-pom-list-dictionary-string-object.mdx
new file mode 100644
index 0000000000..3585200593
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-pom-list-dictionary-string-object.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-prompt-pom-list-dictionary-string-object"
+title: "SetPromptPom(List>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetPromptPom(System.Collections.Generic.List>)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetPromptPom(List>)`
+
+Set the prompt as a list-of-section dicts (POM form).
+Throws when `UsePom` is false. (Python parity:
+`PromptManager.set_prompt_pom`.)
+
+## Signature
+
+```dotnet
+public AgentBase SetPromptPom(List> pom)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 398.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-text-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-text-string.mdx
new file mode 100644
index 0000000000..2b12bd973a
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-prompt-text-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-prompt-text-string"
+title: "SetPromptText(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetPromptText(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetPromptText(string)`
+
+## Signature
+
+```dotnet
+public AgentBase SetPromptText(string text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 249.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-pronunciations-list-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-pronunciations-list-dictionary-string-object.mdx
new file mode 100644
index 0000000000..ef64badf1f
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-pronunciations-list-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-pronunciations-list-dictionary-string-object"
+title: "SetPronunciations(List>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetPronunciations(System.Collections.Generic.List>)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetPronunciations(List>)`
+
+## Signature
+
+```dotnet
+public AgentBase SetPronunciations(List> pronunciations)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 609.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-web-hook-url-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-web-hook-url-string.mdx
new file mode 100644
index 0000000000..61add09054
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/set-web-hook-url-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/set-web-hook-url-string"
+title: "SetWebHookUrl(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.SetWebHookUrl(string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `SetWebHookUrl(string)`
+
+## Signature
+
+```dotnet
+public AgentBase SetWebHookUrl(string url)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 989.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/update-global-data-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/update-global-data-dictionary-string-object.mdx
new file mode 100644
index 0000000000..4889c3b1e9
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/update-global-data-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/update-global-data-dictionary-string-object"
+title: "UpdateGlobalData(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.UpdateGlobalData(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `UpdateGlobalData(Dictionary)`
+
+## Signature
+
+```dotnet
+public AgentBase UpdateGlobalData(Dictionary data)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Agent.AgentBase`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 633.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/validate-tool-token-string-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/validate-tool-token-string-string-string.mdx
new file mode 100644
index 0000000000..d1561e0587
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-base/validate-tool-token-string-string-string.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-base/validate-tool-token-string-string-string"
+title: "ValidateToolToken(string, string, string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentBase.ValidateToolToken(string, string, string)"
+ parent: "SignalWire.Agent.AgentBase"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `ValidateToolToken(string, string, string)`
+
+Validate a per-call SWAIG-function token. Rejects
+when the function is not registered, when the SessionManager
+rejects the token, or on any error. (Python parity:
+`StateMixin.validate_tool_token`.)
+
+## Signature
+
+```dotnet
+public bool ValidateToolToken(string functionName, string token, string callId)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 457.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-options/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-options/index.mdx
new file mode 100644
index 0000000000..c69df5ffbf
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/agent-options/index.mdx
@@ -0,0 +1,64 @@
+---
+slug: "/reference/dotnet/signal-wire.agent/agent-options"
+title: "AgentOptions"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent.AgentOptions"
+ parent: "SignalWire.Agent"
+ module: "SignalWire.Agent"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs"
+ visibility: "public"
+---
+# `AgentOptions`
+
+Configuration options for an AI agent, extending the base SWML service options.
+
+**Modifiers:** `sealed`
+
+## Signature
+
+```dotnet
+public sealed class AgentOptions
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Optional SignalWire Signing Key (from Dashboard → API Credentials). When set, webhook signature validation is enforced on POST /, /swaig, /post\_prompt — unsigned or invalidly-signed requests get a 403. Falls back to the <code>SIGNALWIRE\_SIGNING\_KEY</code> env var if not passed. See <code>porting-sdk/webhooks.md</code> for the contract. (Python parity: <code>AgentBase.**init**(signing\_key=...)</code>.)
+
+
+
+ If true, honor <code>X-Forwarded-Proto</code> / <code>X-Forwarded-Host</code> headers when reconstructing the URL for signature validation. Default false because proxy headers are spoofable; opt in only when you control the proxy chain. (Python parity: <code>AgentBase.**init**(trust\_proxy\_for\_signature=...)</code>.)
+
+
+
+
+## Source
+
+[`src/SignalWire/Agent/AgentBase.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Agent/AgentBase.cs)
+
+Line 12.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.agent/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.agent/index.mdx
new file mode 100644
index 0000000000..c20b527bf7
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.agent/index.mdx
@@ -0,0 +1,24 @@
+---
+slug: "/reference/dotnet/signal-wire.agent"
+title: "SignalWire.Agent"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "dotnet"
+ qualified_name: "SignalWire.Agent"
+---
+# `SignalWire.Agent`
+
+## Classes
+
+
+
+ AI agent built on <xref href="SignalWire.SWML.Service" data-throw-if-not-resolved="false"></xref>. Provides prompt management, SWAIG tool dispatch, context switching, skill stubs, and a 5-phase SWML rendering pipeline. All configuration methods return <code>this</code> for fluent chaining.
+
+
+
+ Configuration options for an AI agent, extending the base SWML service options.
+
+
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/add-context-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/add-context-string.mdx
new file mode 100644
index 0000000000..5bf312da03
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/add-context-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder/add-context-string"
+title: "AddContext(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder.AddContext(string)"
+ parent: "SignalWire.Contexts.ContextBuilder"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddContext(string)`
+
+## Signature
+
+```dotnet
+public Context AddContext(string name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 622.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/attach-tool-name-supplier-func-i-enumerable-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/attach-tool-name-supplier-func-i-enumerable-string.mdx
new file mode 100644
index 0000000000..dbc5744942
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/attach-tool-name-supplier-func-i-enumerable-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder/attach-tool-name-supplier-func-i-enumerable-string"
+title: "AttachToolNameSupplier(Func>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder.AttachToolNameSupplier(System.Func>)"
+ parent: "SignalWire.Contexts.ContextBuilder"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AttachToolNameSupplier(Func>)`
+
+Attach a supplier that returns registered SWAIG tool names so <xref href="SignalWire.Contexts.ContextBuilder.Validate" data-throw-if-not-resolved="false"></xref> can check them against <xref href="SignalWire.Contexts.ReservedToolNames.Reserved" data-throw-if-not-resolved="false"></xref>. Called internally by <code>AgentBase.DefineContexts()</code>.
+
+## Signature
+
+```dotnet
+public ContextBuilder AttachToolNameSupplier(Func> supplier)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.ContextBuilder`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 604.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/create-simple-context-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/create-simple-context-string.mdx
new file mode 100644
index 0000000000..dc5b05e8c0
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/create-simple-context-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder/create-simple-context-string"
+title: "CreateSimpleContext(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder.CreateSimpleContext(string)"
+ parent: "SignalWire.Contexts.ContextBuilder"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `CreateSimpleContext(string)`
+
+**Modifiers:** `static`
+
+## Signature
+
+```dotnet
+public static ContextBuilder CreateSimpleContext(string name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.ContextBuilder`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 807.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/get-context-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/get-context-string.mdx
new file mode 100644
index 0000000000..2922d7613b
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/get-context-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder/get-context-string"
+title: "GetContext(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder.GetContext(string)"
+ parent: "SignalWire.Contexts.ContextBuilder"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GetContext(string)`
+
+## Signature
+
+```dotnet
+public Context? GetContext(string name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 635.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/has-contexts.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/has-contexts.mdx
new file mode 100644
index 0000000000..3a0e4eabb1
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/has-contexts.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder/has-contexts"
+title: "HasContexts()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder.HasContexts()"
+ parent: "SignalWire.Contexts.ContextBuilder"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `HasContexts()`
+
+## Signature
+
+```dotnet
+public bool HasContexts()
+```
+
+## Returns
+
+`bool`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 636.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/index.mdx
new file mode 100644
index 0000000000..5ebbf8b7a8
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/index.mdx
@@ -0,0 +1,75 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder"
+title: "ContextBuilder"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder"
+ parent: "SignalWire.Contexts"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `ContextBuilder`
+
+Builder for multi-step, multi-context AI agent workflows.
+
+<p>A ContextBuilder owns one or more <xref href="SignalWire.Contexts.Context" data-throw-if-not-resolved="false"></xref>s; each
+context owns an ordered list of <xref href="SignalWire.Contexts.Step" data-throw-if-not-resolved="false"></xref>s. Only one context
+and one step is active at a time. Per chat turn, the runtime injects
+the current step's instructions as a system message, then asks the LLM
+for a response.</p>
+
+<p><b>Native tools auto-injected by the runtime:</b> When a step
+(or its enclosing context) declares valid_steps or valid_contexts, the
+runtime auto-injects two native tools so the model can navigate the
+flow: <code>next_step</code> and <code>change_context</code>. A third native tool,
+<code>gather_submit</code>, is injected during gather_info questioning.
+These three names are reserved: <xref href="SignalWire.Contexts.ContextBuilder.Validate" data-throw-if-not-resolved="false"></xref> rejects any
+agent that defines a SWAIG tool with one of them. See
+<xref href="SignalWire.Contexts.ReservedToolNames.Reserved" data-throw-if-not-resolved="false"></xref>.</p>
+
+<p><b>Function whitelisting (<xref href="SignalWire.Contexts.Step.SetFunctions(System.Object)" data-throw-if-not-resolved="false"></xref>):</b>
+Each step may declare a functions whitelist. The whitelist is applied
+in-memory at the start of each LLM turn. CRITICALLY: if a step does
+NOT declare a functions field, it INHERITS the previous step's active
+set. See <xref href="SignalWire.Contexts.Step.SetFunctions(System.Object)" data-throw-if-not-resolved="false"></xref> for details and examples.</p>
+
+## Signature
+
+```dotnet
+public class ContextBuilder
+```
+
+## Methods
+
+
+
+
+
+ Attach a supplier that returns registered SWAIG tool names so <xref href="SignalWire.Contexts.ContextBuilder.Validate" data-throw-if-not-resolved="false"></xref> can check them against <xref href="SignalWire.Contexts.ReservedToolNames.Reserved" data-throw-if-not-resolved="false"></xref>. Called internally by <code>AgentBase.DefineContexts()</code>.
+
+
+
+
+
+
+
+
+
+ Remove all contexts, returning the builder to its initial state. Use this in a dynamic config callback when you need to rebuild contexts from scratch for a specific request.
+
+
+
+
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 591.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/reset.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/reset.mdx
new file mode 100644
index 0000000000..cc31c8ea0e
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/reset.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder/reset"
+title: "Reset()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder.Reset()"
+ parent: "SignalWire.Contexts.ContextBuilder"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `Reset()`
+
+Remove all contexts, returning the builder to its initial state.
+Use this in a dynamic config callback when you need to rebuild
+contexts from scratch for a specific request.
+
+## Signature
+
+```dotnet
+public ContextBuilder Reset()
+```
+
+## Returns
+
+`SignalWire.Contexts.ContextBuilder`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 615.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/to-dict.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/to-dict.mdx
new file mode 100644
index 0000000000..0c385e0b47
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/to-dict.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder/to-dict"
+title: "ToDict()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder.ToDict()"
+ parent: "SignalWire.Contexts.ContextBuilder"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `ToDict()`
+
+## Signature
+
+```dotnet
+public Dictionary ToDict()
+```
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 793.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/validate.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/validate.mdx
new file mode 100644
index 0000000000..6a46a15b93
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context-builder/validate.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context-builder/validate"
+title: "Validate()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ContextBuilder.Validate()"
+ parent: "SignalWire.Contexts.ContextBuilder"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `Validate()`
+
+## Signature
+
+```dotnet
+public List Validate()
+```
+
+## Returns
+
+`List`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 638.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-bullets-string-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-bullets-string-list-string.mdx
new file mode 100644
index 0000000000..35f3ddf768
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-bullets-string-list-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/add-bullets-string-list-string"
+title: "AddBullets(string, List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.AddBullets(string, System.Collections.Generic.List)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddBullets(string, List)`
+
+## Signature
+
+```dotnet
+public Context AddBullets(string title, List bullets)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 413.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-enter-filler-string-params-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-enter-filler-string-params-string.mdx
new file mode 100644
index 0000000000..dd9ee3864e
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-enter-filler-string-params-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/add-enter-filler-string-params-string"
+title: "AddEnterFiller(string, params string[])"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.AddEnterFiller(string, params string[])"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddEnterFiller(string, params string[])`
+
+## Signature
+
+```dotnet
+public Context AddEnterFiller(string lang, params string[] fillers)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 495.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-exit-filler-string-params-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-exit-filler-string-params-string.mdx
new file mode 100644
index 0000000000..42f22899f1
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-exit-filler-string-params-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/add-exit-filler-string-params-string"
+title: "AddExitFiller(string, params string[])"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.AddExitFiller(string, params string[])"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddExitFiller(string, params string[])`
+
+## Signature
+
+```dotnet
+public Context AddExitFiller(string lang, params string[] fillers)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 503.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-section-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-section-string-string.mdx
new file mode 100644
index 0000000000..14b12ca13f
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-section-string-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/add-section-string-string"
+title: "AddSection(string, string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.AddSection(string, string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddSection(string, string)`
+
+## Signature
+
+```dotnet
+public Context AddSection(string title, string body)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 405.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-step-string-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-step-string-dictionary-string-object.mdx
new file mode 100644
index 0000000000..656a377b66
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-step-string-dictionary-string-object.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/add-step-string-dictionary-string-object"
+title: "AddStep(string, Dictionary?)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.AddStep(string, System.Collections.Generic.Dictionary?)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddStep(string, Dictionary?)`
+
+## Signature
+
+```dotnet
+public Step AddStep(string name, Dictionary? opts = null)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 350.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-system-bullets-string-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-system-bullets-string-list-string.mdx
new file mode 100644
index 0000000000..3f04524b9c
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-system-bullets-string-list-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/add-system-bullets-string-list-string"
+title: "AddSystemBullets(string, List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.AddSystemBullets(string, System.Collections.Generic.List)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddSystemBullets(string, List)`
+
+## Signature
+
+```dotnet
+public Context AddSystemBullets(string title, List bullets)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 439.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-system-section-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-system-section-string-string.mdx
new file mode 100644
index 0000000000..0d808487cc
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/add-system-section-string-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/add-system-section-string-string"
+title: "AddSystemSection(string, string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.AddSystemSection(string, string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddSystemSection(string, string)`
+
+## Signature
+
+```dotnet
+public Context AddSystemSection(string title, string body)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 431.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/context-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/context-string.mdx
new file mode 100644
index 0000000000..9a4a46d430
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/context-string.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/context-string"
+title: "Context(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.Context(string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `Context(string)`
+
+## Signature
+
+```dotnet
+public Context(string name)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 345.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-initial-step.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-initial-step.mdx
new file mode 100644
index 0000000000..7df047323a
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-initial-step.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/get-initial-step"
+title: "GetInitialStep()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.GetInitialStep()"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GetInitialStep()`
+
+## Signature
+
+```dotnet
+public string? GetInitialStep()
+```
+
+## Returns
+
+`string`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 459.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-step-order.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-step-order.mdx
new file mode 100644
index 0000000000..eab46302b9
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-step-order.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/get-step-order"
+title: "GetStepOrder()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.GetStepOrder()"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GetStepOrder()`
+
+## Signature
+
+```dotnet
+public List GetStepOrder()
+```
+
+## Returns
+
+`List`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 393.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-step-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-step-string.mdx
new file mode 100644
index 0000000000..1831973df8
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-step-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/get-step-string"
+title: "GetStep(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.GetStep(string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GetStep(string)`
+
+## Signature
+
+```dotnet
+public Step? GetStep(string name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 372.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-steps.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-steps.mdx
new file mode 100644
index 0000000000..d95ea25faa
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-steps.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/get-steps"
+title: "GetSteps()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.GetSteps()"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GetSteps()`
+
+## Signature
+
+```dotnet
+public Dictionary GetSteps()
+```
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 392.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-valid-contexts.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-valid-contexts.mdx
new file mode 100644
index 0000000000..7c0ce8d0bd
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/get-valid-contexts.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/get-valid-contexts"
+title: "GetValidContexts()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.GetValidContexts()"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GetValidContexts()`
+
+## Signature
+
+```dotnet
+public List? GetValidContexts()
+```
+
+## Returns
+
+`List`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 511.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/index.mdx
new file mode 100644
index 0000000000..b5dff18082
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/index.mdx
@@ -0,0 +1,96 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context"
+title: "Context"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context"
+ parent: "SignalWire.Contexts"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `Context`
+
+## Signature
+
+```dotnet
+public class Context
+```
+
+## Properties
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set which step the context starts on when entered. <p>By default, a context starts on its first step (index 0). Use this to skip a preamble step on re-entry via <code>change\_context</code>.</p>
+
+
+
+ Mark this context as isolated — entering it wipes conversation history. <p>When <code class="paramref">isolated</code> = true and the context is entered via change\_context, the runtime wipes the conversation array. The model starts fresh with only the new context's system\_prompt + step instructions, with no memory of prior turns.</p> <p><b>EXCEPTION — reset overrides the wipe:</b> If the context also has a reset configuration (via <xref href="SignalWire.Contexts.Context.SetConsolidate(System.Boolean)" data-throw-if-not-resolved="false"></xref> or <xref href="SignalWire.Contexts.Context.SetFullReset(System.Boolean)" data-throw-if-not-resolved="false"></xref>), the wipe is skipped in favor of the reset behavior. Use reset with consolidate=true to summarize prior history into a single message instead of dropping it entirely.</p> <p>Use cases: switching to a sensitive billing flow that should not see prior small-talk; handing off to a different agent persona; resetting after a long off-topic detour.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 324.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/move-step-string-int.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/move-step-string-int.mdx
new file mode 100644
index 0000000000..4892d12494
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/move-step-string-int.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/move-step-string-int"
+title: "MoveStep(string, int)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.MoveStep(string, int)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `MoveStep(string, int)`
+
+## Signature
+
+```dotnet
+public Context MoveStep(string name, int position)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 383.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/remove-step-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/remove-step-string.mdx
new file mode 100644
index 0000000000..bcee069747
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/remove-step-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/remove-step-string"
+title: "RemoveStep(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.RemoveStep(string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `RemoveStep(string)`
+
+## Signature
+
+```dotnet
+public Context RemoveStep(string name)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 374.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-consolidate-bool.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-consolidate-bool.mdx
new file mode 100644
index 0000000000..1cbf101388
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-consolidate-bool.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-consolidate-bool"
+title: "SetConsolidate(bool)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetConsolidate(bool)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetConsolidate(bool)`
+
+## Signature
+
+```dotnet
+public Context SetConsolidate(bool consolidate)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 464.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-enter-fillers-dictionary-string-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-enter-fillers-dictionary-string-list-string.mdx
new file mode 100644
index 0000000000..4356dfa6ac
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-enter-fillers-dictionary-string-list-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-enter-fillers-dictionary-string-list-string"
+title: "SetEnterFillers(Dictionary>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetEnterFillers(System.Collections.Generic.Dictionary>)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetEnterFillers(Dictionary>)`
+
+## Signature
+
+```dotnet
+public Context SetEnterFillers(Dictionary> fillers)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 492.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-exit-fillers-dictionary-string-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-exit-fillers-dictionary-string-list-string.mdx
new file mode 100644
index 0000000000..5f3f4da3de
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-exit-fillers-dictionary-string-list-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-exit-fillers-dictionary-string-list-string"
+title: "SetExitFillers(Dictionary>)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetExitFillers(System.Collections.Generic.Dictionary>)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetExitFillers(Dictionary>)`
+
+## Signature
+
+```dotnet
+public Context SetExitFillers(Dictionary> fillers)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 493.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-full-reset-bool.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-full-reset-bool.mdx
new file mode 100644
index 0000000000..4c2320910c
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-full-reset-bool.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-full-reset-bool"
+title: "SetFullReset(bool)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetFullReset(bool)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetFullReset(bool)`
+
+## Signature
+
+```dotnet
+public Context SetFullReset(bool fullReset)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 465.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-initial-step-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-initial-step-string.mdx
new file mode 100644
index 0000000000..16855f04be
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-initial-step-string.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-initial-step-string"
+title: "SetInitialStep(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetInitialStep(string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetInitialStep(string)`
+
+Set which step the context starts on when entered.
+
+<p>By default, a context starts on its first step (index 0). Use
+this to skip a preamble step on re-entry via
+<code>change_context</code>.</p>
+
+## Signature
+
+```dotnet
+public Context SetInitialStep(string stepName)
+```
+
+## Parameters
+
+
+ Name of the step to start on (must exist in this context).
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 457.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-isolated-bool.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-isolated-bool.mdx
new file mode 100644
index 0000000000..6d43eaa167
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-isolated-bool.mdx
@@ -0,0 +1,56 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-isolated-bool"
+title: "SetIsolated(bool)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetIsolated(bool)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetIsolated(bool)`
+
+Mark this context as isolated — entering it wipes conversation
+history.
+
+<p>When <code class="paramref">isolated</code> = true and the context is
+entered via change_context, the runtime wipes the conversation
+array. The model starts fresh with only the new context's
+system_prompt + step instructions, with no memory of prior
+turns.</p>
+
+<p><b>EXCEPTION — reset overrides the wipe:</b> If the context
+also has a reset configuration (via <xref href="SignalWire.Contexts.Context.SetConsolidate(System.Boolean)" data-throw-if-not-resolved="false"></xref>
+or <xref href="SignalWire.Contexts.Context.SetFullReset(System.Boolean)" data-throw-if-not-resolved="false"></xref>), the wipe is skipped in favor of
+the reset behavior. Use reset with consolidate=true to summarize
+prior history into a single message instead of dropping it
+entirely.</p>
+
+<p>Use cases: switching to a sensitive billing flow that
+should not see prior small-talk; handing off to a different agent
+persona; resetting after a long off-topic detour.</p>
+
+## Signature
+
+```dotnet
+public Context SetIsolated(bool isolated)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 488.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-post-prompt-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-post-prompt-string.mdx
new file mode 100644
index 0000000000..2d7789a9e6
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-post-prompt-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-post-prompt-string"
+title: "SetPostPrompt(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetPostPrompt(string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetPostPrompt(string)`
+
+## Signature
+
+```dotnet
+public Context SetPostPrompt(string postPrompt)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 463.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-prompt-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-prompt-string.mdx
new file mode 100644
index 0000000000..568471b764
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-prompt-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-prompt-string"
+title: "SetPrompt(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetPrompt(string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetPrompt(string)`
+
+## Signature
+
+```dotnet
+public Context SetPrompt(string prompt)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 397.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-system-prompt-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-system-prompt-string.mdx
new file mode 100644
index 0000000000..68e629dc5f
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-system-prompt-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-system-prompt-string"
+title: "SetSystemPrompt(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetSystemPrompt(string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetSystemPrompt(string)`
+
+## Signature
+
+```dotnet
+public Context SetSystemPrompt(string systemPrompt)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 423.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-user-prompt-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-user-prompt-string.mdx
new file mode 100644
index 0000000000..2ad63c9c1a
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-user-prompt-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-user-prompt-string"
+title: "SetUserPrompt(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetUserPrompt(string)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetUserPrompt(string)`
+
+## Signature
+
+```dotnet
+public Context SetUserPrompt(string userPrompt)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 466.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-valid-contexts-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-valid-contexts-list-string.mdx
new file mode 100644
index 0000000000..10e5428af9
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-valid-contexts-list-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-valid-contexts-list-string"
+title: "SetValidContexts(List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetValidContexts(System.Collections.Generic.List)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetValidContexts(List)`
+
+## Signature
+
+```dotnet
+public Context SetValidContexts(List contexts)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 461.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-valid-steps-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-valid-steps-list-string.mdx
new file mode 100644
index 0000000000..4652b42266
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/set-valid-steps-list-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/set-valid-steps-list-string"
+title: "SetValidSteps(List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.SetValidSteps(System.Collections.Generic.List)"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetValidSteps(List)`
+
+## Signature
+
+```dotnet
+public Context SetValidSteps(List steps)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Context`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 462.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/to-dict.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/to-dict.mdx
new file mode 100644
index 0000000000..06070896d5
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/context/to-dict.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/context/to-dict"
+title: "ToDict()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Context.ToDict()"
+ parent: "SignalWire.Contexts.Context"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `ToDict()`
+
+## Signature
+
+```dotnet
+public Dictionary ToDict()
+```
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 535.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/add-question-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/add-question-dictionary-string-object.mdx
new file mode 100644
index 0000000000..d8d024811c
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/add-question-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/gather-info/add-question-dictionary-string-object"
+title: "AddQuestion(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.GatherInfo.AddQuestion(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Contexts.GatherInfo"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddQuestion(Dictionary)`
+
+## Signature
+
+```dotnet
+public GatherInfo AddQuestion(Dictionary opts)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.GatherInfo`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 81.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/gather-info-string-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/gather-info-string-string-string.mdx
new file mode 100644
index 0000000000..1c6f1d5c2a
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/gather-info-string-string-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/gather-info/gather-info-string-string-string"
+title: "GatherInfo(string?, string?, string?)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.GatherInfo.GatherInfo(string?, string?, string?)"
+ parent: "SignalWire.Contexts.GatherInfo"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GatherInfo(string?, string?, string?)`
+
+## Signature
+
+```dotnet
+public GatherInfo(string? outputKey = null, string? completionAction = null, string? prompt = null)
+```
+
+## Parameters
+
+
+
+
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 74.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/index.mdx
new file mode 100644
index 0000000000..fbbd467327
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/index.mdx
@@ -0,0 +1,44 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/gather-info"
+title: "GatherInfo"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.GatherInfo"
+ parent: "SignalWire.Contexts"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GatherInfo`
+
+## Signature
+
+```dotnet
+public class GatherInfo
+```
+
+## Properties
+
+
+
+
+
+## Methods
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 67.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/to-dict.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/to-dict.mdx
new file mode 100644
index 0000000000..bd91a8a020
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-info/to-dict.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/gather-info/to-dict"
+title: "ToDict()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.GatherInfo.ToDict()"
+ parent: "SignalWire.Contexts.GatherInfo"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `ToDict()`
+
+## Signature
+
+```dotnet
+public Dictionary ToDict()
+```
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 90.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/gather-question-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/gather-question-dictionary-string-object.mdx
new file mode 100644
index 0000000000..9a090167fb
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/gather-question-dictionary-string-object.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/gather-question/gather-question-dictionary-string-object"
+title: "GatherQuestion(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.GatherQuestion.GatherQuestion(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Contexts.GatherQuestion"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GatherQuestion(Dictionary)`
+
+## Signature
+
+```dotnet
+public GatherQuestion(Dictionary opts)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 38.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/index.mdx
new file mode 100644
index 0000000000..d79b143019
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/index.mdx
@@ -0,0 +1,40 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/gather-question"
+title: "GatherQuestion"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.GatherQuestion"
+ parent: "SignalWire.Contexts"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `GatherQuestion`
+
+## Signature
+
+```dotnet
+public class GatherQuestion
+```
+
+## Properties
+
+
+
+## Methods
+
+
+
+
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 29.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/to-dict.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/to-dict.mdx
new file mode 100644
index 0000000000..9d75d15e51
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/gather-question/to-dict.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/gather-question/to-dict"
+title: "ToDict()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.GatherQuestion.ToDict()"
+ parent: "SignalWire.Contexts.GatherQuestion"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `ToDict()`
+
+## Signature
+
+```dotnet
+public Dictionary ToDict()
+```
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 50.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/index.mdx
new file mode 100644
index 0000000000..676e029762
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/index.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts"
+title: "SignalWire.Contexts"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "module"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts"
+---
+# `SignalWire.Contexts`
+
+## Classes
+
+
+
+
+
+ Builder for multi-step, multi-context AI agent workflows. <p>A ContextBuilder owns one or more <xref href="SignalWire.Contexts.Context" data-throw-if-not-resolved="false"></xref>s; each context owns an ordered list of <xref href="SignalWire.Contexts.Step" data-throw-if-not-resolved="false"></xref>s. Only one context and one step is active at a time. Per chat turn, the runtime injects the current step's instructions as a system message, then asks the LLM for a response.</p> <p><b>Native tools auto-injected by the runtime:</b> When a step (or its enclosing context) declares valid\_steps or valid\_contexts, the runtime auto-injects two native tools so the model can navigate the flow: <code>next\_step</code> and <code>change\_context</code>. A third native tool, <code>gather\_submit</code>, is injected during gather\_info questioning. These three names are reserved: <xref href="SignalWire.Contexts.ContextBuilder.Validate" data-throw-if-not-resolved="false"></xref> rejects any agent that defines a SWAIG tool with one of them. See <xref href="SignalWire.Contexts.ReservedToolNames.Reserved" data-throw-if-not-resolved="false"></xref>.</p> <p><b>Function whitelisting (<xref href="SignalWire.Contexts.Step.SetFunctions(System.Object)" data-throw-if-not-resolved="false"></xref>):</b> Each step may declare a functions whitelist. The whitelist is applied in-memory at the start of each LLM turn. CRITICALLY: if a step does NOT declare a functions field, it INHERITS the previous step's active set. See <xref href="SignalWire.Contexts.Step.SetFunctions(System.Object)" data-throw-if-not-resolved="false"></xref> for details and examples.</p>
+
+
+
+
+
+
+
+ Reserved tool names auto-injected by the runtime when contexts/steps are present. User-defined SWAIG tools must not collide with these names. <ul><li><code>next\_step</code> / <code>change\_context</code> are injected when valid\_steps or valid\_contexts is set so the model can navigate the flow.</li><li><code>gather\_submit</code> is injected while a step's gather\_info is collecting answers.</li></ul> <xref href="SignalWire.Contexts.ContextBuilder.Validate" data-throw-if-not-resolved="false"></xref> rejects any agent that registers a user tool sharing one of these names — the runtime would never call the user tool because the native one wins.
+
+
+
+
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/reserved-tool-names/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/reserved-tool-names/index.mdx
new file mode 100644
index 0000000000..bf94e86685
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/reserved-tool-names/index.mdx
@@ -0,0 +1,45 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/reserved-tool-names"
+title: "ReservedToolNames"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.ReservedToolNames"
+ parent: "SignalWire.Contexts"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `ReservedToolNames`
+
+Reserved tool names auto-injected by the runtime when contexts/steps are
+present. User-defined SWAIG tools must not collide with these names.
+
+<ul><li><code>next_step</code> / <code>change_context</code> are injected when
+valid_steps or valid_contexts is set so the model can navigate the flow.</li><li><code>gather_submit</code> is injected while a step's gather_info is
+collecting answers.</li></ul>
+
+<xref href="SignalWire.Contexts.ContextBuilder.Validate" data-throw-if-not-resolved="false"></xref> rejects any agent that registers a
+user tool sharing one of these names — the runtime would never call the
+user tool because the native one wins.
+
+**Modifiers:** `static`
+
+## Signature
+
+```dotnet
+public static class ReservedToolNames
+```
+
+## Properties
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 17.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-bullets-string-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-bullets-string-list-string.mdx
new file mode 100644
index 0000000000..49b015e259
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-bullets-string-list-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/add-bullets-string-list-string"
+title: "AddBullets(string, List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.AddBullets(string, System.Collections.Generic.List)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddBullets(string, List)`
+
+## Signature
+
+```dotnet
+public Step AddBullets(string title, List bullets)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 143.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-gather-question-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-gather-question-dictionary-string-object.mdx
new file mode 100644
index 0000000000..83ab2e4102
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-gather-question-dictionary-string-object.mdx
@@ -0,0 +1,57 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/add-gather-question-dictionary-string-object"
+title: "AddGatherQuestion(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.AddGatherQuestion(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddGatherQuestion(Dictionary)`
+
+Add a question to this step's gather\_info. Initializes gather\_info
+if not yet set.
+
+<p><b>IMPORTANT — gather mode locks function access:</b> While
+the model is asking gather questions, the runtime forcibly
+deactivates ALL of the step's other functions. The only callable
+tools during a gather question are:</p>
+
+<ul><li><code>gather_submit</code> (the native answer-submission tool)</li><li>Whatever names you pass in this question's <code>"functions"</code>
+option</li></ul>
+
+<p><code>next_step</code> and <code>change_context</code> are also filtered
+out — the model cannot navigate away until the gather completes.
+This is by design: it forces a tight ask → submit → next-question
+loop.</p>
+
+<p>If a question needs to call out to a tool (e.g. validate an
+email, geocode a ZIP), list that tool name in this question's
+<code>"functions"</code> option. Functions listed here are active ONLY
+for this question.</p>
+
+## Signature
+
+```dotnet
+public Step AddGatherQuestion(Dictionary opts)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 255.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-section-string-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-section-string-string.mdx
new file mode 100644
index 0000000000..8c2d3d9130
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/add-section-string-string.mdx
@@ -0,0 +1,38 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/add-section-string-string"
+title: "AddSection(string, string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.AddSection(string, string)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `AddSection(string, string)`
+
+## Signature
+
+```dotnet
+public Step AddSection(string title, string body)
+```
+
+## Parameters
+
+
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 135.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/clear-sections.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/clear-sections.mdx
new file mode 100644
index 0000000000..aeb8d1bdb8
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/clear-sections.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/clear-sections"
+title: "ClearSections()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.ClearSections()"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `ClearSections()`
+
+## Signature
+
+```dotnet
+public Step ClearSections()
+```
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 151.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/index.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/index.mdx
new file mode 100644
index 0000000000..20e7916d04
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/index.mdx
@@ -0,0 +1,86 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step"
+title: "Step"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "class"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step"
+ parent: "SignalWire.Contexts"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `Step`
+
+## Signature
+
+```dotnet
+public class Step
+```
+
+## Properties
+
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+
+ Add a question to this step's gather\_info. Initializes gather\_info if not yet set. <p><b>IMPORTANT — gather mode locks function access:</b> While the model is asking gather questions, the runtime forcibly deactivates ALL of the step's other functions. The only callable tools during a gather question are:</p> <ul><li><code>gather\_submit</code> (the native answer-submission tool)</li><li>Whatever names you pass in this question's <code>"functions"</code> option</li></ul> <p><code>next\_step</code> and <code>change\_context</code> are also filtered out — the model cannot navigate away until the gather completes. This is by design: it forces a tight ask → submit → next-question loop.</p> <p>If a question needs to call out to a tool (e.g. validate an email, geocode a ZIP), list that tool name in this question's <code>"functions"</code> option. Functions listed here are active ONLY for this question.</p>
+
+
+
+
+
+
+
+ Mark this step as terminal for the step flow. <p><b>IMPORTANT:</b> <code class="paramref">end</code> = true does NOT end the conversation or hang up the call. It exits step mode entirely after this step executes — clearing the steps list, current step index, valid\_steps, and valid\_contexts. The agent keeps running, but operates only under the base system prompt and the context-level prompt; no more step instructions are injected and no more <code>next\_step</code> tool is offered.</p> <p>To actually end the call, call a hangup tool or define a hangup hook.</p>
+
+
+
+ Set which non-internal functions are callable while this step is active. <p><b>IMPORTANT — inheritance behavior:</b> If you do NOT call this method, the step inherits whichever function set was active on the previous step (or the previous context's last step). The server-side runtime only resets the active set when a step explicitly declares its <code>functions</code> field. This is the most common source of bugs in multi-step agents: forgetting <xref href="SignalWire.Contexts.Step.SetFunctions(System.Object)" data-throw-if-not-resolved="false"></xref> on a later step lets the previous step's tools leak through. Best practice is to call <xref href="SignalWire.Contexts.Step.SetFunctions(System.Object)" data-throw-if-not-resolved="false"></xref> explicitly on every step that should differ from the previous one.</p> <p>Keep the per-step active set small: LLM tool selection accuracy degrades noticeably past ~7-8 simultaneously-active tools per call. Use per-step whitelisting to partition large tool collections.</p> <p>Internal functions (e.g. <code>gather\_submit</code>, hangup hook) are ALWAYS protected and cannot be deactivated by this whitelist. The native navigation tools <code>next\_step</code> and <code>change\_context</code> are injected automatically when <xref href="SignalWire.Contexts.Step.SetValidSteps(System.Collections.Generic.List%7bSystem.String%7d)" data-throw-if-not-resolved="false"></xref> / <xref href="SignalWire.Contexts.Step.SetValidContexts(System.Collections.Generic.List%7bSystem.String%7d)" data-throw-if-not-resolved="false"></xref> is used; they are not affected by this list.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 105.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-end-bool.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-end-bool.mdx
new file mode 100644
index 0000000000..eb546035c9
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-end-bool.mdx
@@ -0,0 +1,49 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-end-bool"
+title: "SetEnd(bool)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetEnd(bool)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetEnd(bool)`
+
+Mark this step as terminal for the step flow.
+
+<p><b>IMPORTANT:</b> <code class="paramref">end</code> = true does NOT end
+the conversation or hang up the call. It exits step mode entirely
+after this step executes — clearing the steps list, current step
+index, valid_steps, and valid_contexts. The agent keeps running,
+but operates only under the base system prompt and the
+context-level prompt; no more step instructions are injected and
+no more <code>next_step</code> tool is offered.</p>
+
+<p>To actually end the call, call a hangup tool or define a
+hangup hook.</p>
+
+## Signature
+
+```dotnet
+public Step SetEnd(bool end)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 216.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-functions-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-functions-object.mdx
new file mode 100644
index 0000000000..a55d6e68dc
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-functions-object.mdx
@@ -0,0 +1,64 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-functions-object"
+title: "SetFunctions(object)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetFunctions(object)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetFunctions(object)`
+
+Set which non-internal functions are callable while this step is
+active.
+
+<p><b>IMPORTANT — inheritance behavior:</b> If you do NOT call
+this method, the step inherits whichever function set was active on
+the previous step (or the previous context's last step). The
+server-side runtime only resets the active set when a step
+explicitly declares its <code>functions</code> field. This is the most
+common source of bugs in multi-step agents: forgetting
+<xref href="SignalWire.Contexts.Step.SetFunctions(System.Object)" data-throw-if-not-resolved="false"></xref> on a later step lets the previous step's
+tools leak through. Best practice is to call
+<xref href="SignalWire.Contexts.Step.SetFunctions(System.Object)" data-throw-if-not-resolved="false"></xref> explicitly on every step that should
+differ from the previous one.</p>
+
+<p>Keep the per-step active set small: LLM tool selection
+accuracy degrades noticeably past ~7-8 simultaneously-active tools
+per call. Use per-step whitelisting to partition large tool
+collections.</p>
+
+<p>Internal functions (e.g. <code>gather_submit</code>, hangup hook)
+are ALWAYS protected and cannot be deactivated by this whitelist.
+The native navigation tools <code>next_step</code> and
+<code>change_context</code> are injected automatically when
+<xref href="SignalWire.Contexts.Step.SetValidSteps(System.Collections.Generic.List%7bSystem.String%7d)" data-throw-if-not-resolved="false"></xref> / <xref href="SignalWire.Contexts.Step.SetValidContexts(System.Collections.Generic.List%7bSystem.String%7d)" data-throw-if-not-resolved="false"></xref> is
+used; they are not affected by this list.</p>
+
+## Signature
+
+```dotnet
+public Step SetFunctions(object functions)
+```
+
+## Parameters
+
+
+ One of: \\- \
List\\ — whitelist of function names allowed in this step.\ \- An empty list — explicit disable-all (no user functions callable).\
\- The string \
"none"\ — synonym for the empty list.\ \
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 197.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-gather-info-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-gather-info-dictionary-string-object.mdx
new file mode 100644
index 0000000000..b8c1566cfa
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-gather-info-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-gather-info-dictionary-string-object"
+title: "SetGatherInfo(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetGatherInfo(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetGatherInfo(Dictionary)`
+
+## Signature
+
+```dotnet
+public Step SetGatherInfo(Dictionary opts)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 221.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-consolidate-bool.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-consolidate-bool.mdx
new file mode 100644
index 0000000000..d306e599a5
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-consolidate-bool.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-reset-consolidate-bool"
+title: "SetResetConsolidate(bool)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetResetConsolidate(bool)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetResetConsolidate(bool)`
+
+## Signature
+
+```dotnet
+public Step SetResetConsolidate(bool consolidate)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 264.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-full-reset-bool.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-full-reset-bool.mdx
new file mode 100644
index 0000000000..4fc9325d54
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-full-reset-bool.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-reset-full-reset-bool"
+title: "SetResetFullReset(bool)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetResetFullReset(bool)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetResetFullReset(bool)`
+
+## Signature
+
+```dotnet
+public Step SetResetFullReset(bool fullReset)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 265.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-system-prompt-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-system-prompt-string.mdx
new file mode 100644
index 0000000000..0e2fcb640e
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-system-prompt-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-reset-system-prompt-string"
+title: "SetResetSystemPrompt(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetResetSystemPrompt(string)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetResetSystemPrompt(string)`
+
+## Signature
+
+```dotnet
+public Step SetResetSystemPrompt(string systemPrompt)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 262.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-user-prompt-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-user-prompt-string.mdx
new file mode 100644
index 0000000000..509bcdf9f8
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-reset-user-prompt-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-reset-user-prompt-string"
+title: "SetResetUserPrompt(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetResetUserPrompt(string)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetResetUserPrompt(string)`
+
+## Signature
+
+```dotnet
+public Step SetResetUserPrompt(string userPrompt)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 263.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-skip-to-next-step-bool.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-skip-to-next-step-bool.mdx
new file mode 100644
index 0000000000..646f855823
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-skip-to-next-step-bool.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-skip-to-next-step-bool"
+title: "SetSkipToNextStep(bool)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetSkipToNextStep(bool)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetSkipToNextStep(bool)`
+
+## Signature
+
+```dotnet
+public Step SetSkipToNextStep(bool skip)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 219.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-skip-user-turn-bool.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-skip-user-turn-bool.mdx
new file mode 100644
index 0000000000..51ade21e3d
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-skip-user-turn-bool.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-skip-user-turn-bool"
+title: "SetSkipUserTurn(bool)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetSkipUserTurn(bool)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetSkipUserTurn(bool)`
+
+## Signature
+
+```dotnet
+public Step SetSkipUserTurn(bool skip)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 218.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-step-criteria-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-step-criteria-string.mdx
new file mode 100644
index 0000000000..a3b1a6c073
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-step-criteria-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-step-criteria-string"
+title: "SetStepCriteria(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetStepCriteria(string)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetStepCriteria(string)`
+
+## Signature
+
+```dotnet
+public Step SetStepCriteria(string criteria)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 158.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-text-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-text-string.mdx
new file mode 100644
index 0000000000..ef3d6e4ad2
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-text-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-text-string"
+title: "SetText(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetText(string)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetText(string)`
+
+## Signature
+
+```dotnet
+public Step SetText(string text)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 127.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-valid-contexts-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-valid-contexts-list-string.mdx
new file mode 100644
index 0000000000..910ed5e997
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-valid-contexts-list-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-valid-contexts-list-string"
+title: "SetValidContexts(List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetValidContexts(System.Collections.Generic.List)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetValidContexts(List)`
+
+## Signature
+
+```dotnet
+public Step SetValidContexts(List contexts)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 200.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-valid-steps-list-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-valid-steps-list-string.mdx
new file mode 100644
index 0000000000..d957b8f9c2
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/set-valid-steps-list-string.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/set-valid-steps-list-string"
+title: "SetValidSteps(List)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.SetValidSteps(System.Collections.Generic.List)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `SetValidSteps(List)`
+
+## Signature
+
+```dotnet
+public Step SetValidSteps(List steps)
+```
+
+## Parameters
+
+
+
+## Returns
+
+`SignalWire.Contexts.Step`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 199.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/step-string.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/step-string.mdx
new file mode 100644
index 0000000000..8a404b0358
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/step-string.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/step-string"
+title: "Step(string)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.Step(string)"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `Step(string)`
+
+## Signature
+
+```dotnet
+public Step(string name)
+```
+
+## Parameters
+
+
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 123.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/to-dict.mdx b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/to-dict.mdx
new file mode 100644
index 0000000000..2cc2b3b66b
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.contexts/step/to-dict.mdx
@@ -0,0 +1,32 @@
+---
+slug: "/reference/dotnet/signal-wire.contexts/step/to-dict"
+title: "ToDict()"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.Contexts.Step.ToDict()"
+ parent: "SignalWire.Contexts.Step"
+ module: "SignalWire.Contexts"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs"
+ visibility: "public"
+---
+# `ToDict()`
+
+## Signature
+
+```dotnet
+public Dictionary ToDict()
+```
+
+## Returns
+
+`Dictionary`
+
+## Source
+
+[`src/SignalWire/Contexts/ContextBuilder.cs`](https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/Contexts/ContextBuilder.cs)
+
+Line 295.
diff --git a/fern/products/sdk-reference/dotnet/signal-wire.data-map/data-map/body-dictionary-string-object.mdx b/fern/products/sdk-reference/dotnet/signal-wire.data-map/data-map/body-dictionary-string-object.mdx
new file mode 100644
index 0000000000..d50974918f
--- /dev/null
+++ b/fern/products/sdk-reference/dotnet/signal-wire.data-map/data-map/body-dictionary-string-object.mdx
@@ -0,0 +1,36 @@
+---
+slug: "/reference/dotnet/signal-wire.data-map/data-map/body-dictionary-string-object"
+title: "Body(Dictionary)"
+sdk_label: ".NET SDK"
+icon: "dotnet"
+lustri:
+ auto_generated: true
+ kind: "method"
+ language: "dotnet"
+ qualified_name: "SignalWire.DataMap.DataMap.Body(System.Collections.Generic.Dictionary)"
+ parent: "SignalWire.DataMap.DataMap"
+ module: "SignalWire.DataMap"
+ source_url: "https://github.com/signalwire/signalwire-dotnet/blob/main/src/SignalWire/DataMap/DataMap.cs"
+ visibility: "public"
+---
+# `Body(Dictionary