rcs 2.0.13 → 2.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +2 -2
  3. data/.fernignore +2 -1
  4. data/lib/pinnacle/audiences/client.rb +34 -0
  5. data/lib/pinnacle/audiences/types/list_audiences_params.rb +13 -0
  6. data/lib/pinnacle/brands/client.rb +34 -0
  7. data/lib/pinnacle/brands/types/list_brands_params.rb +15 -0
  8. data/lib/pinnacle/brands/types/list_brands_request_status.rb +18 -0
  9. data/lib/pinnacle/campaigns/dlc/client.rb +35 -0
  10. data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_params.rb +17 -0
  11. data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_request_status.rb +18 -0
  12. data/lib/pinnacle/campaigns/rcs/client.rb +35 -0
  13. data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_params.rb +17 -0
  14. data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_request_status.rb +18 -0
  15. data/lib/pinnacle/campaigns/rcs/types/upsert_rcs_campaign_params.rb +3 -6
  16. data/lib/pinnacle/campaigns/toll_free/client.rb +35 -0
  17. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb +17 -0
  18. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_request_status.rb +18 -0
  19. data/lib/pinnacle/client.rb +1 -1
  20. data/lib/pinnacle/contacts/client.rb +34 -0
  21. data/lib/pinnacle/contacts/types/list_contacts_params.rb +16 -0
  22. data/lib/pinnacle/internal/types/boolean.rb +1 -1
  23. data/lib/pinnacle/internal/types/utils.rb +2 -2
  24. data/lib/pinnacle/messages/blasts/client.rb +50 -0
  25. data/lib/pinnacle/messages/blasts/types/list_blasts_params.rb +17 -0
  26. data/lib/pinnacle/messages/client.rb +44 -0
  27. data/lib/pinnacle/messages/rcs/types/send_rich_message_response.rb +2 -0
  28. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema.rb +0 -1
  29. data/lib/pinnacle/messages/schedules/client.rb +51 -0
  30. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb +17 -0
  31. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_schedule_type.rb +16 -0
  32. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_status.rb +17 -0
  33. data/lib/pinnacle/messages/types/list_messages_params.rb +21 -0
  34. data/lib/pinnacle/messages/types/list_messages_request_direction.rb +14 -0
  35. data/lib/pinnacle/messages/types/list_messages_request_method.rb +15 -0
  36. data/lib/pinnacle/messages/types/list_messages_request_status.rb +21 -0
  37. data/lib/pinnacle/messages/types/list_messages_request_type.rb +15 -0
  38. data/lib/pinnacle/phone_numbers/client.rb +32 -3
  39. data/lib/pinnacle/phone_numbers/types/list_phone_numbers_params.rb +12 -0
  40. data/lib/pinnacle/rcs/agents/client.rb +50 -0
  41. data/lib/pinnacle/rcs/agents/types/list_agents_params.rb +16 -0
  42. data/lib/pinnacle/rcs/agents/types/list_agents_request_agent_type.rb +16 -0
  43. data/lib/pinnacle/rcs/client.rb +34 -44
  44. data/lib/pinnacle/rcs/test/client.rb +275 -0
  45. data/lib/pinnacle/rcs/test/types/create_test_agent_request.rb +24 -0
  46. data/lib/pinnacle/rcs/test/types/test_agent_whitelist_request.rb +14 -0
  47. data/lib/pinnacle/rcs/test/types/test_get_whitelist_status_request.rb +14 -0
  48. data/lib/pinnacle/rcs/test/types/update_test_agent_request.rb +25 -0
  49. data/lib/pinnacle/rcs/types/rcs_capabilities_query.rb +1 -0
  50. data/lib/pinnacle/rcs/types/rcs_link_request.rb +0 -1
  51. data/lib/pinnacle/rcs/whitelisted_numbers/client.rb +51 -0
  52. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_params.rb +17 -0
  53. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_request_status.rb +17 -0
  54. data/lib/pinnacle/tools/url/client.rb +34 -0
  55. data/lib/pinnacle/tools/url/types/list_links_params.rb +15 -0
  56. data/lib/pinnacle/types/agent_email_entry.rb +11 -0
  57. data/lib/pinnacle/types/agent_phone_entry.rb +11 -0
  58. data/lib/pinnacle/types/agent_summary.rb +15 -0
  59. data/lib/pinnacle/types/agent_summary_agent_type.rb +12 -0
  60. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +13 -0
  61. data/lib/pinnacle/types/agent_summary_config.rb +21 -0
  62. data/lib/pinnacle/types/agent_summary_config_agent_use_case.rb +14 -0
  63. data/lib/pinnacle/types/agent_summary_config_emails_item.rb +10 -0
  64. data/lib/pinnacle/types/agent_summary_config_phones_item.rb +10 -0
  65. data/lib/pinnacle/types/agent_summary_config_websites_item.rb +10 -0
  66. data/lib/pinnacle/types/agent_use_case.rb +14 -0
  67. data/lib/pinnacle/types/agent_website_entry.rb +11 -0
  68. data/lib/pinnacle/types/attach_webhook_response_webhook.rb +1 -2
  69. data/lib/pinnacle/types/attach_webhook_result.rb +12 -0
  70. data/lib/pinnacle/types/audience_summary.rb +13 -0
  71. data/lib/pinnacle/types/blast_summary.rb +16 -0
  72. data/lib/pinnacle/types/blast_summary_type.rb +13 -0
  73. data/lib/pinnacle/types/carrier_launch_status.rb +13 -0
  74. data/lib/pinnacle/types/carrier_launches.rb +13 -0
  75. data/lib/pinnacle/types/detach_webhook_result.rb +11 -0
  76. data/lib/pinnacle/types/dlc_campaign_summary.rb +15 -0
  77. data/lib/pinnacle/types/dlc_campaign_summary_status.rb +14 -0
  78. data/lib/pinnacle/types/extended_rcs_campaign.rb +3 -6
  79. data/lib/pinnacle/types/failed_sender.rb +10 -0
  80. data/lib/pinnacle/types/fallback_message.rb +5 -3
  81. data/lib/pinnacle/types/link_summary.rb +12 -0
  82. data/lib/pinnacle/types/list_agents_response.rb +11 -0
  83. data/lib/pinnacle/types/list_audiences_response.rb +11 -0
  84. data/lib/pinnacle/types/list_blasts_response.rb +11 -0
  85. data/lib/pinnacle/types/list_brands_response.rb +11 -0
  86. data/lib/pinnacle/types/list_contacts_response.rb +11 -0
  87. data/lib/pinnacle/types/list_dlc_campaigns_response.rb +11 -0
  88. data/lib/pinnacle/types/list_links_response.rb +11 -0
  89. data/lib/pinnacle/types/list_messages_response.rb +11 -0
  90. data/lib/pinnacle/types/list_phone_numbers_response.rb +11 -0
  91. data/lib/pinnacle/types/list_rcs_campaigns_response.rb +11 -0
  92. data/lib/pinnacle/types/list_scheduled_messages_response.rb +11 -0
  93. data/lib/pinnacle/types/list_test_numbers_response.rb +11 -0
  94. data/lib/pinnacle/types/list_toll_free_campaigns_response.rb +11 -0
  95. data/lib/pinnacle/types/list_webhooks_response.rb +11 -0
  96. data/lib/pinnacle/types/message.rb +0 -1
  97. data/lib/pinnacle/types/message_event.rb +2 -1
  98. data/lib/pinnacle/types/message_event_fallback_message.rb +6 -6
  99. data/lib/pinnacle/types/message_list.rb +1 -1
  100. data/lib/pinnacle/types/message_summary.rb +25 -0
  101. data/lib/pinnacle/types/{message_with_reaction_direction.rb → message_summary_direction.rb} +1 -1
  102. data/lib/pinnacle/types/message_summary_method.rb +13 -0
  103. data/lib/pinnacle/types/message_summary_status.rb +19 -0
  104. data/lib/pinnacle/types/message_summary_type.rb +13 -0
  105. data/lib/pinnacle/types/message_with_reactions.rb +11 -0
  106. data/lib/pinnacle/types/message_with_reactions_direction.rb +12 -0
  107. data/lib/pinnacle/types/owned_phone_number.rb +14 -0
  108. data/lib/pinnacle/types/rcs_agent_details.rb +21 -0
  109. data/lib/pinnacle/types/rcs_agent_details_agent_use_case.rb +14 -0
  110. data/lib/pinnacle/types/rcs_agent_details_emails_item.rb +10 -0
  111. data/lib/pinnacle/types/rcs_agent_details_phones_item.rb +10 -0
  112. data/lib/pinnacle/types/rcs_agent_details_websites_item.rb +10 -0
  113. data/lib/pinnacle/types/rcs_agent_response.rb +14 -0
  114. data/lib/pinnacle/types/rcs_campaign.rb +3 -6
  115. data/lib/pinnacle/types/rcs_campaign_summary.rb +15 -0
  116. data/lib/pinnacle/types/rcs_campaign_summary_status.rb +14 -0
  117. data/lib/pinnacle/types/rcs_whitelist_status.rb +13 -0
  118. data/lib/pinnacle/types/scheduled_message_summary.rb +17 -0
  119. data/lib/pinnacle/types/scheduled_message_summary_status.rb +13 -0
  120. data/lib/pinnacle/types/send_rich_message_options.rb +0 -1
  121. data/lib/pinnacle/types/sent_rich_message_fallback_mms.rb +13 -0
  122. data/lib/pinnacle/types/sent_rich_message_fallback_sms.rb +13 -0
  123. data/lib/pinnacle/types/test_agent_response.rb +13 -0
  124. data/lib/pinnacle/types/test_agent_whitelist_response.rb +10 -0
  125. data/lib/pinnacle/types/toll_free_campaign_summary.rb +15 -0
  126. data/lib/pinnacle/types/toll_free_campaign_summary_status.rb +14 -0
  127. data/lib/pinnacle/types/webhook_event_enum.rb +1 -0
  128. data/lib/pinnacle/types/webhook_summary.rb +14 -0
  129. data/lib/pinnacle/types/webhook_summary_status.rb +13 -0
  130. data/lib/pinnacle/types/whitelisted_number_summary.rb +12 -0
  131. data/lib/pinnacle/types/whitelisted_number_summary_status.rb +13 -0
  132. data/lib/pinnacle/version.rb +1 -1
  133. data/lib/pinnacle/webhooks/client.rb +113 -0
  134. data/lib/pinnacle/webhooks/types/attach_webhook_params.rb +15 -0
  135. data/lib/pinnacle/webhooks/types/detach_webhook_params.rb +12 -0
  136. data/lib/pinnacle/webhooks/types/list_webhooks_params.rb +14 -0
  137. data/lib/pinnacle/webhooks/types/list_webhooks_request_status.rb +15 -0
  138. data/lib/pinnacle.rb +102 -18
  139. data/reference.md +2327 -454
  140. metadata +106 -17
  141. data/lib/pinnacle/campaigns/rcs/types/rcs_use_case.rb +0 -15
  142. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema_options.rb +0 -14
  143. data/lib/pinnacle/phone_numbers/webhook/client.rb +0 -90
  144. data/lib/pinnacle/rcs/types/rcs_whitelist_request.rb +0 -12
  145. data/lib/pinnacle/types/attach_webhook_by_id_params.rb +0 -11
  146. data/lib/pinnacle/types/attach_webhook_params.rb +0 -15
  147. data/lib/pinnacle/types/configured_webhook.rb +0 -13
  148. data/lib/pinnacle/types/create_and_attach_webhook_by_url_params.rb +0 -12
  149. data/lib/pinnacle/types/detached_webhook_info.rb +0 -11
  150. data/lib/pinnacle/types/message_with_reaction.rb +0 -11
  151. data/lib/pinnacle/types/rcs_campaign_schema_extra_use_case.rb +0 -11
  152. data/lib/pinnacle/types/rcs_campaign_schema_use_case.rb +0 -11
  153. data/lib/pinnacle/types/rcs_campaign_use_case_enum.rb +0 -43
  154. data/lib/pinnacle/types/rcs_whitelist_response.rb +0 -10
data/reference.md CHANGED
@@ -565,6 +565,100 @@ This identifier is a string that always begins with the prefix `b_`, for example
565
565
  </dl>
566
566
 
567
567
 
568
+ </dd>
569
+ </dl>
570
+ </details>
571
+
572
+ <details><summary><code>client.brands.<a href="/lib/pinnacle/brands/client.rb">list</a>(request) -> Pinnacle::Types::ListBrandsResponse</code></summary>
573
+ <dl>
574
+ <dd>
575
+
576
+ #### 📝 Description
577
+
578
+ <dl>
579
+ <dd>
580
+
581
+ <dl>
582
+ <dd>
583
+
584
+ List all brands with optional filtering and pagination. Results are sorted by creation date, newest first.
585
+ </dd>
586
+ </dl>
587
+ </dd>
588
+ </dl>
589
+
590
+ #### 🔌 Usage
591
+
592
+ <dl>
593
+ <dd>
594
+
595
+ <dl>
596
+ <dd>
597
+
598
+ ```ruby
599
+ client.brands.list();
600
+ ```
601
+ </dd>
602
+ </dl>
603
+ </dd>
604
+ </dl>
605
+
606
+ #### ⚙️ Parameters
607
+
608
+ <dl>
609
+ <dd>
610
+
611
+ <dl>
612
+ <dd>
613
+
614
+ **page_index:** `Integer`
615
+
616
+ </dd>
617
+ </dl>
618
+
619
+ <dl>
620
+ <dd>
621
+
622
+ **page_size:** `Integer`
623
+
624
+ </dd>
625
+ </dl>
626
+
627
+ <dl>
628
+ <dd>
629
+
630
+ **status:** `Pinnacle::Brands::Types::ListBrandsRequestStatus`
631
+
632
+ </dd>
633
+ </dl>
634
+
635
+ <dl>
636
+ <dd>
637
+
638
+ **is_archived:** `Internal::Types::Boolean`
639
+
640
+ </dd>
641
+ </dl>
642
+
643
+ <dl>
644
+ <dd>
645
+
646
+ **name:** `String` — Case-insensitive substring search on brand name.
647
+
648
+ </dd>
649
+ </dl>
650
+
651
+ <dl>
652
+ <dd>
653
+
654
+ **request_options:** `Pinnacle::Brands::RequestOptions`
655
+
656
+ </dd>
657
+ </dl>
658
+ </dd>
659
+ </dl>
660
+
661
+
568
662
  </dd>
569
663
  </dl>
570
664
  </details>
@@ -873,6 +967,84 @@ client.audiences.update(
873
967
  </dl>
874
968
 
875
969
 
970
+ </dd>
971
+ </dl>
972
+ </details>
973
+
974
+ <details><summary><code>client.audiences.<a href="/lib/pinnacle/audiences/client.rb">list</a>(request) -> Pinnacle::Types::ListAudiencesResponse</code></summary>
975
+ <dl>
976
+ <dd>
977
+
978
+ #### 📝 Description
979
+
980
+ <dl>
981
+ <dd>
982
+
983
+ <dl>
984
+ <dd>
985
+
986
+ List all audiences with optional filtering and pagination. Results are sorted by creation date, newest first.
987
+ </dd>
988
+ </dl>
989
+ </dd>
990
+ </dl>
991
+
992
+ #### 🔌 Usage
993
+
994
+ <dl>
995
+ <dd>
996
+
997
+ <dl>
998
+ <dd>
999
+
1000
+ ```ruby
1001
+ client.audiences.list();
1002
+ ```
1003
+ </dd>
1004
+ </dl>
1005
+ </dd>
1006
+ </dl>
1007
+
1008
+ #### ⚙️ Parameters
1009
+
1010
+ <dl>
1011
+ <dd>
1012
+
1013
+ <dl>
1014
+ <dd>
1015
+
1016
+ **page_index:** `Integer`
1017
+
1018
+ </dd>
1019
+ </dl>
1020
+
1021
+ <dl>
1022
+ <dd>
1023
+
1024
+ **page_size:** `Integer`
1025
+
1026
+ </dd>
1027
+ </dl>
1028
+
1029
+ <dl>
1030
+ <dd>
1031
+
1032
+ **name:** `String` — Filter audiences by name (partial match).
1033
+
1034
+ </dd>
1035
+ </dl>
1036
+
1037
+ <dl>
1038
+ <dd>
1039
+
1040
+ **request_options:** `Pinnacle::Audiences::RequestOptions`
1041
+
1042
+ </dd>
1043
+ </dl>
1044
+ </dd>
1045
+ </dl>
1046
+
1047
+
876
1048
  </dd>
877
1049
  </dl>
878
1050
  </details>
@@ -1078,6 +1250,108 @@ client.contacts.update(
1078
1250
  </dl>
1079
1251
 
1080
1252
 
1253
+ </dd>
1254
+ </dl>
1255
+ </details>
1256
+
1257
+ <details><summary><code>client.contacts.<a href="/lib/pinnacle/contacts/client.rb">list</a>(request) -> Pinnacle::Types::ListContactsResponse</code></summary>
1258
+ <dl>
1259
+ <dd>
1260
+
1261
+ #### 📝 Description
1262
+
1263
+ <dl>
1264
+ <dd>
1265
+
1266
+ <dl>
1267
+ <dd>
1268
+
1269
+ List all contacts with optional filtering and pagination. Results are sorted by creation date, newest first.
1270
+ </dd>
1271
+ </dl>
1272
+ </dd>
1273
+ </dl>
1274
+
1275
+ #### 🔌 Usage
1276
+
1277
+ <dl>
1278
+ <dd>
1279
+
1280
+ <dl>
1281
+ <dd>
1282
+
1283
+ ```ruby
1284
+ client.contacts.list();
1285
+ ```
1286
+ </dd>
1287
+ </dl>
1288
+ </dd>
1289
+ </dl>
1290
+
1291
+ #### ⚙️ Parameters
1292
+
1293
+ <dl>
1294
+ <dd>
1295
+
1296
+ <dl>
1297
+ <dd>
1298
+
1299
+ **page_index:** `Integer`
1300
+
1301
+ </dd>
1302
+ </dl>
1303
+
1304
+ <dl>
1305
+ <dd>
1306
+
1307
+ **page_size:** `Integer`
1308
+
1309
+ </dd>
1310
+ </dl>
1311
+
1312
+ <dl>
1313
+ <dd>
1314
+
1315
+ **phone_number:** `String` — Filter contacts by phone number (E.164 format).
1316
+
1317
+ </dd>
1318
+ </dl>
1319
+
1320
+ <dl>
1321
+ <dd>
1322
+
1323
+ **name:** `String` — Filter contacts by name (partial match).
1324
+
1325
+ </dd>
1326
+ </dl>
1327
+
1328
+ <dl>
1329
+ <dd>
1330
+
1331
+ **tags:** `Internal::Types::Array[String]` — Filter contacts by tags.
1332
+
1333
+ </dd>
1334
+ </dl>
1335
+
1336
+ <dl>
1337
+ <dd>
1338
+
1339
+ **is_archived:** `Internal::Types::Boolean` — Filter contacts by archived status.
1340
+
1341
+ </dd>
1342
+ </dl>
1343
+
1344
+ <dl>
1345
+ <dd>
1346
+
1347
+ **request_options:** `Pinnacle::Contacts::RequestOptions`
1348
+
1349
+ </dd>
1350
+ </dl>
1351
+ </dd>
1352
+ </dl>
1353
+
1354
+
1081
1355
  </dd>
1082
1356
  </dl>
1083
1357
  </details>
@@ -1628,8 +1902,7 @@ Use `null` to remove existing reaction.
1628
1902
  </dl>
1629
1903
  </details>
1630
1904
 
1631
- ## PhoneNumbers
1632
- <details><summary><code>client.phone_numbers.<a href="/lib/pinnacle/phone_numbers/client.rb">search</a>(request) -> Internal::Types::Array[Pinnacle::Types::PhoneNumberDetails]</code></summary>
1905
+ <details><summary><code>client.messages.<a href="/lib/pinnacle/messages/client.rb">list</a>(request) -> Pinnacle::Types::ListMessagesResponse</code></summary>
1633
1906
  <dl>
1634
1907
  <dd>
1635
1908
 
@@ -1641,7 +1914,7 @@ Use `null` to remove existing reaction.
1641
1914
  <dl>
1642
1915
  <dd>
1643
1916
 
1644
- Search for available phone numbers that match your exact criteria.
1917
+ List all messages with optional filtering and pagination. Results are sorted by creation date, newest first.
1645
1918
  </dd>
1646
1919
  </dl>
1647
1920
  </dd>
@@ -1656,8 +1929,151 @@ Search for available phone numbers that match your exact criteria.
1656
1929
  <dd>
1657
1930
 
1658
1931
  ```ruby
1659
- client.phone_numbers.search(
1660
- features: ['SMS', 'MMS'],
1932
+ client.messages.list();
1933
+ ```
1934
+ </dd>
1935
+ </dl>
1936
+ </dd>
1937
+ </dl>
1938
+
1939
+ #### ⚙️ Parameters
1940
+
1941
+ <dl>
1942
+ <dd>
1943
+
1944
+ <dl>
1945
+ <dd>
1946
+
1947
+ **page_index:** `Integer`
1948
+
1949
+ </dd>
1950
+ </dl>
1951
+
1952
+ <dl>
1953
+ <dd>
1954
+
1955
+ **page_size:** `Integer`
1956
+
1957
+ </dd>
1958
+ </dl>
1959
+
1960
+ <dl>
1961
+ <dd>
1962
+
1963
+ **direction:** `Pinnacle::Messages::Types::ListMessagesRequestDirection`
1964
+
1965
+ </dd>
1966
+ </dl>
1967
+
1968
+ <dl>
1969
+ <dd>
1970
+
1971
+ **status:** `Pinnacle::Messages::Types::ListMessagesRequestStatus`
1972
+
1973
+ </dd>
1974
+ </dl>
1975
+
1976
+ <dl>
1977
+ <dd>
1978
+
1979
+ **type:** `Pinnacle::Messages::Types::ListMessagesRequestType`
1980
+
1981
+ </dd>
1982
+ </dl>
1983
+
1984
+ <dl>
1985
+ <dd>
1986
+
1987
+ **method_:** `Pinnacle::Messages::Types::ListMessagesRequestMethod` — Filter by the method used to send the message.
1988
+
1989
+ </dd>
1990
+ </dl>
1991
+
1992
+ <dl>
1993
+ <dd>
1994
+
1995
+ **from:** `String` — Filter by sender phone number (E.164 format) or agent id.
1996
+
1997
+ </dd>
1998
+ </dl>
1999
+
2000
+ <dl>
2001
+ <dd>
2002
+
2003
+ **to:** `String` — Filter by recipient phone number (E.164 format).
2004
+
2005
+ </dd>
2006
+ </dl>
2007
+
2008
+ <dl>
2009
+ <dd>
2010
+
2011
+ **content:** `String` — Search message content (partial match, case-insensitive).
2012
+
2013
+ </dd>
2014
+ </dl>
2015
+
2016
+ <dl>
2017
+ <dd>
2018
+
2019
+ **date_from:** `String` — Filter messages created on or after this date (ISO 8601 format).
2020
+
2021
+ </dd>
2022
+ </dl>
2023
+
2024
+ <dl>
2025
+ <dd>
2026
+
2027
+ **date_to:** `String` — Filter messages created on or before this date (ISO 8601 format).
2028
+
2029
+ </dd>
2030
+ </dl>
2031
+
2032
+ <dl>
2033
+ <dd>
2034
+
2035
+ **request_options:** `Pinnacle::Messages::RequestOptions`
2036
+
2037
+ </dd>
2038
+ </dl>
2039
+ </dd>
2040
+ </dl>
2041
+
2042
+
2043
+ </dd>
2044
+ </dl>
2045
+ </details>
2046
+
2047
+ ## PhoneNumbers
2048
+ <details><summary><code>client.phone_numbers.<a href="/lib/pinnacle/phone_numbers/client.rb">search</a>(request) -> Internal::Types::Array[Pinnacle::Types::PhoneNumberDetails]</code></summary>
2049
+ <dl>
2050
+ <dd>
2051
+
2052
+ #### 📝 Description
2053
+
2054
+ <dl>
2055
+ <dd>
2056
+
2057
+ <dl>
2058
+ <dd>
2059
+
2060
+ Search for available phone numbers that match your exact criteria.
2061
+ </dd>
2062
+ </dl>
2063
+ </dd>
2064
+ </dl>
2065
+
2066
+ #### 🔌 Usage
2067
+
2068
+ <dl>
2069
+ <dd>
2070
+
2071
+ <dl>
2072
+ <dd>
2073
+
2074
+ ```ruby
2075
+ client.phone_numbers.search(
2076
+ features: ['SMS', 'MMS'],
1661
2077
  location: {
1662
2078
  city: 'New York',
1663
2079
  national_destination_code: '212'
@@ -1902,8 +2318,7 @@ Choose how much detail you want in your results:
1902
2318
  </dl>
1903
2319
  </details>
1904
2320
 
1905
- ## RCS
1906
- <details><summary><code>client.rcs.<a href="/lib/pinnacle/rcs/client.rb">get_capabilities</a>(request) -> Internal::Types::Hash[String, Pinnacle::Types::RcsCapability]</code></summary>
2321
+ <details><summary><code>client.phone_numbers.<a href="/lib/pinnacle/phone_numbers/client.rb">list</a>(request) -> Pinnacle::Types::ListPhoneNumbersResponse</code></summary>
1907
2322
  <dl>
1908
2323
  <dd>
1909
2324
 
@@ -1915,10 +2330,7 @@ Choose how much detail you want in your results:
1915
2330
  <dl>
1916
2331
  <dd>
1917
2332
 
1918
- Check RCS capabilities for one or more phone numbers.
1919
-
1920
- This endpoint allows you to verify which RCS features (cards, buttons, etc.) are supported
1921
- on specific phone numbers before sending RCS messages to them.
2333
+ List all owned phone numbers with pagination. Results are sorted by creation date, newest first.
1922
2334
  </dd>
1923
2335
  </dl>
1924
2336
  </dd>
@@ -1933,7 +2345,7 @@ on specific phone numbers before sending RCS messages to them.
1933
2345
  <dd>
1934
2346
 
1935
2347
  ```ruby
1936
- client.rcs.get_capabilities(phone_numbers: ['+12345678901', '+19876543210']);
2348
+ client.phone_numbers.list();
1937
2349
  ```
1938
2350
  </dd>
1939
2351
  </dl>
@@ -1948,10 +2360,15 @@ client.rcs.get_capabilities(phone_numbers: ['+12345678901', '+19876543210']);
1948
2360
  <dl>
1949
2361
  <dd>
1950
2362
 
1951
- **phone_numbers:** `Internal::Types::Array[String]`
2363
+ **page_index:** `Integer`
2364
+
2365
+ </dd>
2366
+ </dl>
1952
2367
 
1953
- List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
1954
- **Limit:** 1 min
2368
+ <dl>
2369
+ <dd>
2370
+
2371
+ **page_size:** `Integer`
1955
2372
 
1956
2373
  </dd>
1957
2374
  </dl>
@@ -1959,7 +2376,7 @@ List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
1959
2376
  <dl>
1960
2377
  <dd>
1961
2378
 
1962
- **request_options:** `Pinnacle::Rcs::RequestOptions`
2379
+ **request_options:** `Pinnacle::PhoneNumbers::RequestOptions`
1963
2380
 
1964
2381
  </dd>
1965
2382
  </dl>
@@ -1971,7 +2388,8 @@ List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
1971
2388
  </dl>
1972
2389
  </details>
1973
2390
 
1974
- <details><summary><code>client.rcs.<a href="/lib/pinnacle/rcs/client.rb">whitelist</a>(request) -> Pinnacle::Types::RcsWhitelistResponse</code></summary>
2391
+ ## Rcs
2392
+ <details><summary><code>client.rcs.<a href="/lib/pinnacle/rcs/client.rb">get_agent</a>(agent_id) -> Pinnacle::Types::RcsAgentResponse</code></summary>
1975
2393
  <dl>
1976
2394
  <dd>
1977
2395
 
@@ -1983,31 +2401,75 @@ List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
1983
2401
  <dl>
1984
2402
  <dd>
1985
2403
 
1986
- Whitelist a phone number for testing with your test RCS agent.
2404
+ Retrieve details of an RCS agent by its ID.
1987
2405
 
1988
- ## Overview
1989
- During development and testing, RCS agents can only send messages to whitelisted phone numbers.
1990
- Use this endpoint to whitelist specific phone numbers to send and receive messages from the test agent.
2406
+ Returns the agent's configuration including display name, description, logo, hero image,
2407
+ contact information, and other settings.
2408
+ </dd>
2409
+ </dl>
2410
+ </dd>
2411
+ </dl>
1991
2412
 
1992
- ## Verification Process
1993
- After whitelisting a number, you'll need to complete verification:
2413
+ #### 🔌 Usage
2414
+
2415
+ <dl>
2416
+ <dd>
1994
2417
 
1995
- 1. Check the test device for message from "RBM Tester Management"
1996
- 2. Click the "Make me a tester" button
1997
- 3. Enter the separate 4-digit verification SMS code in the Pinnacle dashboard at:
1998
- ```
1999
- https://app.pinnacle.sh/dashboard/brands/{brandId}?campaignId={campaignId}&campaignType=RCS
2000
- ```
2418
+ <dl>
2419
+ <dd>
2001
2420
 
2002
- > **⚠️ Important: Re-whitelisting Numbers**
2003
- >
2004
- > If you whitelist a number that's already whitelisted, you'll receive a new message from "RBM Tester Management". **You must click the "Make me a tester" button again to continue sending and receiving messages.**
2421
+ ```ruby
2422
+ client.rcs.get_agent(agent_id: 'agent_abc123def456');
2423
+ ```
2424
+ </dd>
2425
+ </dl>
2426
+ </dd>
2427
+ </dl>
2005
2428
 
2006
- > **Important Notes**
2007
- >
2008
- > - **Verification required:** Messages cannot be sent nor received until you have clicked the "Make me a tester" button on the test device.
2009
- > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number.
2010
- > - **Network limitations:** Whitelisting may be temporarily unavailable for some carriers but are usually restored shortly.
2429
+ #### ⚙️ Parameters
2430
+
2431
+ <dl>
2432
+ <dd>
2433
+
2434
+ <dl>
2435
+ <dd>
2436
+
2437
+ **agent_id:** `String` — The RCS agent ID (must be prefixed with `agent_`).
2438
+
2439
+ </dd>
2440
+ </dl>
2441
+
2442
+ <dl>
2443
+ <dd>
2444
+
2445
+ **request_options:** `Pinnacle::Rcs::RequestOptions`
2446
+
2447
+ </dd>
2448
+ </dl>
2449
+ </dd>
2450
+ </dl>
2451
+
2452
+
2453
+ </dd>
2454
+ </dl>
2455
+ </details>
2456
+
2457
+ <details><summary><code>client.rcs.<a href="/lib/pinnacle/rcs/client.rb">get_capabilities</a>(request) -> Internal::Types::Hash[String, Pinnacle::Types::RcsCapability]</code></summary>
2458
+ <dl>
2459
+ <dd>
2460
+
2461
+ #### 📝 Description
2462
+
2463
+ <dl>
2464
+ <dd>
2465
+
2466
+ <dl>
2467
+ <dd>
2468
+
2469
+ Check RCS capabilities for one or more phone numbers.
2470
+
2471
+ This endpoint allows you to verify which RCS features (cards, buttons, etc.) are supported
2472
+ on specific phone numbers before sending RCS messages to them.
2011
2473
  </dd>
2012
2474
  </dl>
2013
2475
  </dd>
@@ -2022,10 +2484,7 @@ After whitelisting a number, you'll need to complete verification:
2022
2484
  <dd>
2023
2485
 
2024
2486
  ```ruby
2025
- client.rcs.whitelist(
2026
- agent_id: 'agent_XXXXXXXXXXXX',
2027
- phone_number: '+12345678901'
2028
- );
2487
+ client.rcs.get_capabilities(phone_numbers: ['+12345678901', '+19876543210']);
2029
2488
  ```
2030
2489
  </dd>
2031
2490
  </dl>
@@ -2040,7 +2499,10 @@ client.rcs.whitelist(
2040
2499
  <dl>
2041
2500
  <dd>
2042
2501
 
2043
- **agent_id:** `String` — The RCS agent ID (must be prefixed with 'agent_')
2502
+ **phone_numbers:** `Internal::Types::Array[String]`
2503
+
2504
+ List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
2505
+ **Limit:** 1 min
2044
2506
 
2045
2507
  </dd>
2046
2508
  </dl>
@@ -2048,7 +2510,7 @@ client.rcs.whitelist(
2048
2510
  <dl>
2049
2511
  <dd>
2050
2512
 
2051
- **phone_number:** `String` — Phone number to whitelist for testing (E.164 format)
2513
+ **agent_id:** `String` — Optional RCS agent ID (prefixed with 'agent_') to check capabilities of a number from a specific agent.
2052
2514
 
2053
2515
  </dd>
2054
2516
  </dl>
@@ -2080,7 +2542,7 @@ client.rcs.whitelist(
2080
2542
  <dl>
2081
2543
  <dd>
2082
2544
 
2083
- Generate a link for initiating an RCS conversation with your agent.
2545
+ Generate a link for initiating an RCS conversation with your agent.
2084
2546
 
2085
2547
  Users can click these links to start conversations with your RCS agent directly
2086
2548
  from websites, emails, or other applications.
@@ -2100,7 +2562,6 @@ from websites, emails, or other applications.
2100
2562
  ```ruby
2101
2563
  client.rcs.get_link(
2102
2564
  agent_id: 'agent_XXXXXXXXXXXX',
2103
- test_mode: false,
2104
2565
  phone_number: '+12345678901',
2105
2566
  body: 'Hello, I need help with my order'
2106
2567
  );
@@ -2126,14 +2587,6 @@ client.rcs.get_link(
2126
2587
  <dl>
2127
2588
  <dd>
2128
2589
 
2129
- **test_mode:** `Internal::Types::Boolean` — Link to the test agent or the production agent if false
2130
-
2131
- </dd>
2132
- </dl>
2133
-
2134
- <dl>
2135
- <dd>
2136
-
2137
2590
  **phone_number:** `String` — Fallback phone number (E.164 format) to use if the phone number does not support RCS. If not provided, no url will be generated.
2138
2591
 
2139
2592
  </dd>
@@ -2228,8 +2681,7 @@ List of URLs or phone numbers in E.164 format that the webhook is attached to. <
2228
2681
  </dl>
2229
2682
  </details>
2230
2683
 
2231
- ## Audiences Contacts
2232
- <details><summary><code>client.audiences.contacts.<a href="/lib/pinnacle/audiences/contacts/client.rb">remove</a>(request) -> Pinnacle::Types::AudienceCountOnly</code></summary>
2684
+ <details><summary><code>client.webhooks.<a href="/lib/pinnacle/webhooks/client.rb">list</a>(request) -> Pinnacle::Types::ListWebhooksResponse</code></summary>
2233
2685
  <dl>
2234
2686
  <dd>
2235
2687
 
@@ -2241,10 +2693,7 @@ List of URLs or phone numbers in E.164 format that the webhook is attached to. <
2241
2693
  <dl>
2242
2694
  <dd>
2243
2695
 
2244
- Remove contacts from an existing audience. This operation is idempotent.
2245
-
2246
- - Only removes contacts that exist in the audience
2247
- - Contacts not in the audience are ignored
2696
+ List all webhooks with optional filtering and pagination. Results are sorted by creation date, newest first.
2248
2697
  </dd>
2249
2698
  </dl>
2250
2699
  </dd>
@@ -2259,10 +2708,7 @@ Remove contacts from an existing audience. This operation is idempotent.
2259
2708
  <dd>
2260
2709
 
2261
2710
  ```ruby
2262
- client.audiences.contacts.remove(
2263
- id: 'aud_abc123',
2264
- contacts: ['+12125551234', 'co_def456']
2265
- );
2711
+ client.webhooks.list();
2266
2712
  ```
2267
2713
  </dd>
2268
2714
  </dl>
@@ -2277,7 +2723,7 @@ client.audiences.contacts.remove(
2277
2723
  <dl>
2278
2724
  <dd>
2279
2725
 
2280
- **id:** `String` — Audience ID. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`.
2726
+ **page_index:** `Integer`
2281
2727
 
2282
2728
  </dd>
2283
2729
  </dl>
@@ -2285,10 +2731,7 @@ client.audiences.contacts.remove(
2285
2731
  <dl>
2286
2732
  <dd>
2287
2733
 
2288
- **contacts:** `Internal::Types::Array[String]`
2289
-
2290
- Array of phone numbers (E.164 format) or contact IDs. <br><br>
2291
- **Limit:** 1 min
2734
+ **page_size:** `Integer`
2292
2735
 
2293
2736
  </dd>
2294
2737
  </dl>
@@ -2296,25 +2739,298 @@ Array of phone numbers (E.164 format) or contact IDs. <br><br>
2296
2739
  <dl>
2297
2740
  <dd>
2298
2741
 
2299
- **request_options:** `Pinnacle::Audiences::Contacts::RequestOptions`
2742
+ **status:** `Pinnacle::Webhooks::Types::ListWebhooksRequestStatus`
2300
2743
 
2301
2744
  </dd>
2302
2745
  </dl>
2303
- </dd>
2304
- </dl>
2305
2746
 
2747
+ <dl>
2748
+ <dd>
2306
2749
 
2750
+ **endpoint:** `String` — Filter webhooks by endpoint URL (partial match, case-insensitive).
2751
+
2307
2752
  </dd>
2308
2753
  </dl>
2309
- </details>
2310
2754
 
2311
- <details><summary><code>client.audiences.contacts.<a href="/lib/pinnacle/audiences/contacts/client.rb">add</a>(request) -> Pinnacle::Types::AudienceCountOnly</code></summary>
2312
2755
  <dl>
2313
2756
  <dd>
2314
2757
 
2315
- #### 📝 Description
2316
-
2317
- <dl>
2758
+ **request_options:** `Pinnacle::Webhooks::RequestOptions`
2759
+
2760
+ </dd>
2761
+ </dl>
2762
+ </dd>
2763
+ </dl>
2764
+
2765
+
2766
+ </dd>
2767
+ </dl>
2768
+ </details>
2769
+
2770
+ <details><summary><code>client.webhooks.<a href="/lib/pinnacle/webhooks/client.rb">attach</a>(request) -> Pinnacle::Types::AttachWebhookResult</code></summary>
2771
+ <dl>
2772
+ <dd>
2773
+
2774
+ #### 📝 Description
2775
+
2776
+ <dl>
2777
+ <dd>
2778
+
2779
+ <dl>
2780
+ <dd>
2781
+
2782
+ Attach a webhook to one or more senders (phone numbers or RCS agent IDs) to receive real-time event notifications. <br>
2783
+
2784
+ You can attach an existing webhook by providing its ID, or create a new webhook by specifying a name and URL. Supports bulk operations with up to 50 senders per request. <br>
2785
+
2786
+ Subscriptions are additive — attaching new senders does not remove existing ones. Re-attaching the same sender updates the event type filter without creating duplicates.
2787
+ </dd>
2788
+ </dl>
2789
+ </dd>
2790
+ </dl>
2791
+
2792
+ #### 🔌 Usage
2793
+
2794
+ <dl>
2795
+ <dd>
2796
+
2797
+ <dl>
2798
+ <dd>
2799
+
2800
+ ```ruby
2801
+ client.webhooks.attach(senders: ['+14155551234', 'agent_abc123']);
2802
+ ```
2803
+ </dd>
2804
+ </dl>
2805
+ </dd>
2806
+ </dl>
2807
+
2808
+ #### ⚙️ Parameters
2809
+
2810
+ <dl>
2811
+ <dd>
2812
+
2813
+ <dl>
2814
+ <dd>
2815
+
2816
+ **senders:** `Internal::Types::Array[String]` — Array of senders to attach the webhook to. Can be phone numbers in E.164 format or RCS agent IDs.
2817
+
2818
+ </dd>
2819
+ </dl>
2820
+
2821
+ <dl>
2822
+ <dd>
2823
+
2824
+ **webhook_id:** `String` — Existing webhook ID (starts with `wh_`). Provide this OR `name` + `url` to create a new webhook. The webhook must be in ENABLED status. Disabled webhooks can be re-enabled from the [dashboard](https://app.pinnacle.sh/dashboard/development/webhooks).
2825
+
2826
+ </dd>
2827
+ </dl>
2828
+
2829
+ <dl>
2830
+ <dd>
2831
+
2832
+ **name:** `String` — Name for a new webhook (required if no `webhookId`).
2833
+
2834
+ </dd>
2835
+ </dl>
2836
+
2837
+ <dl>
2838
+ <dd>
2839
+
2840
+ **url:** `String` — HTTPS endpoint URL for a new webhook (required if no `webhookId`).
2841
+
2842
+ </dd>
2843
+ </dl>
2844
+
2845
+ <dl>
2846
+ <dd>
2847
+
2848
+ **event:** `Pinnacle::Types::WebhookEventEnum`
2849
+
2850
+ Event type filter for the subscription. Set to `null` to receive all events. <br>
2851
+
2852
+ `USER.TYPING` is only supported for RCS agent senders, not phone numbers.
2853
+
2854
+ </dd>
2855
+ </dl>
2856
+
2857
+ <dl>
2858
+ <dd>
2859
+
2860
+ **request_options:** `Pinnacle::Webhooks::RequestOptions`
2861
+
2862
+ </dd>
2863
+ </dl>
2864
+ </dd>
2865
+ </dl>
2866
+
2867
+
2868
+ </dd>
2869
+ </dl>
2870
+ </details>
2871
+
2872
+ <details><summary><code>client.webhooks.<a href="/lib/pinnacle/webhooks/client.rb">detach</a>(request) -> Pinnacle::Types::DetachWebhookResult</code></summary>
2873
+ <dl>
2874
+ <dd>
2875
+
2876
+ #### 📝 Description
2877
+
2878
+ <dl>
2879
+ <dd>
2880
+
2881
+ <dl>
2882
+ <dd>
2883
+
2884
+ Detach a webhook from one or more senders (phone numbers or RCS agent IDs) to stop receiving event notifications. <br>
2885
+
2886
+ The webhook itself is not deleted and remains available for use with other senders. Works regardless of webhook status. Supports bulk operations with up to 50 senders per request.
2887
+ </dd>
2888
+ </dl>
2889
+ </dd>
2890
+ </dl>
2891
+
2892
+ #### 🔌 Usage
2893
+
2894
+ <dl>
2895
+ <dd>
2896
+
2897
+ <dl>
2898
+ <dd>
2899
+
2900
+ ```ruby
2901
+ client.webhooks.detach(
2902
+ webhook_id: 'webhookId',
2903
+ senders: ['+14155551234', 'agent_abc123']
2904
+ );
2905
+ ```
2906
+ </dd>
2907
+ </dl>
2908
+ </dd>
2909
+ </dl>
2910
+
2911
+ #### ⚙️ Parameters
2912
+
2913
+ <dl>
2914
+ <dd>
2915
+
2916
+ <dl>
2917
+ <dd>
2918
+
2919
+ **webhook_id:** `String` — Webhook ID to detach (starts with `wh_`). Must be a webhook owned by your team.
2920
+
2921
+ </dd>
2922
+ </dl>
2923
+
2924
+ <dl>
2925
+ <dd>
2926
+
2927
+ **senders:** `Internal::Types::Array[String]` — Array of senders to detach the webhook from. Can be phone numbers in E.164 format or RCS agent IDs.
2928
+
2929
+ </dd>
2930
+ </dl>
2931
+
2932
+ <dl>
2933
+ <dd>
2934
+
2935
+ **request_options:** `Pinnacle::Webhooks::RequestOptions`
2936
+
2937
+ </dd>
2938
+ </dl>
2939
+ </dd>
2940
+ </dl>
2941
+
2942
+
2943
+ </dd>
2944
+ </dl>
2945
+ </details>
2946
+
2947
+ ## Audiences Contacts
2948
+ <details><summary><code>client.audiences.contacts.<a href="/lib/pinnacle/audiences/contacts/client.rb">remove</a>(request) -> Pinnacle::Types::AudienceCountOnly</code></summary>
2949
+ <dl>
2950
+ <dd>
2951
+
2952
+ #### 📝 Description
2953
+
2954
+ <dl>
2955
+ <dd>
2956
+
2957
+ <dl>
2958
+ <dd>
2959
+
2960
+ Remove contacts from an existing audience. This operation is idempotent.
2961
+
2962
+ - Only removes contacts that exist in the audience
2963
+ - Contacts not in the audience are ignored
2964
+ </dd>
2965
+ </dl>
2966
+ </dd>
2967
+ </dl>
2968
+
2969
+ #### 🔌 Usage
2970
+
2971
+ <dl>
2972
+ <dd>
2973
+
2974
+ <dl>
2975
+ <dd>
2976
+
2977
+ ```ruby
2978
+ client.audiences.contacts.remove(
2979
+ id: 'aud_abc123',
2980
+ contacts: ['+12125551234', 'co_def456']
2981
+ );
2982
+ ```
2983
+ </dd>
2984
+ </dl>
2985
+ </dd>
2986
+ </dl>
2987
+
2988
+ #### ⚙️ Parameters
2989
+
2990
+ <dl>
2991
+ <dd>
2992
+
2993
+ <dl>
2994
+ <dd>
2995
+
2996
+ **id:** `String` — Audience ID. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`.
2997
+
2998
+ </dd>
2999
+ </dl>
3000
+
3001
+ <dl>
3002
+ <dd>
3003
+
3004
+ **contacts:** `Internal::Types::Array[String]`
3005
+
3006
+ Array of phone numbers (E.164 format) or contact IDs. <br><br>
3007
+ **Limit:** 1 min
3008
+
3009
+ </dd>
3010
+ </dl>
3011
+
3012
+ <dl>
3013
+ <dd>
3014
+
3015
+ **request_options:** `Pinnacle::Audiences::Contacts::RequestOptions`
3016
+
3017
+ </dd>
3018
+ </dl>
3019
+ </dd>
3020
+ </dl>
3021
+
3022
+
3023
+ </dd>
3024
+ </dl>
3025
+ </details>
3026
+
3027
+ <details><summary><code>client.audiences.contacts.<a href="/lib/pinnacle/audiences/contacts/client.rb">add</a>(request) -> Pinnacle::Types::AudienceCountOnly</code></summary>
3028
+ <dl>
3029
+ <dd>
3030
+
3031
+ #### 📝 Description
3032
+
3033
+ <dl>
2318
3034
  <dd>
2319
3035
 
2320
3036
  <dl>
@@ -2835,6 +3551,100 @@ client.campaigns.dlc.validate(
2835
3551
  </dl>
2836
3552
 
2837
3553
 
3554
+ </dd>
3555
+ </dl>
3556
+ </details>
3557
+
3558
+ <details><summary><code>client.campaigns.dlc.<a href="/lib/pinnacle/campaigns/dlc/client.rb">list</a>(request) -> Pinnacle::Types::ListDlcCampaignsResponse</code></summary>
3559
+ <dl>
3560
+ <dd>
3561
+
3562
+ #### 📝 Description
3563
+
3564
+ <dl>
3565
+ <dd>
3566
+
3567
+ <dl>
3568
+ <dd>
3569
+
3570
+ List all 10DLC campaigns with optional filtering and pagination. Results are sorted by creation date, newest first.
3571
+ </dd>
3572
+ </dl>
3573
+ </dd>
3574
+ </dl>
3575
+
3576
+ #### 🔌 Usage
3577
+
3578
+ <dl>
3579
+ <dd>
3580
+
3581
+ <dl>
3582
+ <dd>
3583
+
3584
+ ```ruby
3585
+ client.campaigns.dlc.list();
3586
+ ```
3587
+ </dd>
3588
+ </dl>
3589
+ </dd>
3590
+ </dl>
3591
+
3592
+ #### ⚙️ Parameters
3593
+
3594
+ <dl>
3595
+ <dd>
3596
+
3597
+ <dl>
3598
+ <dd>
3599
+
3600
+ **page_index:** `Integer`
3601
+
3602
+ </dd>
3603
+ </dl>
3604
+
3605
+ <dl>
3606
+ <dd>
3607
+
3608
+ **page_size:** `Integer`
3609
+
3610
+ </dd>
3611
+ </dl>
3612
+
3613
+ <dl>
3614
+ <dd>
3615
+
3616
+ **status:** `Pinnacle::Campaigns::Dlc::Types::ListDlcCampaignsRequestStatus`
3617
+
3618
+ </dd>
3619
+ </dl>
3620
+
3621
+ <dl>
3622
+ <dd>
3623
+
3624
+ **brand_id:** `String`
3625
+
3626
+ </dd>
3627
+ </dl>
3628
+
3629
+ <dl>
3630
+ <dd>
3631
+
3632
+ **name:** `String` — Filter by campaign name (partial match, case-insensitive).
3633
+
3634
+ </dd>
3635
+ </dl>
3636
+
3637
+ <dl>
3638
+ <dd>
3639
+
3640
+ **request_options:** `Pinnacle::Campaigns::Dlc::RequestOptions`
3641
+
3642
+ </dd>
3643
+ </dl>
3644
+ </dd>
3645
+ </dl>
3646
+
3647
+
2838
3648
  </dd>
2839
3649
  </dl>
2840
3650
  </details>
@@ -3265,6 +4075,100 @@ client.campaigns.toll_free.validate(
3265
4075
  </dl>
3266
4076
 
3267
4077
 
4078
+ </dd>
4079
+ </dl>
4080
+ </details>
4081
+
4082
+ <details><summary><code>client.campaigns.toll_free.<a href="/lib/pinnacle/campaigns/toll_free/client.rb">list</a>(request) -> Pinnacle::Types::ListTollFreeCampaignsResponse</code></summary>
4083
+ <dl>
4084
+ <dd>
4085
+
4086
+ #### 📝 Description
4087
+
4088
+ <dl>
4089
+ <dd>
4090
+
4091
+ <dl>
4092
+ <dd>
4093
+
4094
+ List all toll-free campaigns with optional filtering and pagination. Results are sorted by creation date, newest first.
4095
+ </dd>
4096
+ </dl>
4097
+ </dd>
4098
+ </dl>
4099
+
4100
+ #### 🔌 Usage
4101
+
4102
+ <dl>
4103
+ <dd>
4104
+
4105
+ <dl>
4106
+ <dd>
4107
+
4108
+ ```ruby
4109
+ client.campaigns.toll_free.list();
4110
+ ```
4111
+ </dd>
4112
+ </dl>
4113
+ </dd>
4114
+ </dl>
4115
+
4116
+ #### ⚙️ Parameters
4117
+
4118
+ <dl>
4119
+ <dd>
4120
+
4121
+ <dl>
4122
+ <dd>
4123
+
4124
+ **page_index:** `Integer`
4125
+
4126
+ </dd>
4127
+ </dl>
4128
+
4129
+ <dl>
4130
+ <dd>
4131
+
4132
+ **page_size:** `Integer`
4133
+
4134
+ </dd>
4135
+ </dl>
4136
+
4137
+ <dl>
4138
+ <dd>
4139
+
4140
+ **status:** `Pinnacle::Campaigns::TollFree::Types::ListTollFreeCampaignsRequestStatus`
4141
+
4142
+ </dd>
4143
+ </dl>
4144
+
4145
+ <dl>
4146
+ <dd>
4147
+
4148
+ **brand_id:** `String`
4149
+
4150
+ </dd>
4151
+ </dl>
4152
+
4153
+ <dl>
4154
+ <dd>
4155
+
4156
+ **name:** `String` — Filter by campaign name (partial match, case-insensitive).
4157
+
4158
+ </dd>
4159
+ </dl>
4160
+
4161
+ <dl>
4162
+ <dd>
4163
+
4164
+ **request_options:** `Pinnacle::Campaigns::TollFree::RequestOptions`
4165
+
4166
+ </dd>
4167
+ </dl>
4168
+ </dd>
4169
+ </dl>
4170
+
4171
+
3268
4172
  </dd>
3269
4173
  </dl>
3270
4174
  </details>
@@ -3518,20 +4422,17 @@ client.campaigns.rcs.upsert(
3518
4422
  campaign_id: 'rcs_1234567890',
3519
4423
  expected_agent_responses: ['Here are the things I can help you with.', 'I can assist you with booking an appointment, or you may choose to book manually.', 'Here are the available times to connect with a representative tomorrow.', 'Your appointment has been scheduled.'],
3520
4424
  links: {
3521
- privacy_policy: 'https://www.trypinnacle.app/privacy',
3522
- terms_of_service: 'https://www.trypinnacle.app/terms'
3523
- },
3524
- use_case: {
3525
- behavior: 'Pinnacle is a developer-focused RCS assistant that helps teams design, test, and optimize rich messaging experiences across SMS, MMS, and RCS. The agent acts as both an “onboarding guide” for new customers and a “best-practices coach” for existing teams exploring higher-value RCS workflows like rich cards, carousels, and suggested actions.<br>
3526
- The agent delivers a mix of operational updates and educational content (2–6 messages/month). Content includes important platform notices (e.g., deliverability or throughput changes), implementation tips with sample RCS templates, and personalized recommendations on how to upgrade existing SMS campaigns into richer, higher-converting RCS conversations.
3527
- ',
3528
- value: 'OTHER'
4425
+ privacy_policy: 'https://www.trypinnacle.app/privacy',
4426
+ terms_of_service: 'https://www.trypinnacle.app/terms'
3529
4427
  },
3530
- opt_in_terms_and_conditions: 'We ensure consent through an explicit opt-in process that follows 10DLC best practices.Users must agree to receive messages from Pinnacle before the agent sends them any messages.<br>
4428
+ use_case_description: 'Pinnacle is a developer-focused RCS assistant that helps teams design, test, and optimize rich messaging experiences across SMS, MMS, and RCS. The agent acts as both an “onboarding guide” for new customers and a “best-practices coach” for existing teams exploring higher-value RCS workflows like rich cards, carousels, and suggested actions.<br>
4429
+ The agent delivers a mix of operational updates and educational content (2–6 messages/month). Content includes important platform notices (e.g., deliverability or throughput changes), implementation tips with sample RCS templates, and personalized recommendations on how to upgrade existing SMS campaigns into richer, higher-converting RCS conversations.
4430
+ ',
4431
+ messaging_type: 'OTP',
4432
+ cta_media: '“https://www.pinnacle.sh/send”',
4433
+ opt_in_method: 'We ensure consent through an explicit opt-in process that follows 10DLC best practices.Users must agree to receive messages from Pinnacle before the agent sends them any messages.<br>
3531
4434
  Users agree to these messages by signing an opt-in paper form that they can be found online at https://www.pinnacle.sh/opt-in. We only send messages once users have filled out the form and submitted it to us via email or through the dashboard.
3532
4435
  ',
3533
- messaging_type: 'MULTI_USE',
3534
- carrier_description: 'Demonstrate the power of RCS to medium and large companies already sending massive SMS/MMS volumes through our platform. These clients send conversational messages in industries such as commerce, appointments, and customer support.',
3535
4436
  keywords: {
3536
4437
  help: {
3537
4438
  message: 'Email founders@trypinnacle.app for support.',
@@ -3554,9 +4455,6 @@ client.campaigns.rcs.upsert(
3554
4455
  monthly_website: 10000,
3555
4456
  monthly_rcs_estimate: 10000
3556
4457
  },
3557
- agent_triggers: 'The agent sends the first message when the user subscribes to Pinnacle. Messages are based on user actions such as pressing suggestion buttons. External triggers such as reminders can be setup by users in advance for a later time.',
3558
- interaction_description: "The agent's primary interaction will be customer service — helping users with questions, troubleshooting issues, and providing quick assistance through chat. Other interactions include appointment management and sending notifications to the user.",
3559
- is_conversational: true,
3560
4458
  cta_language: 'By checking this box and submitting this form, you consent to receive transactional text messages for support, appointment, and reminder messages from Pinnacle Software Development Inc. Reply STOP to opt out. Reply HELP for help. Standard message and data rates may apply. Message frequency may vary. View our Terms and Conditions at https://www.pinnacle.sh/terms. View our Privacy Policy at https://www.pinnacle.sh/privacy.',
3561
4459
  demo_trigger: 'Text "START" to trigger the flow.'
3562
4460
  );
@@ -3617,7 +4515,7 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
3617
4515
  <dl>
3618
4516
  <dd>
3619
4517
 
3620
- **use_case:** `Pinnacle::Campaigns::Rcs::Types::RcsUseCase` — Use case classification for the campaign.
4518
+ **use_case_description:** `String` — Detailed summary of what the brand is and how this agent will be used. See the [Use Case Behavior](/guides/campaigns/rcs-compliance#use-case-behavior) section for requirements.
3621
4519
 
3622
4520
  </dd>
3623
4521
  </dl>
@@ -3625,7 +4523,7 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
3625
4523
  <dl>
3626
4524
  <dd>
3627
4525
 
3628
- **opt_in_terms_and_conditions:** `String` — Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the [Opt-In Terms and Conditions](/guides/campaigns/rcs-compliance#opt-in-terms-and-conditions) section for requirements.
4526
+ **messaging_type:** `Pinnacle::Types::RcsMessagingTypeEnum`
3629
4527
 
3630
4528
  </dd>
3631
4529
  </dl>
@@ -3633,7 +4531,7 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
3633
4531
  <dl>
3634
4532
  <dd>
3635
4533
 
3636
- **messaging_type:** `Pinnacle::Types::RcsMessagingTypeEnum`
4534
+ **cta_media:** `String` — URL to the opt-in form or a URL to a screenshot of the opt-in CTA.
3637
4535
 
3638
4536
  </dd>
3639
4537
  </dl>
@@ -3641,7 +4539,7 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
3641
4539
  <dl>
3642
4540
  <dd>
3643
4541
 
3644
- **carrier_description:** `String` — Description of the agent's purpose, shown to carriers for approval. See the [Carrier Description](/guides/campaigns/rcs-compliance#carrier-description) section for requirements.
4542
+ **opt_in_method:** `String` — Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the [Opt-In Method](/guides/campaigns/rcs-compliance#opt-in-method) section for requirements.
3645
4543
 
3646
4544
  </dd>
3647
4545
  </dl>
@@ -3665,30 +4563,6 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
3665
4563
  <dl>
3666
4564
  <dd>
3667
4565
 
3668
- **agent_triggers:** `String` — Explanation of how the agent is triggered. This includes how the first message is delivered, whether messages follow a schedule or triggered by user actions, and any external triggers. See the [Agent Triggers](/guides/campaigns/rcs-compliance#agent-triggers) section for requirements.
3669
-
3670
- </dd>
3671
- </dl>
3672
-
3673
- <dl>
3674
- <dd>
3675
-
3676
- **interaction_description:** `String` — Description of all agent interactions, including primary and secondary use cases. See the [Interaction Description](/guides/campaigns/rcs-compliance#interaction-description) section for requirements.
3677
-
3678
- </dd>
3679
- </dl>
3680
-
3681
- <dl>
3682
- <dd>
3683
-
3684
- **is_conversational:** `Internal::Types::Boolean` — Whether the agent supports conversational flows or respond to P2A messages from the users. Set to false for one-way messages from agent to user.
3685
-
3686
- </dd>
3687
- </dl>
3688
-
3689
- <dl>
3690
- <dd>
3691
-
3692
4566
  **cta_language:** `String` — Required text that appears next to the opt-in checkbox for your opt-in form. This checkbox has to be unchecked by default. See the [CTA Language](/guides/campaigns/rcs-compliance#cta-language-opt-in-disclosure) section for requirements.
3693
4567
 
3694
4568
  </dd>
@@ -3782,8 +4656,7 @@ client.campaigns.rcs.validate(
3782
4656
  </dl>
3783
4657
  </details>
3784
4658
 
3785
- ## Messages Sms
3786
- <details><summary><code>client.messages.sms.<a href="/lib/pinnacle/messages/sms/client.rb">send_</a>(request) -> Pinnacle::Messages::Sms::Types::SmsSendResponse</code></summary>
4659
+ <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">list</a>(request) -> Pinnacle::Types::ListRcsCampaignsResponse</code></summary>
3787
4660
  <dl>
3788
4661
  <dd>
3789
4662
 
@@ -3795,7 +4668,7 @@ client.campaigns.rcs.validate(
3795
4668
  <dl>
3796
4669
  <dd>
3797
4670
 
3798
- Send a SMS message immediately or schedule it for future delivery.
4671
+ List all RCS campaigns with optional filtering and pagination. Results are sorted by creation date, newest first.
3799
4672
  </dd>
3800
4673
  </dl>
3801
4674
  </dd>
@@ -3810,11 +4683,7 @@ Send a SMS message immediately or schedule it for future delivery.
3810
4683
  <dd>
3811
4684
 
3812
4685
  ```ruby
3813
- client.messages.sms.send_(
3814
- from: '+14155164736',
3815
- text: 'Hey!',
3816
- to: '+14154746461'
3817
- );
4686
+ client.campaigns.rcs.list();
3818
4687
  ```
3819
4688
  </dd>
3820
4689
  </dl>
@@ -3829,7 +4698,7 @@ client.messages.sms.send_(
3829
4698
  <dl>
3830
4699
  <dd>
3831
4700
 
3832
- **from:** `String` — Phone number that sends the message in E.164 format.
4701
+ **page_index:** `Integer`
3833
4702
 
3834
4703
  </dd>
3835
4704
  </dl>
@@ -3837,7 +4706,7 @@ client.messages.sms.send_(
3837
4706
  <dl>
3838
4707
  <dd>
3839
4708
 
3840
- **options:** `Pinnacle::Messages::Sms::Types::SendSmsOptions` — Additional settings to customize SMS delivery.
4709
+ **page_size:** `Integer`
3841
4710
 
3842
4711
  </dd>
3843
4712
  </dl>
@@ -3845,7 +4714,911 @@ client.messages.sms.send_(
3845
4714
  <dl>
3846
4715
  <dd>
3847
4716
 
3848
- **text:** `String` — Message content.
4717
+ **status:** `Pinnacle::Campaigns::Rcs::Types::ListRcsCampaignsRequestStatus`
4718
+
4719
+ </dd>
4720
+ </dl>
4721
+
4722
+ <dl>
4723
+ <dd>
4724
+
4725
+ **brand_id:** `String`
4726
+
4727
+ </dd>
4728
+ </dl>
4729
+
4730
+ <dl>
4731
+ <dd>
4732
+
4733
+ **name:** `String` — Filter by campaign name (partial match, case-insensitive).
4734
+
4735
+ </dd>
4736
+ </dl>
4737
+
4738
+ <dl>
4739
+ <dd>
4740
+
4741
+ **request_options:** `Pinnacle::Campaigns::Rcs::RequestOptions`
4742
+
4743
+ </dd>
4744
+ </dl>
4745
+ </dd>
4746
+ </dl>
4747
+
4748
+
4749
+ </dd>
4750
+ </dl>
4751
+ </details>
4752
+
4753
+ ## Messages Sms
4754
+ <details><summary><code>client.messages.sms.<a href="/lib/pinnacle/messages/sms/client.rb">send_</a>(request) -> Pinnacle::Messages::Sms::Types::SmsSendResponse</code></summary>
4755
+ <dl>
4756
+ <dd>
4757
+
4758
+ #### 📝 Description
4759
+
4760
+ <dl>
4761
+ <dd>
4762
+
4763
+ <dl>
4764
+ <dd>
4765
+
4766
+ Send a SMS message immediately or schedule it for future delivery.
4767
+ </dd>
4768
+ </dl>
4769
+ </dd>
4770
+ </dl>
4771
+
4772
+ #### 🔌 Usage
4773
+
4774
+ <dl>
4775
+ <dd>
4776
+
4777
+ <dl>
4778
+ <dd>
4779
+
4780
+ ```ruby
4781
+ client.messages.sms.send_(
4782
+ from: '+14155164736',
4783
+ text: 'Hey!',
4784
+ to: '+14154746461'
4785
+ );
4786
+ ```
4787
+ </dd>
4788
+ </dl>
4789
+ </dd>
4790
+ </dl>
4791
+
4792
+ #### ⚙️ Parameters
4793
+
4794
+ <dl>
4795
+ <dd>
4796
+
4797
+ <dl>
4798
+ <dd>
4799
+
4800
+ **from:** `String` — Phone number that sends the message in E.164 format.
4801
+
4802
+ </dd>
4803
+ </dl>
4804
+
4805
+ <dl>
4806
+ <dd>
4807
+
4808
+ **options:** `Pinnacle::Messages::Sms::Types::SendSmsOptions` — Additional settings to customize SMS delivery.
4809
+
4810
+ </dd>
4811
+ </dl>
4812
+
4813
+ <dl>
4814
+ <dd>
4815
+
4816
+ **text:** `String` — Message content.
4817
+
4818
+ </dd>
4819
+ </dl>
4820
+
4821
+ <dl>
4822
+ <dd>
4823
+
4824
+ **to:** `String` — Recipient's phone number in E.164 format.
4825
+
4826
+ </dd>
4827
+ </dl>
4828
+
4829
+ <dl>
4830
+ <dd>
4831
+
4832
+ **request_options:** `Pinnacle::Messages::Sms::RequestOptions`
4833
+
4834
+ </dd>
4835
+ </dl>
4836
+ </dd>
4837
+ </dl>
4838
+
4839
+
4840
+ </dd>
4841
+ </dl>
4842
+ </details>
4843
+
4844
+ <details><summary><code>client.messages.sms.<a href="/lib/pinnacle/messages/sms/client.rb">validate</a>(request) -> Pinnacle::Types::SmsValidationResult</code></summary>
4845
+ <dl>
4846
+ <dd>
4847
+
4848
+ #### 📝 Description
4849
+
4850
+ <dl>
4851
+ <dd>
4852
+
4853
+ <dl>
4854
+ <dd>
4855
+
4856
+ Validate SMS message content without sending it.
4857
+ </dd>
4858
+ </dl>
4859
+ </dd>
4860
+ </dl>
4861
+
4862
+ #### 🔌 Usage
4863
+
4864
+ <dl>
4865
+ <dd>
4866
+
4867
+ <dl>
4868
+ <dd>
4869
+
4870
+ ```ruby
4871
+ client.messages.sms.validate(text: 'Hello from Pinnacle');
4872
+ ```
4873
+ </dd>
4874
+ </dl>
4875
+ </dd>
4876
+ </dl>
4877
+
4878
+ #### ⚙️ Parameters
4879
+
4880
+ <dl>
4881
+ <dd>
4882
+
4883
+ <dl>
4884
+ <dd>
4885
+
4886
+ **request:** `Pinnacle::Types::SmsContent`
4887
+
4888
+ </dd>
4889
+ </dl>
4890
+
4891
+ <dl>
4892
+ <dd>
4893
+
4894
+ **request_options:** `Pinnacle::Messages::Sms::RequestOptions`
4895
+
4896
+ </dd>
4897
+ </dl>
4898
+ </dd>
4899
+ </dl>
4900
+
4901
+
4902
+ </dd>
4903
+ </dl>
4904
+ </details>
4905
+
4906
+ ## Messages Mms
4907
+ <details><summary><code>client.messages.mms.<a href="/lib/pinnacle/messages/mms/client.rb">send_</a>(request) -> Pinnacle::Messages::Mms::Types::MmsSendResponse</code></summary>
4908
+ <dl>
4909
+ <dd>
4910
+
4911
+ #### 📝 Description
4912
+
4913
+ <dl>
4914
+ <dd>
4915
+
4916
+ <dl>
4917
+ <dd>
4918
+
4919
+ Send a MMS immediately or schedule it for future delivery.
4920
+ </dd>
4921
+ </dl>
4922
+ </dd>
4923
+ </dl>
4924
+
4925
+ #### 🔌 Usage
4926
+
4927
+ <dl>
4928
+ <dd>
4929
+
4930
+ <dl>
4931
+ <dd>
4932
+
4933
+ ```ruby
4934
+ client.messages.mms.send_(
4935
+ from: '+14155164736',
4936
+ media_urls: ['https://fastly.picsum.photos/id/941/300/300.jpg?hmac=mDxM9PWSqRDjecwSCEpzU4bj35gqnG7yA25OL29uNv0'],
4937
+ options: {
4938
+ multiple_messages: true,
4939
+ validate: true
4940
+ },
4941
+ text: 'Check out this image!',
4942
+ to: '+14154746461'
4943
+ );
4944
+ ```
4945
+ </dd>
4946
+ </dl>
4947
+ </dd>
4948
+ </dl>
4949
+
4950
+ #### ⚙️ Parameters
4951
+
4952
+ <dl>
4953
+ <dd>
4954
+
4955
+ <dl>
4956
+ <dd>
4957
+
4958
+ **from:** `String` — Phone number you want to send the message from in E.164 format.
4959
+
4960
+ </dd>
4961
+ </dl>
4962
+
4963
+ <dl>
4964
+ <dd>
4965
+
4966
+ **media_urls:** `Internal::Types::Array[String]`
4967
+
4968
+ Media file URLs to send.<br>
4969
+
4970
+ See [supported media types](https://app.pinnacle.sh/supported-file-types?type=MMS).
4971
+
4972
+ </dd>
4973
+ </dl>
4974
+
4975
+ <dl>
4976
+ <dd>
4977
+
4978
+ **options:** `Pinnacle::Messages::Mms::Types::SendMmsOptions` — Control how your MMS is processed and delivered.
4979
+
4980
+ </dd>
4981
+ </dl>
4982
+
4983
+ <dl>
4984
+ <dd>
4985
+
4986
+ **text:** `String` — Message text to accompany the media.
4987
+
4988
+ </dd>
4989
+ </dl>
4990
+
4991
+ <dl>
4992
+ <dd>
4993
+
4994
+ **to:** `String` — Recipient's phone number in E.164 format.
4995
+
4996
+ </dd>
4997
+ </dl>
4998
+
4999
+ <dl>
5000
+ <dd>
5001
+
5002
+ **request_options:** `Pinnacle::Messages::Mms::RequestOptions`
5003
+
5004
+ </dd>
5005
+ </dl>
5006
+ </dd>
5007
+ </dl>
5008
+
5009
+
5010
+ </dd>
5011
+ </dl>
5012
+ </details>
5013
+
5014
+ <details><summary><code>client.messages.mms.<a href="/lib/pinnacle/messages/mms/client.rb">validate</a>(request) -> Pinnacle::Types::MmsValidationResult</code></summary>
5015
+ <dl>
5016
+ <dd>
5017
+
5018
+ #### 📝 Description
5019
+
5020
+ <dl>
5021
+ <dd>
5022
+
5023
+ <dl>
5024
+ <dd>
5025
+
5026
+ Validate MMS message content without sending it.
5027
+ </dd>
5028
+ </dl>
5029
+ </dd>
5030
+ </dl>
5031
+
5032
+ #### 🔌 Usage
5033
+
5034
+ <dl>
5035
+ <dd>
5036
+
5037
+ <dl>
5038
+ <dd>
5039
+
5040
+ ```ruby
5041
+ client.messages.mms.validate(
5042
+ media_urls: ['https://upload.wikimedia.org/wikipedia/commons/b/b9/Pizigani_1367_Chart_1MB.jpg', 'https://fastly.picsum.photos/id/528/1000/1000.jpg?hmac=aTG0xNif9KbNryFN0ZNZ_nFK6aEpZxqUGCZF1KjOT8w', 'https://file-examples.com/storage/fefdd7ab126835e7993bb1a/2017/10/file_example_JPG_500kB.jpg'],
5043
+ text: 'Check out these images!'
5044
+ );
5045
+ ```
5046
+ </dd>
5047
+ </dl>
5048
+ </dd>
5049
+ </dl>
5050
+
5051
+ #### ⚙️ Parameters
5052
+
5053
+ <dl>
5054
+ <dd>
5055
+
5056
+ <dl>
5057
+ <dd>
5058
+
5059
+ **request:** `Pinnacle::Types::MmsContent`
5060
+
5061
+ </dd>
5062
+ </dl>
5063
+
5064
+ <dl>
5065
+ <dd>
5066
+
5067
+ **request_options:** `Pinnacle::Messages::Mms::RequestOptions`
5068
+
5069
+ </dd>
5070
+ </dl>
5071
+ </dd>
5072
+ </dl>
5073
+
5074
+
5075
+ </dd>
5076
+ </dl>
5077
+ </details>
5078
+
5079
+ ## Messages Rcs
5080
+ <details><summary><code>client.messages.rcs.<a href="/lib/pinnacle/messages/rcs/client.rb">send_</a>(request) -> Pinnacle::Messages::Rcs::Types::SendRichMessageResponse</code></summary>
5081
+ <dl>
5082
+ <dd>
5083
+
5084
+ #### 📝 Description
5085
+
5086
+ <dl>
5087
+ <dd>
5088
+
5089
+ <dl>
5090
+ <dd>
5091
+
5092
+ Send a RCS message immediately or schedule it for future delivery. <br>
5093
+
5094
+ Requires an active RCS agent and recipient devices that support RCS Business Messaging.
5095
+ </dd>
5096
+ </dl>
5097
+ </dd>
5098
+ </dl>
5099
+
5100
+ #### 🔌 Usage
5101
+
5102
+ <dl>
5103
+ <dd>
5104
+
5105
+ <dl>
5106
+ <dd>
5107
+
5108
+ ```ruby
5109
+ client.messages.rcs.send_(
5110
+ from: 'from',
5111
+ to: 'to',
5112
+ quick_replies: [],
5113
+ text: 'text'
5114
+ );
5115
+ ```
5116
+ </dd>
5117
+ </dl>
5118
+ </dd>
5119
+ </dl>
5120
+
5121
+ #### ⚙️ Parameters
5122
+
5123
+ <dl>
5124
+ <dd>
5125
+
5126
+ <dl>
5127
+ <dd>
5128
+
5129
+ **request:** `Pinnacle::Types::RichMessage`
5130
+
5131
+ </dd>
5132
+ </dl>
5133
+
5134
+ <dl>
5135
+ <dd>
5136
+
5137
+ **request_options:** `Pinnacle::Messages::Rcs::RequestOptions`
5138
+
5139
+ </dd>
5140
+ </dl>
5141
+ </dd>
5142
+ </dl>
5143
+
5144
+
5145
+ </dd>
5146
+ </dl>
5147
+ </details>
5148
+
5149
+ <details><summary><code>client.messages.rcs.<a href="/lib/pinnacle/messages/rcs/client.rb">send_typing</a>(request) -> Pinnacle::Types::SendTypingIndicatorResponse</code></summary>
5150
+ <dl>
5151
+ <dd>
5152
+
5153
+ #### 📝 Description
5154
+
5155
+ <dl>
5156
+ <dd>
5157
+
5158
+ <dl>
5159
+ <dd>
5160
+
5161
+ Send a typing indicator from an RCS agent to a recipient.
5162
+
5163
+ This endpoint allows RCS agents to display a typing indicator to recipients. The indicator is a message bubble with animated typing dots like this: <img src="https://server.trypinnacle.app/storage/v1/object/public/pinnacle-public-assets/ios-typing-indicator.png" alt="Typing Indicator" style="display: inline; height: 1.5em; vertical-align: middle; margin: 0 4px;" />
5164
+
5165
+ **Use Case:** Typing indicators are especially useful for providing feedback to users while the agent is thinking or generating a response that may take some time, creating a more engaging conversational experience.
5166
+
5167
+ **Expiration:** Typing indicators automatically expire after around 20 seconds or when the agent sends a message, whichever comes first.
5168
+
5169
+ **Frequency:** You can send typing indicators as many times as needed, though only one will be displayed at a time. Sending multiple typing indicators will extend the duration of the current indicator.
5170
+
5171
+ > **Note:** Typing indicators are best-effort hints, not delivery-guaranteed state. The platform is allowed to coalesce or drop them, and the client UI decides when to show/hide.
5172
+ </dd>
5173
+ </dl>
5174
+ </dd>
5175
+ </dl>
5176
+
5177
+ #### 🔌 Usage
5178
+
5179
+ <dl>
5180
+ <dd>
5181
+
5182
+ <dl>
5183
+ <dd>
5184
+
5185
+ ```ruby
5186
+ client.messages.rcs.send_typing(
5187
+ agent_id: 'agent_pinnacle',
5188
+ to: '+14154746461'
5189
+ );
5190
+ ```
5191
+ </dd>
5192
+ </dl>
5193
+ </dd>
5194
+ </dl>
5195
+
5196
+ #### ⚙️ Parameters
5197
+
5198
+ <dl>
5199
+ <dd>
5200
+
5201
+ <dl>
5202
+ <dd>
5203
+
5204
+ **agent_id:** `String`
5205
+
5206
+ The unique identifier of the RCS agent sending the typing indicator. <br>
5207
+
5208
+ Format: `agent_` followed by alphanumeric characters (e.g., `agent_pinnacle`).
5209
+
5210
+ </dd>
5211
+ </dl>
5212
+
5213
+ <dl>
5214
+ <dd>
5215
+
5216
+ **to:** `String`
5217
+
5218
+ The recipient's phone number in E.164 format. <br>
5219
+
5220
+ Must include country code with a leading plus sign (e.g., `+14155551234`).
5221
+
5222
+ </dd>
5223
+ </dl>
5224
+
5225
+ <dl>
5226
+ <dd>
5227
+
5228
+ **request_options:** `Pinnacle::Messages::Rcs::RequestOptions`
5229
+
5230
+ </dd>
5231
+ </dl>
5232
+ </dd>
5233
+ </dl>
5234
+
5235
+
5236
+ </dd>
5237
+ </dl>
5238
+ </details>
5239
+
5240
+ <details><summary><code>client.messages.rcs.<a href="/lib/pinnacle/messages/rcs/client.rb">validate</a>(request) -> Pinnacle::Types::RcsValidationResult</code></summary>
5241
+ <dl>
5242
+ <dd>
5243
+
5244
+ #### 📝 Description
5245
+
5246
+ <dl>
5247
+ <dd>
5248
+
5249
+ <dl>
5250
+ <dd>
5251
+
5252
+ Validate RCS message content without sending it.
5253
+ </dd>
5254
+ </dl>
5255
+ </dd>
5256
+ </dl>
5257
+
5258
+ #### 🔌 Usage
5259
+
5260
+ <dl>
5261
+ <dd>
5262
+
5263
+ <dl>
5264
+ <dd>
5265
+
5266
+ ```ruby
5267
+ client.messages.rcs.validate(
5268
+ quick_replies: [],
5269
+ text: 'text'
5270
+ );
5271
+ ```
5272
+ </dd>
5273
+ </dl>
5274
+ </dd>
5275
+ </dl>
5276
+
5277
+ #### ⚙️ Parameters
5278
+
5279
+ <dl>
5280
+ <dd>
5281
+
5282
+ <dl>
5283
+ <dd>
5284
+
5285
+ **request:** `Pinnacle::Types::RcsValidateContent`
5286
+
5287
+ </dd>
5288
+ </dl>
5289
+
5290
+ <dl>
5291
+ <dd>
5292
+
5293
+ **request_options:** `Pinnacle::Messages::Rcs::RequestOptions`
5294
+
5295
+ </dd>
5296
+ </dl>
5297
+ </dd>
5298
+ </dl>
5299
+
5300
+
5301
+ </dd>
5302
+ </dl>
5303
+ </details>
5304
+
5305
+ ## Messages Blast
5306
+ <details><summary><code>client.messages.blast.<a href="/lib/pinnacle/messages/blast/client.rb">sms</a>(request) -> Pinnacle::Messages::Blast::Types::BlastSmsResponse</code></summary>
5307
+ <dl>
5308
+ <dd>
5309
+
5310
+ #### 📝 Description
5311
+
5312
+ <dl>
5313
+ <dd>
5314
+
5315
+ <dl>
5316
+ <dd>
5317
+
5318
+ Send an SMS message to all contacts in an audience. <br>
5319
+
5320
+ Messages are distributed evenly across the provided sender phone numbers. <br>
5321
+
5322
+ Use the optional `schedule` parameter in `options` to schedule the blast for future delivery. When scheduled, the response will contain a `scheduleId` instead of blast details.
5323
+ </dd>
5324
+ </dl>
5325
+ </dd>
5326
+ </dl>
5327
+
5328
+ #### 🔌 Usage
5329
+
5330
+ <dl>
5331
+ <dd>
5332
+
5333
+ <dl>
5334
+ <dd>
5335
+
5336
+ ```ruby
5337
+ client.messages.blast.sms(
5338
+ audience_id: 'aud_abc123',
5339
+ senders: ['+14155164736', '+14155164737'],
5340
+ message: {
5341
+ text: 'Hello from Pinnacle!'
5342
+ }
5343
+ );
5344
+ ```
5345
+ </dd>
5346
+ </dl>
5347
+ </dd>
5348
+ </dl>
5349
+
5350
+ #### ⚙️ Parameters
5351
+
5352
+ <dl>
5353
+ <dd>
5354
+
5355
+ <dl>
5356
+ <dd>
5357
+
5358
+ **audience_id:** `String`
5359
+
5360
+ The audience ID to send the blast to. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. <br>
5361
+
5362
+ You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard/audiences) or [API](/api-reference/audiences/create).
5363
+
5364
+ </dd>
5365
+ </dl>
5366
+
5367
+ <dl>
5368
+ <dd>
5369
+
5370
+ **senders:** `Internal::Types::Array[String]`
5371
+
5372
+ Array of phone numbers to send from in E.164 format. <br>
5373
+
5374
+ Messages will be distributed evenly across these senders.
5375
+
5376
+ > **Note:** Sandbox numbers cannot be used for blasts.
5377
+
5378
+ **Limit:** 1 min
5379
+
5380
+ </dd>
5381
+ </dl>
5382
+
5383
+ <dl>
5384
+ <dd>
5385
+
5386
+ **message:** `Pinnacle::Types::SmsContent`
5387
+
5388
+ </dd>
5389
+ </dl>
5390
+
5391
+ <dl>
5392
+ <dd>
5393
+
5394
+ **options:** `Pinnacle::Messages::Blast::Types::BlastSmsOptions` — Additional settings to customize SMS blast delivery.
5395
+
5396
+ </dd>
5397
+ </dl>
5398
+
5399
+ <dl>
5400
+ <dd>
5401
+
5402
+ **request_options:** `Pinnacle::Messages::Blast::RequestOptions`
5403
+
5404
+ </dd>
5405
+ </dl>
5406
+ </dd>
5407
+ </dl>
5408
+
5409
+
5410
+ </dd>
5411
+ </dl>
5412
+ </details>
5413
+
5414
+ <details><summary><code>client.messages.blast.<a href="/lib/pinnacle/messages/blast/client.rb">mms</a>(request) -> Pinnacle::Messages::Blast::Types::BlastMmsResponse</code></summary>
5415
+ <dl>
5416
+ <dd>
5417
+
5418
+ #### 📝 Description
5419
+
5420
+ <dl>
5421
+ <dd>
5422
+
5423
+ <dl>
5424
+ <dd>
5425
+
5426
+ Send an MMS message to all contacts in an audience. <br>
5427
+
5428
+ Messages are distributed evenly across the provided sender phone numbers. <br>
5429
+
5430
+ Use the optional `schedule` parameter in `options` to schedule the blast for future delivery. When scheduled, the response will contain a `scheduleId` instead of blast details.
5431
+ </dd>
5432
+ </dl>
5433
+ </dd>
5434
+ </dl>
5435
+
5436
+ #### 🔌 Usage
5437
+
5438
+ <dl>
5439
+ <dd>
5440
+
5441
+ <dl>
5442
+ <dd>
5443
+
5444
+ ```ruby
5445
+ client.messages.blast.mms(
5446
+ audience_id: 'aud_abc123',
5447
+ senders: ['+14155164736', '+14155164737'],
5448
+ message: {
5449
+ media_urls: ['https://fastly.picsum.photos/id/941/300/300.jpg'],
5450
+ text: 'Check out this image!'
5451
+ },
5452
+ options: {
5453
+ validate: true
5454
+ }
5455
+ );
5456
+ ```
5457
+ </dd>
5458
+ </dl>
5459
+ </dd>
5460
+ </dl>
5461
+
5462
+ #### ⚙️ Parameters
5463
+
5464
+ <dl>
5465
+ <dd>
5466
+
5467
+ <dl>
5468
+ <dd>
5469
+
5470
+ **audience_id:** `String`
5471
+
5472
+ The audience ID to send the blast to. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. <br>
5473
+
5474
+ You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard/audiences) or [API](/api-reference/audiences/create).
5475
+
5476
+ </dd>
5477
+ </dl>
5478
+
5479
+ <dl>
5480
+ <dd>
5481
+
5482
+ **senders:** `Internal::Types::Array[String]`
5483
+
5484
+ Array of phone numbers to send from in E.164 format. <br>
5485
+
5486
+ Messages will be distributed evenly across these senders.
5487
+
5488
+ > **Note:** Sandbox numbers cannot be used for blasts.
5489
+
5490
+ **Limit:** 1 min
5491
+
5492
+ </dd>
5493
+ </dl>
5494
+
5495
+ <dl>
5496
+ <dd>
5497
+
5498
+ **message:** `Pinnacle::Types::MmsContent`
5499
+
5500
+ </dd>
5501
+ </dl>
5502
+
5503
+ <dl>
5504
+ <dd>
5505
+
5506
+ **options:** `Pinnacle::Messages::Blast::Types::BlastMmsOptions` — Additional settings to customize MMS blast delivery.
5507
+
5508
+ </dd>
5509
+ </dl>
5510
+
5511
+ <dl>
5512
+ <dd>
5513
+
5514
+ **request_options:** `Pinnacle::Messages::Blast::RequestOptions`
5515
+
5516
+ </dd>
5517
+ </dl>
5518
+ </dd>
5519
+ </dl>
5520
+
5521
+
5522
+ </dd>
5523
+ </dl>
5524
+ </details>
5525
+
5526
+ <details><summary><code>client.messages.blast.<a href="/lib/pinnacle/messages/blast/client.rb">rcs</a>(request) -> Pinnacle::Messages::Blast::Types::BlastRcsResponse</code></summary>
5527
+ <dl>
5528
+ <dd>
5529
+
5530
+ #### 📝 Description
5531
+
5532
+ <dl>
5533
+ <dd>
5534
+
5535
+ <dl>
5536
+ <dd>
5537
+
5538
+ Send an RCS message to all contacts in an audience. <br>
5539
+
5540
+ Messages are distributed evenly across the provided RCS agents for load balancing. Requires active RCS agents and recipient devices that support RCS Business Messaging. <br>
5541
+
5542
+ Use the optional `schedule` parameter in `options` to schedule the blast for future delivery. When scheduled, the response will contain a `scheduleId` instead of blast details.
5543
+ </dd>
5544
+ </dl>
5545
+ </dd>
5546
+ </dl>
5547
+
5548
+ #### 🔌 Usage
5549
+
5550
+ <dl>
5551
+ <dd>
5552
+
5553
+ <dl>
5554
+ <dd>
5555
+
5556
+ ```ruby
5557
+ client.messages.blast.rcs(
5558
+ audience_id: 'aud_abc123',
5559
+ senders: ['agent_pinnacle', 'agent_pinnacle2'],
5560
+ message: {
5561
+ quick_replies: [],
5562
+ text: 'Hello from Pinnacle RCS!'
5563
+ },
5564
+ fallback: {
5565
+ from: '+14155164736',
5566
+ text: 'Hello from Pinnacle! Reply LEARN to learn more.'
5567
+ },
5568
+ options: {
5569
+ transcode: true,
5570
+ validate: true
5571
+ }
5572
+ );
5573
+ ```
5574
+ </dd>
5575
+ </dl>
5576
+ </dd>
5577
+ </dl>
5578
+
5579
+ #### ⚙️ Parameters
5580
+
5581
+ <dl>
5582
+ <dd>
5583
+
5584
+ <dl>
5585
+ <dd>
5586
+
5587
+ **audience_id:** `String`
5588
+
5589
+ The audience ID to send the blast to. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. <br>
5590
+
5591
+ You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard/audiences) or [API](/api-reference/audiences/create).
5592
+
5593
+ </dd>
5594
+ </dl>
5595
+
5596
+ <dl>
5597
+ <dd>
5598
+
5599
+ **senders:** `Internal::Types::Array[String]`
5600
+
5601
+ Array of RCS agent IDs to send from. Each must be prefixed with `agent_`. <br>
5602
+
5603
+ Messages will be evenly distributed across these agents.
5604
+
5605
+ **Limit:** 1 min
5606
+
5607
+ </dd>
5608
+ </dl>
5609
+
5610
+ <dl>
5611
+ <dd>
5612
+
5613
+ **message:** `Pinnacle::Types::RcsValidateContent`
5614
+
5615
+ </dd>
5616
+ </dl>
5617
+
5618
+ <dl>
5619
+ <dd>
5620
+
5621
+ **fallback:** `Pinnacle::Types::FallbackMessage`
3849
5622
 
3850
5623
  </dd>
3851
5624
  </dl>
@@ -3853,7 +5626,7 @@ client.messages.sms.send_(
3853
5626
  <dl>
3854
5627
  <dd>
3855
5628
 
3856
- **to:** `String` — Recipient's phone number in E.164 format.
5629
+ **options:** `Pinnacle::Messages::Blast::Types::BlastRcsOptions` — Configure how your RCS blast is sent and tracked.
3857
5630
 
3858
5631
  </dd>
3859
5632
  </dl>
@@ -3861,7 +5634,7 @@ client.messages.sms.send_(
3861
5634
  <dl>
3862
5635
  <dd>
3863
5636
 
3864
- **request_options:** `Pinnacle::Messages::Sms::RequestOptions`
5637
+ **request_options:** `Pinnacle::Messages::Blast::RequestOptions`
3865
5638
 
3866
5639
  </dd>
3867
5640
  </dl>
@@ -3873,7 +5646,8 @@ client.messages.sms.send_(
3873
5646
  </dl>
3874
5647
  </details>
3875
5648
 
3876
- <details><summary><code>client.messages.sms.<a href="/lib/pinnacle/messages/sms/client.rb">validate</a>(request) -> Pinnacle::Types::SmsValidationResult</code></summary>
5649
+ ## Messages Schedule
5650
+ <details><summary><code>client.messages.schedule.<a href="/lib/pinnacle/messages/schedule/client.rb">cancel</a>(id) -> Pinnacle::Types::ScheduleCancelResult</code></summary>
3877
5651
  <dl>
3878
5652
  <dd>
3879
5653
 
@@ -3885,7 +5659,9 @@ client.messages.sms.send_(
3885
5659
  <dl>
3886
5660
  <dd>
3887
5661
 
3888
- Validate SMS message content without sending it.
5662
+ Cancel a scheduled message or blast. <br>
5663
+
5664
+ Works for both individual scheduled messages and scheduled blasts. Use the `scheduleId` returned when the message or blast was scheduled.
3889
5665
  </dd>
3890
5666
  </dl>
3891
5667
  </dd>
@@ -3900,7 +5676,7 @@ Validate SMS message content without sending it.
3900
5676
  <dd>
3901
5677
 
3902
5678
  ```ruby
3903
- client.messages.sms.validate(text: 'Hello from Pinnacle');
5679
+ client.messages.schedule.cancel(id: 'id');
3904
5680
  ```
3905
5681
  </dd>
3906
5682
  </dl>
@@ -3915,7 +5691,7 @@ client.messages.sms.validate(text: 'Hello from Pinnacle');
3915
5691
  <dl>
3916
5692
  <dd>
3917
5693
 
3918
- **request:** `Pinnacle::Types::SmsContent`
5694
+ **id:** `String` — Unique identifier of the scheduled message. This identifier is a string that always begins with the prefix `msg_sched_`, for example: `msg_sched_1234567890`.
3919
5695
 
3920
5696
  </dd>
3921
5697
  </dl>
@@ -3923,7 +5699,7 @@ client.messages.sms.validate(text: 'Hello from Pinnacle');
3923
5699
  <dl>
3924
5700
  <dd>
3925
5701
 
3926
- **request_options:** `Pinnacle::Messages::Sms::RequestOptions`
5702
+ **request_options:** `Pinnacle::Messages::Schedule::RequestOptions`
3927
5703
 
3928
5704
  </dd>
3929
5705
  </dl>
@@ -3935,8 +5711,8 @@ client.messages.sms.validate(text: 'Hello from Pinnacle');
3935
5711
  </dl>
3936
5712
  </details>
3937
5713
 
3938
- ## Messages Mms
3939
- <details><summary><code>client.messages.mms.<a href="/lib/pinnacle/messages/mms/client.rb">send_</a>(request) -> Pinnacle::Messages::Mms::Types::MmsSendResponse</code></summary>
5714
+ ## Messages Schedules
5715
+ <details><summary><code>client.messages.schedules.<a href="/lib/pinnacle/messages/schedules/client.rb">list</a>(request) -> Pinnacle::Types::ListScheduledMessagesResponse</code></summary>
3940
5716
  <dl>
3941
5717
  <dd>
3942
5718
 
@@ -3948,7 +5724,7 @@ client.messages.sms.validate(text: 'Hello from Pinnacle');
3948
5724
  <dl>
3949
5725
  <dd>
3950
5726
 
3951
- Send a MMS immediately or schedule it for future delivery.
5727
+ List all scheduled messages with optional filtering and pagination. Results are sorted by creation date, newest first.
3952
5728
  </dd>
3953
5729
  </dl>
3954
5730
  </dd>
@@ -3963,16 +5739,7 @@ Send a MMS immediately or schedule it for future delivery.
3963
5739
  <dd>
3964
5740
 
3965
5741
  ```ruby
3966
- client.messages.mms.send_(
3967
- from: '+14155164736',
3968
- media_urls: ['https://fastly.picsum.photos/id/941/300/300.jpg?hmac=mDxM9PWSqRDjecwSCEpzU4bj35gqnG7yA25OL29uNv0'],
3969
- options: {
3970
- multiple_messages: true,
3971
- validate: true
3972
- },
3973
- text: 'Check out this image!',
3974
- to: '+14154746461'
3975
- );
5742
+ client.messages.schedules.list();
3976
5743
  ```
3977
5744
  </dd>
3978
5745
  </dl>
@@ -3987,7 +5754,7 @@ client.messages.mms.send_(
3987
5754
  <dl>
3988
5755
  <dd>
3989
5756
 
3990
- **from:** `String` — Phone number you want to send the message from in E.164 format.
5757
+ **page_index:** `Integer`
3991
5758
 
3992
5759
  </dd>
3993
5760
  </dl>
@@ -3995,11 +5762,7 @@ client.messages.mms.send_(
3995
5762
  <dl>
3996
5763
  <dd>
3997
5764
 
3998
- **media_urls:** `Internal::Types::Array[String]`
3999
-
4000
- Media file URLs to send.<br>
4001
-
4002
- See [supported media types](https://app.pinnacle.sh/supported-file-types?type=MMS).
5765
+ **page_size:** `Integer`
4003
5766
 
4004
5767
  </dd>
4005
5768
  </dl>
@@ -4007,7 +5770,7 @@ Media file URLs to send.<br>
4007
5770
  <dl>
4008
5771
  <dd>
4009
5772
 
4010
- **options:** `Pinnacle::Messages::Mms::Types::SendMmsOptions` — Control how your MMS is processed and delivered.
5773
+ **status:** `Pinnacle::Messages::Schedules::Types::ListScheduledMessagesRequestStatus`
4011
5774
 
4012
5775
  </dd>
4013
5776
  </dl>
@@ -4015,7 +5778,7 @@ Media file URLs to send.<br>
4015
5778
  <dl>
4016
5779
  <dd>
4017
5780
 
4018
- **text:** `String` — Message text to accompany the media.
5781
+ **schedule_type:** `Pinnacle::Messages::Schedules::Types::ListScheduledMessagesRequestScheduleType` — Filter by schedule type "MESSAGE" for individual messages, "BLAST" for bulk sends.
4019
5782
 
4020
5783
  </dd>
4021
5784
  </dl>
@@ -4023,7 +5786,7 @@ Media file URLs to send.<br>
4023
5786
  <dl>
4024
5787
  <dd>
4025
5788
 
4026
- **to:** `String` — Recipient's phone number in E.164 format.
5789
+ **content:** `String` — Search scheduled message content (partial match, case-insensitive).
4027
5790
 
4028
5791
  </dd>
4029
5792
  </dl>
@@ -4031,7 +5794,7 @@ Media file URLs to send.<br>
4031
5794
  <dl>
4032
5795
  <dd>
4033
5796
 
4034
- **request_options:** `Pinnacle::Messages::Mms::RequestOptions`
5797
+ **request_options:** `Pinnacle::Messages::Schedules::RequestOptions`
4035
5798
 
4036
5799
  </dd>
4037
5800
  </dl>
@@ -4043,7 +5806,8 @@ Media file URLs to send.<br>
4043
5806
  </dl>
4044
5807
  </details>
4045
5808
 
4046
- <details><summary><code>client.messages.mms.<a href="/lib/pinnacle/messages/mms/client.rb">validate</a>(request) -> Pinnacle::Types::MmsValidationResult</code></summary>
5809
+ ## Messages Blasts
5810
+ <details><summary><code>client.messages.blasts.<a href="/lib/pinnacle/messages/blasts/client.rb">list</a>(request) -> Pinnacle::Types::ListBlastsResponse</code></summary>
4047
5811
  <dl>
4048
5812
  <dd>
4049
5813
 
@@ -4055,7 +5819,7 @@ Media file URLs to send.<br>
4055
5819
  <dl>
4056
5820
  <dd>
4057
5821
 
4058
- Validate MMS message content without sending it.
5822
+ List all blasts with optional filtering and pagination. Results are sorted by creation date, newest first.
4059
5823
  </dd>
4060
5824
  </dl>
4061
5825
  </dd>
@@ -4070,10 +5834,7 @@ Validate MMS message content without sending it.
4070
5834
  <dd>
4071
5835
 
4072
5836
  ```ruby
4073
- client.messages.mms.validate(
4074
- media_urls: ['https://upload.wikimedia.org/wikipedia/commons/b/b9/Pizigani_1367_Chart_1MB.jpg', 'https://fastly.picsum.photos/id/528/1000/1000.jpg?hmac=aTG0xNif9KbNryFN0ZNZ_nFK6aEpZxqUGCZF1KjOT8w', 'https://file-examples.com/storage/fefdd7ab126835e7993bb1a/2017/10/file_example_JPG_500kB.jpg'],
4075
- text: 'Check out these images!'
4076
- );
5837
+ client.messages.blasts.list();
4077
5838
  ```
4078
5839
  </dd>
4079
5840
  </dl>
@@ -4088,7 +5849,7 @@ client.messages.mms.validate(
4088
5849
  <dl>
4089
5850
  <dd>
4090
5851
 
4091
- **request:** `Pinnacle::Types::MmsContent`
5852
+ **page_index:** `Integer`
4092
5853
 
4093
5854
  </dd>
4094
5855
  </dl>
@@ -4096,69 +5857,31 @@ client.messages.mms.validate(
4096
5857
  <dl>
4097
5858
  <dd>
4098
5859
 
4099
- **request_options:** `Pinnacle::Messages::Mms::RequestOptions`
5860
+ **page_size:** `Integer`
4100
5861
 
4101
5862
  </dd>
4102
5863
  </dl>
4103
- </dd>
4104
- </dl>
4105
-
4106
-
4107
- </dd>
4108
- </dl>
4109
- </details>
4110
-
4111
- ## Messages Rcs
4112
- <details><summary><code>client.messages.rcs.<a href="/lib/pinnacle/messages/rcs/client.rb">send_</a>(request) -> Pinnacle::Messages::Rcs::Types::SendRichMessageResponse</code></summary>
4113
- <dl>
4114
- <dd>
4115
-
4116
- #### 📝 Description
4117
-
4118
- <dl>
4119
- <dd>
4120
5864
 
4121
5865
  <dl>
4122
5866
  <dd>
4123
5867
 
4124
- Send a RCS message immediately or schedule it for future delivery. <br>
4125
-
4126
- Requires an active RCS agent and recipient devices that support RCS Business Messaging.
4127
- </dd>
4128
- </dl>
5868
+ **audience_id:** `String` Filter blasts by audience ID.
5869
+
4129
5870
  </dd>
4130
5871
  </dl>
4131
5872
 
4132
- #### 🔌 Usage
4133
-
4134
- <dl>
4135
- <dd>
4136
-
4137
5873
  <dl>
4138
5874
  <dd>
4139
5875
 
4140
- ```ruby
4141
- client.messages.rcs.send_(
4142
- from: 'from',
4143
- to: 'to',
4144
- quick_replies: [],
4145
- text: 'text'
4146
- );
4147
- ```
4148
- </dd>
4149
- </dl>
5876
+ **sender:** `String` — Filter blasts that include this sender (phone number or agent ID).
5877
+
4150
5878
  </dd>
4151
5879
  </dl>
4152
5880
 
4153
- #### ⚙️ Parameters
4154
-
4155
- <dl>
4156
- <dd>
4157
-
4158
5881
  <dl>
4159
5882
  <dd>
4160
5883
 
4161
- **request:** `Pinnacle::Types::RichMessage`
5884
+ **content:** `String` — Search blast content (partial match, case-insensitive).
4162
5885
 
4163
5886
  </dd>
4164
5887
  </dl>
@@ -4166,7 +5889,7 @@ client.messages.rcs.send_(
4166
5889
  <dl>
4167
5890
  <dd>
4168
5891
 
4169
- **request_options:** `Pinnacle::Messages::Rcs::RequestOptions`
5892
+ **request_options:** `Pinnacle::Messages::Blasts::RequestOptions`
4170
5893
 
4171
5894
  </dd>
4172
5895
  </dl>
@@ -4178,7 +5901,8 @@ client.messages.rcs.send_(
4178
5901
  </dl>
4179
5902
  </details>
4180
5903
 
4181
- <details><summary><code>client.messages.rcs.<a href="/lib/pinnacle/messages/rcs/client.rb">send_typing</a>(request) -> Pinnacle::Types::SendTypingIndicatorResponse</code></summary>
5904
+ ## PhoneNumbers Campaign
5905
+ <details><summary><code>client.phone_numbers.campaign.<a href="/lib/pinnacle/phone_numbers/campaign/client.rb">attach</a>(request) -> Pinnacle::Types::AttachedPhoneNumberResult</code></summary>
4182
5906
  <dl>
4183
5907
  <dd>
4184
5908
 
@@ -4190,17 +5914,7 @@ client.messages.rcs.send_(
4190
5914
  <dl>
4191
5915
  <dd>
4192
5916
 
4193
- Send a typing indicator from an RCS agent to a recipient.
4194
-
4195
- This endpoint allows RCS agents to display a typing indicator to recipients. The indicator is a message bubble with animated typing dots like this: <img src="https://server.trypinnacle.app/storage/v1/object/public/pinnacle-public-assets/ios-typing-indicator.png" alt="Typing Indicator" style="display: inline; height: 1.5em; vertical-align: middle; margin: 0 4px;" />
4196
-
4197
- **Use Case:** Typing indicators are especially useful for providing feedback to users while the agent is thinking or generating a response that may take some time, creating a more engaging conversational experience.
4198
-
4199
- **Expiration:** Typing indicators automatically expire after around 20 seconds or when the agent sends a message, whichever comes first.
4200
-
4201
- **Frequency:** You can send typing indicators as many times as needed, though only one will be displayed at a time. Sending multiple typing indicators will extend the duration of the current indicator.
4202
-
4203
- > **Note:** Typing indicators are best-effort hints, not delivery-guaranteed state. The platform is allowed to coalesce or drop them, and the client UI decides when to show/hide.
5917
+ Link a phone number to a specific campaign. Phone numbers must be linked to a campaign to send messages.
4204
5918
  </dd>
4205
5919
  </dl>
4206
5920
  </dd>
@@ -4215,12 +5929,10 @@ This endpoint allows RCS agents to display a typing indicator to recipients. The
4215
5929
  <dd>
4216
5930
 
4217
5931
  ```ruby
4218
- client.messages.rcs.send_typing(
4219
- agent_id: 'agent_pinnacle',
4220
- to: '+14154746461',
4221
- options: {
4222
- test_mode: false
4223
- }
5932
+ client.phone_numbers.campaign.attach(
5933
+ phones: ['+14155550123', '+14155559876', '+14155550111'],
5934
+ campaign_type: 'TOLL_FREE',
5935
+ campaign_id: 'tf_1234567890'
4224
5936
  );
4225
5937
  ```
4226
5938
  </dd>
@@ -4236,11 +5948,10 @@ client.messages.rcs.send_typing(
4236
5948
  <dl>
4237
5949
  <dd>
4238
5950
 
4239
- **agent_id:** `String`
4240
-
4241
- The unique identifier of the RCS agent sending the typing indicator. <br>
5951
+ **phones:** `Internal::Types::Array[String]`
4242
5952
 
4243
- Format: `agent_` followed by alphanumeric characters (e.g., `agent_pinnacle`).
5953
+ List of phone number (E.164 format). <br><br>
5954
+ **Limit:** 1 to 10
4244
5955
 
4245
5956
  </dd>
4246
5957
  </dl>
@@ -4248,11 +5959,7 @@ Format: `agent_` followed by alphanumeric characters (e.g., `agent_pinnacle`).
4248
5959
  <dl>
4249
5960
  <dd>
4250
5961
 
4251
- **to:** `String`
4252
-
4253
- The recipient's phone number in E.164 format. <br>
4254
-
4255
- Must include country code with a leading plus sign (e.g., `+14155551234`).
5962
+ **campaign_type:** `Pinnacle::Types::MessagingProfileEnum`
4256
5963
 
4257
5964
  </dd>
4258
5965
  </dl>
@@ -4260,7 +5967,16 @@ Must include country code with a leading plus sign (e.g., `+14155551234`).
4260
5967
  <dl>
4261
5968
  <dd>
4262
5969
 
4263
- **options:** `Pinnacle::Messages::Rcs::Types::SendTypingIndicatorSchemaOptions` — Configure how your typing indicator is sent.
5970
+ **campaign_id:** `String`
5971
+
5972
+ Unique identifier for the campaign. <br>
5973
+
5974
+ - **TOLL_FREE** campaigns:
5975
+ - Must begin with the prefix `tf_`
5976
+ - Example: `tf_1234567890`
5977
+ - **10DLC** campaigns:
5978
+ - Must begin with the prefix `dlc_`
5979
+ - Example: `dlc_1234567890`
4264
5980
 
4265
5981
  </dd>
4266
5982
  </dl>
@@ -4268,7 +5984,7 @@ Must include country code with a leading plus sign (e.g., `+14155551234`).
4268
5984
  <dl>
4269
5985
  <dd>
4270
5986
 
4271
- **request_options:** `Pinnacle::Messages::Rcs::RequestOptions`
5987
+ **request_options:** `Pinnacle::PhoneNumbers::Campaign::RequestOptions`
4272
5988
 
4273
5989
  </dd>
4274
5990
  </dl>
@@ -4280,7 +5996,7 @@ Must include country code with a leading plus sign (e.g., `+14155551234`).
4280
5996
  </dl>
4281
5997
  </details>
4282
5998
 
4283
- <details><summary><code>client.messages.rcs.<a href="/lib/pinnacle/messages/rcs/client.rb">validate</a>(request) -> Pinnacle::Types::RcsValidationResult</code></summary>
5999
+ <details><summary><code>client.phone_numbers.campaign.<a href="/lib/pinnacle/phone_numbers/campaign/client.rb">detach</a>(request) -> Pinnacle::Types::DetachedPhoneNumberResult</code></summary>
4284
6000
  <dl>
4285
6001
  <dd>
4286
6002
 
@@ -4292,7 +6008,7 @@ Must include country code with a leading plus sign (e.g., `+14155551234`).
4292
6008
  <dl>
4293
6009
  <dd>
4294
6010
 
4295
- Validate RCS message content without sending it.
6011
+ Remove the association between a phone number and its attached campaign.
4296
6012
  </dd>
4297
6013
  </dl>
4298
6014
  </dd>
@@ -4307,10 +6023,7 @@ Validate RCS message content without sending it.
4307
6023
  <dd>
4308
6024
 
4309
6025
  ```ruby
4310
- client.messages.rcs.validate(
4311
- quick_replies: [],
4312
- text: 'text'
4313
- );
6026
+ client.phone_numbers.campaign.detach(phones: ['+14155559876', '14155550111']);
4314
6027
  ```
4315
6028
  </dd>
4316
6029
  </dl>
@@ -4325,7 +6038,10 @@ client.messages.rcs.validate(
4325
6038
  <dl>
4326
6039
  <dd>
4327
6040
 
4328
- **request:** `Pinnacle::Types::RcsValidateContent`
6041
+ **phones:** `Internal::Types::Array[String]`
6042
+
6043
+ List of phone numbers (E.164 format). <br><br>
6044
+ **Limit:** 1 to 10
4329
6045
 
4330
6046
  </dd>
4331
6047
  </dl>
@@ -4333,7 +6049,7 @@ client.messages.rcs.validate(
4333
6049
  <dl>
4334
6050
  <dd>
4335
6051
 
4336
- **request_options:** `Pinnacle::Messages::Rcs::RequestOptions`
6052
+ **request_options:** `Pinnacle::PhoneNumbers::Campaign::RequestOptions`
4337
6053
 
4338
6054
  </dd>
4339
6055
  </dl>
@@ -4345,8 +6061,8 @@ client.messages.rcs.validate(
4345
6061
  </dl>
4346
6062
  </details>
4347
6063
 
4348
- ## Messages Blast
4349
- <details><summary><code>client.messages.blast.<a href="/lib/pinnacle/messages/blast/client.rb">sms</a>(request) -> Pinnacle::Messages::Blast::Types::BlastSmsResponse</code></summary>
6064
+ ## Rcs Agents
6065
+ <details><summary><code>client.rcs.agents.<a href="/lib/pinnacle/rcs/agents/client.rb">list</a>(request) -> Pinnacle::Types::ListAgentsResponse</code></summary>
4350
6066
  <dl>
4351
6067
  <dd>
4352
6068
 
@@ -4358,11 +6074,7 @@ client.messages.rcs.validate(
4358
6074
  <dl>
4359
6075
  <dd>
4360
6076
 
4361
- Send an SMS message to all contacts in an audience. <br>
4362
-
4363
- Messages are distributed evenly across the provided sender phone numbers. <br>
4364
-
4365
- Use the optional `schedule` parameter in `options` to schedule the blast for future delivery. When scheduled, the response will contain a `scheduleId` instead of blast details.
6077
+ List all RCS agents with pagination. Results are sorted by creation date, newest first.
4366
6078
  </dd>
4367
6079
  </dl>
4368
6080
  </dd>
@@ -4377,13 +6089,7 @@ Use the optional `schedule` parameter in `options` to schedule the blast for fut
4377
6089
  <dd>
4378
6090
 
4379
6091
  ```ruby
4380
- client.messages.blast.sms(
4381
- audience_id: 'aud_abc123',
4382
- senders: ['+14155164736', '+14155164737'],
4383
- message: {
4384
- text: 'Hello from Pinnacle!'
4385
- }
4386
- );
6092
+ client.rcs.agents.list();
4387
6093
  ```
4388
6094
  </dd>
4389
6095
  </dl>
@@ -4398,11 +6104,7 @@ client.messages.blast.sms(
4398
6104
  <dl>
4399
6105
  <dd>
4400
6106
 
4401
- **audience_id:** `String`
4402
-
4403
- The audience ID to send the blast to. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. <br>
4404
-
4405
- You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard/audiences) or [API](/api-reference/audiences/create).
6107
+ **page_index:** `Integer`
4406
6108
 
4407
6109
  </dd>
4408
6110
  </dl>
@@ -4410,15 +6112,7 @@ You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard
4410
6112
  <dl>
4411
6113
  <dd>
4412
6114
 
4413
- **senders:** `Internal::Types::Array[String]`
4414
-
4415
- Array of phone numbers to send from in E.164 format. <br>
4416
-
4417
- Messages will be distributed evenly across these senders.
4418
-
4419
- > **Note:** Sandbox numbers cannot be used for blasts.
4420
-
4421
- **Limit:** 1 min
6115
+ **page_size:** `Integer`
4422
6116
 
4423
6117
  </dd>
4424
6118
  </dl>
@@ -4426,7 +6120,7 @@ Messages will be distributed evenly across these senders.
4426
6120
  <dl>
4427
6121
  <dd>
4428
6122
 
4429
- **message:** `Pinnacle::Types::SmsContent`
6123
+ **agent_type:** `Pinnacle::Rcs::Agents::Types::ListAgentsRequestAgentType` — Filter by agent type.
4430
6124
 
4431
6125
  </dd>
4432
6126
  </dl>
@@ -4434,7 +6128,7 @@ Messages will be distributed evenly across these senders.
4434
6128
  <dl>
4435
6129
  <dd>
4436
6130
 
4437
- **options:** `Pinnacle::Messages::Blast::Types::BlastSmsOptions` — Additional settings to customize SMS blast delivery.
6131
+ **name:** `String` — Case-insensitive substring search on agent name.
4438
6132
 
4439
6133
  </dd>
4440
6134
  </dl>
@@ -4442,7 +6136,7 @@ Messages will be distributed evenly across these senders.
4442
6136
  <dl>
4443
6137
  <dd>
4444
6138
 
4445
- **request_options:** `Pinnacle::Messages::Blast::RequestOptions`
6139
+ **request_options:** `Pinnacle::Rcs::Agents::RequestOptions`
4446
6140
 
4447
6141
  </dd>
4448
6142
  </dl>
@@ -4454,7 +6148,8 @@ Messages will be distributed evenly across these senders.
4454
6148
  </dl>
4455
6149
  </details>
4456
6150
 
4457
- <details><summary><code>client.messages.blast.<a href="/lib/pinnacle/messages/blast/client.rb">mms</a>(request) -> Pinnacle::Messages::Blast::Types::BlastMmsResponse</code></summary>
6151
+ ## Rcs WhitelistedNumbers
6152
+ <details><summary><code>client.rcs.whitelisted_numbers.<a href="/lib/pinnacle/rcs/whitelisted_numbers/client.rb">list</a>(request) -> Pinnacle::Types::ListTestNumbersResponse</code></summary>
4458
6153
  <dl>
4459
6154
  <dd>
4460
6155
 
@@ -4466,11 +6161,7 @@ Messages will be distributed evenly across these senders.
4466
6161
  <dl>
4467
6162
  <dd>
4468
6163
 
4469
- Send an MMS message to all contacts in an audience. <br>
4470
-
4471
- Messages are distributed evenly across the provided sender phone numbers. <br>
4472
-
4473
- Use the optional `schedule` parameter in `options` to schedule the blast for future delivery. When scheduled, the response will contain a `scheduleId` instead of blast details.
6164
+ List all whitelisted test numbers with optional filtering and pagination. Results are sorted by creation date, newest first.
4474
6165
  </dd>
4475
6166
  </dl>
4476
6167
  </dd>
@@ -4485,17 +6176,7 @@ Use the optional `schedule` parameter in `options` to schedule the blast for fut
4485
6176
  <dd>
4486
6177
 
4487
6178
  ```ruby
4488
- client.messages.blast.mms(
4489
- audience_id: 'aud_abc123',
4490
- senders: ['+14155164736', '+14155164737'],
4491
- message: {
4492
- media_urls: ['https://fastly.picsum.photos/id/941/300/300.jpg'],
4493
- text: 'Check out this image!'
4494
- },
4495
- options: {
4496
- validate: true
4497
- }
4498
- );
6179
+ client.rcs.whitelisted_numbers.list();
4499
6180
  ```
4500
6181
  </dd>
4501
6182
  </dl>
@@ -4510,11 +6191,7 @@ client.messages.blast.mms(
4510
6191
  <dl>
4511
6192
  <dd>
4512
6193
 
4513
- **audience_id:** `String`
4514
-
4515
- The audience ID to send the blast to. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. <br>
4516
-
4517
- You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard/audiences) or [API](/api-reference/audiences/create).
6194
+ **page_index:** `Integer`
4518
6195
 
4519
6196
  </dd>
4520
6197
  </dl>
@@ -4522,15 +6199,15 @@ You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard
4522
6199
  <dl>
4523
6200
  <dd>
4524
6201
 
4525
- **senders:** `Internal::Types::Array[String]`
4526
-
4527
- Array of phone numbers to send from in E.164 format. <br>
4528
-
4529
- Messages will be distributed evenly across these senders.
6202
+ **page_size:** `Integer`
6203
+
6204
+ </dd>
6205
+ </dl>
4530
6206
 
4531
- > **Note:** Sandbox numbers cannot be used for blasts.
6207
+ <dl>
6208
+ <dd>
4532
6209
 
4533
- **Limit:** 1 min
6210
+ **agent_id:** `String` — Filter whitelisted numbers by agent ID (prefixed with 'agent_').
4534
6211
 
4535
6212
  </dd>
4536
6213
  </dl>
@@ -4538,7 +6215,7 @@ Messages will be distributed evenly across these senders.
4538
6215
  <dl>
4539
6216
  <dd>
4540
6217
 
4541
- **message:** `Pinnacle::Types::MmsContent`
6218
+ **number:** `String` — Filter by phone number in E.164 format.
4542
6219
 
4543
6220
  </dd>
4544
6221
  </dl>
@@ -4546,7 +6223,7 @@ Messages will be distributed evenly across these senders.
4546
6223
  <dl>
4547
6224
  <dd>
4548
6225
 
4549
- **options:** `Pinnacle::Messages::Blast::Types::BlastMmsOptions` — Additional settings to customize MMS blast delivery.
6226
+ **status:** `Pinnacle::Rcs::WhitelistedNumbers::Types::ListTestNumbersRequestStatus` — Filter by whitelist status.
4550
6227
 
4551
6228
  </dd>
4552
6229
  </dl>
@@ -4554,7 +6231,7 @@ Messages will be distributed evenly across these senders.
4554
6231
  <dl>
4555
6232
  <dd>
4556
6233
 
4557
- **request_options:** `Pinnacle::Messages::Blast::RequestOptions`
6234
+ **request_options:** `Pinnacle::Rcs::WhitelistedNumbers::RequestOptions`
4558
6235
 
4559
6236
  </dd>
4560
6237
  </dl>
@@ -4566,7 +6243,8 @@ Messages will be distributed evenly across these senders.
4566
6243
  </dl>
4567
6244
  </details>
4568
6245
 
4569
- <details><summary><code>client.messages.blast.<a href="/lib/pinnacle/messages/blast/client.rb">rcs</a>(request) -> Pinnacle::Messages::Blast::Types::BlastRcsResponse</code></summary>
6246
+ ## Rcs Test
6247
+ <details><summary><code>client.rcs.test.<a href="/lib/pinnacle/rcs/test/client.rb">create_agent</a>(request) -> Pinnacle::Types::TestAgentResponse</code></summary>
4570
6248
  <dl>
4571
6249
  <dd>
4572
6250
 
@@ -4578,11 +6256,37 @@ Messages will be distributed evenly across these senders.
4578
6256
  <dl>
4579
6257
  <dd>
4580
6258
 
4581
- Send an RCS message to all contacts in an audience. <br>
6259
+ Create a new RCS test agent for development and testing.
4582
6260
 
4583
- Messages are distributed evenly across the provided RCS agents for load balancing. Requires active RCS agents and recipient devices that support RCS Business Messaging. <br>
6261
+ ## Overview
4584
6262
 
4585
- Use the optional `schedule` parameter in `options` to schedule the blast for future delivery. When scheduled, the response will contain a `scheduleId` instead of blast details.
6263
+ Test agents let you build and test full RCS functionality rich cards, carousels, buttons,
6264
+ quick replies, and media messages — without going through the full carrier review process.
6265
+ Messages from test agents can only be sent to [whitelisted phone numbers](/api-reference/rcs-agents/test/whitelist-number).
6266
+
6267
+ ## Limits
6268
+
6269
+ - **Maximum 5 test agents per account.**
6270
+
6271
+ ## Image Requirements
6272
+
6273
+ | Image | Format | Max Size |
6274
+ |-------|--------|----------|
6275
+ | Logo | JPEG, PNG | 50 KB |
6276
+ | Hero | JPEG, PNG | 200 KB |
6277
+
6278
+ ## After Creation
6279
+
6280
+ Once your test agent is created, you'll need to:
6281
+
6282
+ 1. **Whitelist test phone numbers** using [`POST /rcs/test/agents/{agentId}/whitelist`](/api-reference/rcs-agents/test/whitelist-number).
6283
+ 2. **Accept the tester invite** on each whitelisted device.
6284
+ 3. **Send messages** using [`POST /messages/send/rcs`](/api-reference/messages/send-rcs) with the returned agent ID as the `from` field.
6285
+
6286
+ > **2-Minute Cooldown**
6287
+ >
6288
+ > After creating a test agent, there is a mandatory 2-minute cooldown before you can whitelist phone numbers.
6289
+ > This is a requirement imposed by Google's RBM platform.
4586
6290
  </dd>
4587
6291
  </dl>
4588
6292
  </dd>
@@ -4597,21 +6301,28 @@ Use the optional `schedule` parameter in `options` to schedule the blast for fut
4597
6301
  <dd>
4598
6302
 
4599
6303
  ```ruby
4600
- client.messages.blast.rcs(
4601
- audience_id: 'aud_abc123',
4602
- senders: ['agent_pinnacle', 'agent_pinnacle2'],
4603
- message: {
4604
- quick_replies: [],
4605
- text: 'Hello from Pinnacle RCS!'
4606
- },
4607
- fallback: {
4608
- from: '+14155164736',
4609
- text: 'Hello from Pinnacle! Reply LEARN to learn more.'
4610
- },
4611
- options: {
4612
- transcode: true,
4613
- validate: true
4614
- }
6304
+ client.rcs.test.create_agent(
6305
+ display_name: 'Acme Support',
6306
+ description: 'Get help with your Acme orders and account',
6307
+ logo_url: 'https://example.com/logo.png',
6308
+ hero_url: 'https://example.com/hero.png',
6309
+ phone_numbers: [{
6310
+ number: '+14155550123',
6311
+ label: 'Support'
6312
+ }],
6313
+ emails: [{
6314
+ address: 'support@example.com',
6315
+ label: 'Support'
6316
+ }],
6317
+ websites: [{
6318
+ url: 'https://example.com',
6319
+ label: 'Website'
6320
+ }],
6321
+ privacy_url: 'https://example.com/privacy',
6322
+ terms_url: 'https://example.com/terms',
6323
+ color: "#FF6B00",
6324
+ is_conversational: true,
6325
+ agent_use_case: 'MULTI_USE'
4615
6326
  );
4616
6327
  ```
4617
6328
  </dd>
@@ -4627,11 +6338,10 @@ client.messages.blast.rcs(
4627
6338
  <dl>
4628
6339
  <dd>
4629
6340
 
4630
- **audience_id:** `String`
4631
-
4632
- The audience ID to send the blast to. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. <br>
6341
+ **display_name:** `String`
4633
6342
 
4634
- You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard/audiences) or [API](/api-reference/audiences/create).
6343
+ Display name of the agent shown to users in RCS conversations.
6344
+ Must be between 1 and 40 characters.
4635
6345
 
4636
6346
  </dd>
4637
6347
  </dl>
@@ -4639,15 +6349,10 @@ You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard
4639
6349
  <dl>
4640
6350
  <dd>
4641
6351
 
4642
- **senders:** `Internal::Types::Array[String]`
4643
-
4644
- Array of RCS agent IDs to send from. Each must be prefixed with `agent_`. <br>
4645
-
4646
- Messages will be evenly distributed across these agents.
4647
-
4648
- > **Note:** Test agents cannot be used for blasts.
6352
+ **description:** `String`
4649
6353
 
4650
- **Limit:** 1 min
6354
+ Short description of what the agent does. Shown to users in the agent's profile.
6355
+ Must be between 1 and 100 characters.
4651
6356
 
4652
6357
  </dd>
4653
6358
  </dl>
@@ -4655,7 +6360,14 @@ Messages will be evenly distributed across these agents.
4655
6360
  <dl>
4656
6361
  <dd>
4657
6362
 
4658
- **message:** `Pinnacle::Types::RcsValidateContent`
6363
+ **logo_url:** `String`
6364
+
6365
+ URL to the agent's logo image. Displayed as the agent's avatar in conversations.
6366
+
6367
+ **Requirements:**
6368
+ - Format: JPEG or PNG
6369
+ - Max file size: 50 KB
6370
+ - Recommended: Square aspect ratio
4659
6371
 
4660
6372
  </dd>
4661
6373
  </dl>
@@ -4663,7 +6375,14 @@ Messages will be evenly distributed across these agents.
4663
6375
  <dl>
4664
6376
  <dd>
4665
6377
 
4666
- **fallback:** `Pinnacle::Types::FallbackMessage`
6378
+ **hero_url:** `String`
6379
+
6380
+ URL to the agent's hero banner image. Displayed at the top of the agent's profile.
6381
+
6382
+ **Requirements:**
6383
+ - Format: JPEG or PNG
6384
+ - Max file size: 200 KB
6385
+ - Recommended: Landscape aspect ratio
4667
6386
 
4668
6387
  </dd>
4669
6388
  </dl>
@@ -4671,7 +6390,10 @@ Messages will be evenly distributed across these agents.
4671
6390
  <dl>
4672
6391
  <dd>
4673
6392
 
4674
- **options:** `Pinnacle::Messages::Blast::Types::BlastRcsOptions` — Configure how your RCS blast is sent and tracked.
6393
+ **phone_numbers:** `Internal::Types::Array[Pinnacle::Types::AgentPhoneEntry]`
6394
+
6395
+ Contact phone numbers displayed on the agent's profile.
6396
+ At least 1 and up to 3 entries.
4675
6397
 
4676
6398
  </dd>
4677
6399
  </dl>
@@ -4679,64 +6401,67 @@ Messages will be evenly distributed across these agents.
4679
6401
  <dl>
4680
6402
  <dd>
4681
6403
 
4682
- **request_options:** `Pinnacle::Messages::Blast::RequestOptions`
6404
+ **emails:** `Internal::Types::Array[Pinnacle::Types::AgentEmailEntry]`
6405
+
6406
+ Contact email addresses displayed on the agent's profile.
6407
+ At least 1 and up to 3 entries.
4683
6408
 
4684
6409
  </dd>
4685
6410
  </dl>
4686
- </dd>
4687
- </dl>
4688
6411
 
6412
+ <dl>
6413
+ <dd>
6414
+
6415
+ **websites:** `Internal::Types::Array[Pinnacle::Types::AgentWebsiteEntry]`
4689
6416
 
6417
+ Website links displayed on the agent's profile.
6418
+ At least 1 and up to 3 entries.
6419
+
4690
6420
  </dd>
4691
6421
  </dl>
4692
- </details>
4693
6422
 
4694
- ## Messages Schedule
4695
- <details><summary><code>client.messages.schedule.<a href="/lib/pinnacle/messages/schedule/client.rb">cancel</a>(id) -> Pinnacle::Types::ScheduleCancelResult</code></summary>
4696
6423
  <dl>
4697
6424
  <dd>
4698
6425
 
4699
- #### 📝 Description
6426
+ **privacy_url:** `String` — URL to the agent's privacy policy.
6427
+
6428
+ </dd>
6429
+ </dl>
4700
6430
 
4701
6431
  <dl>
4702
6432
  <dd>
4703
6433
 
6434
+ **terms_url:** `String` — URL to the agent's terms and conditions.
6435
+
6436
+ </dd>
6437
+ </dl>
6438
+
4704
6439
  <dl>
4705
6440
  <dd>
4706
6441
 
4707
- Cancel a scheduled message or blast. <br>
6442
+ **color:** `String`
4708
6443
 
4709
- Works for both individual scheduled messages and scheduled blasts. Use the `scheduleId` returned when the message or blast was scheduled.
4710
- </dd>
4711
- </dl>
6444
+ The agent's brand color as a hex color code. Used for UI accents in the RCS conversation.
6445
+ Must have sufficient contrast with white for accessibility.
6446
+
4712
6447
  </dd>
4713
6448
  </dl>
4714
6449
 
4715
- #### 🔌 Usage
4716
-
4717
6450
  <dl>
4718
6451
  <dd>
4719
6452
 
4720
- <dl>
4721
- <dd>
6453
+ **is_conversational:** `Internal::Types::Boolean`
4722
6454
 
4723
- ```ruby
4724
- client.messages.schedule.cancel(id: 'id');
4725
- ```
4726
- </dd>
4727
- </dl>
6455
+ Whether the agent supports two-way conversations. Set to `true` if the agent
6456
+ will respond to user messages. Set to `false` for send-only agents (e.g., notifications).
6457
+
4728
6458
  </dd>
4729
6459
  </dl>
4730
6460
 
4731
- #### ⚙️ Parameters
4732
-
4733
- <dl>
4734
- <dd>
4735
-
4736
6461
  <dl>
4737
6462
  <dd>
4738
6463
 
4739
- **id:** `String` — Unique identifier of the scheduled message. This identifier is a string that always begins with the prefix `msg_sched_`, for example: `msg_sched_1234567890`.
6464
+ **agent_use_case:** `Pinnacle::Types::AgentUseCase`
4740
6465
 
4741
6466
  </dd>
4742
6467
  </dl>
@@ -4744,7 +6469,7 @@ client.messages.schedule.cancel(id: 'id');
4744
6469
  <dl>
4745
6470
  <dd>
4746
6471
 
4747
- **request_options:** `Pinnacle::Messages::Schedule::RequestOptions`
6472
+ **request_options:** `Pinnacle::Rcs::Test::RequestOptions`
4748
6473
 
4749
6474
  </dd>
4750
6475
  </dl>
@@ -4756,8 +6481,7 @@ client.messages.schedule.cancel(id: 'id');
4756
6481
  </dl>
4757
6482
  </details>
4758
6483
 
4759
- ## PhoneNumbers Webhook
4760
- <details><summary><code>client.phone_numbers.webhook.<a href="/lib/pinnacle/phone_numbers/webhook/client.rb">attach</a>(phone, request) -> Pinnacle::Types::ConfiguredWebhook</code></summary>
6484
+ <details><summary><code>client.rcs.test.<a href="/lib/pinnacle/rcs/test/client.rb">update_agent</a>(agent_id, request) -> Pinnacle::Types::TestAgentResponse</code></summary>
4761
6485
  <dl>
4762
6486
  <dd>
4763
6487
 
@@ -4769,7 +6493,23 @@ client.messages.schedule.cancel(id: 'id');
4769
6493
  <dl>
4770
6494
  <dd>
4771
6495
 
4772
- Connect a webhook to your phone number to receive real-time notifications for incoming messages, delivery status updates, and other communication events.
6496
+ Update an existing RCS test agent's configuration.
6497
+
6498
+ All fields are optional — only include the fields you want to update.
6499
+
6500
+ ## Image Requirements
6501
+
6502
+ If updating images, the same requirements apply as when creating an agent:
6503
+
6504
+ | Image | Format | Max Size |
6505
+ |-------|--------|----------|
6506
+ | Logo | JPEG, PNG | 50 KB |
6507
+ | Hero | JPEG, PNG | 200 KB |
6508
+
6509
+ > **2-Minute Cooldown**
6510
+ >
6511
+ > After updating a test agent, there is a mandatory 2-minute cooldown before you can whitelist phone numbers.
6512
+ > This is a requirement imposed by Google's RBM platform.
4773
6513
  </dd>
4774
6514
  </dl>
4775
6515
  </dd>
@@ -4784,10 +6524,9 @@ Connect a webhook to your phone number to receive real-time notifications for in
4784
6524
  <dd>
4785
6525
 
4786
6526
  ```ruby
4787
- client.phone_numbers.webhook.attach(
4788
- phone: '%2B14155551234',
4789
- webhook_id: 'wh_1234567890',
4790
- event: 'MESSAGE.STATUS'
6527
+ client.rcs.test.update_agent(
6528
+ agent_id: 'agent_abc123def456',
6529
+ display_name: 'Acme Premium Support'
4791
6530
  );
4792
6531
  ```
4793
6532
  </dd>
@@ -4803,11 +6542,7 @@ client.phone_numbers.webhook.attach(
4803
6542
  <dl>
4804
6543
  <dd>
4805
6544
 
4806
- **phone:** `String`
4807
-
4808
- The phone number you want to attach the webhook to in E.164 format. Make sure it is url encoded (i.e. replace the leading + with %2B). <br>
4809
-
4810
- Must be a phone number that you own and have already [purchased](./buy) through the API. A phone number can have multiple webhooks attached to it.
6545
+ **agent_id:** `String` — The RCS agent ID (must be prefixed with `agent_`).
4811
6546
 
4812
6547
  </dd>
4813
6548
  </dl>
@@ -4815,7 +6550,10 @@ Must be a phone number that you own and have already [purchased](./buy) through
4815
6550
  <dl>
4816
6551
  <dd>
4817
6552
 
4818
- **request:** `Pinnacle::Types::AttachWebhookParams`
6553
+ **display_name:** `String`
6554
+
6555
+ Display name of the agent shown to users in RCS conversations.
6556
+ Must be between 1 and 40 characters.
4819
6557
 
4820
6558
  </dd>
4821
6559
  </dl>
@@ -4823,70 +6561,88 @@ Must be a phone number that you own and have already [purchased](./buy) through
4823
6561
  <dl>
4824
6562
  <dd>
4825
6563
 
4826
- **request_options:** `Pinnacle::PhoneNumbers::Webhook::RequestOptions`
6564
+ **description:** `String`
6565
+
6566
+ Short description of what the agent does.
6567
+ Must be between 1 and 100 characters.
4827
6568
 
4828
6569
  </dd>
4829
6570
  </dl>
4830
- </dd>
4831
- </dl>
4832
6571
 
6572
+ <dl>
6573
+ <dd>
6574
+
6575
+ **logo_url:** `String`
4833
6576
 
6577
+ URL to the agent's logo image.
6578
+
6579
+ **Requirements:**
6580
+ - Format: JPEG or PNG
6581
+ - Max file size: 50 KB
6582
+ - Recommended: Square aspect ratio
6583
+
4834
6584
  </dd>
4835
6585
  </dl>
4836
- </details>
4837
6586
 
4838
- <details><summary><code>client.phone_numbers.webhook.<a href="/lib/pinnacle/phone_numbers/webhook/client.rb">detach</a>(phone, webhook_id) -> Pinnacle::Types::DetachedWebhookInfo</code></summary>
4839
6587
  <dl>
4840
6588
  <dd>
4841
6589
 
4842
- #### 📝 Description
6590
+ **hero_url:** `String`
4843
6591
 
4844
- <dl>
4845
- <dd>
6592
+ URL to the agent's hero banner image.
6593
+
6594
+ **Requirements:**
6595
+ - Format: JPEG or PNG
6596
+ - Max file size: 200 KB
6597
+ - Recommended: Landscape aspect ratio
6598
+
6599
+ </dd>
6600
+ </dl>
4846
6601
 
4847
6602
  <dl>
4848
6603
  <dd>
4849
6604
 
4850
- Disconnect a webhook from your phone number to stop receiving event notifications for that specific number. <br>
4851
-
4852
- The webhook configuration itself remains intact and available for use with other phone numbers.
4853
- </dd>
4854
- </dl>
6605
+ **phone_numbers:** `Internal::Types::Array[Pinnacle::Types::AgentPhoneEntry]` Contact phone numbers displayed on the agent's profile. At least 1 and up to 3 entries.
6606
+
4855
6607
  </dd>
4856
6608
  </dl>
4857
6609
 
4858
- #### 🔌 Usage
4859
-
4860
6610
  <dl>
4861
6611
  <dd>
4862
6612
 
6613
+ **emails:** `Internal::Types::Array[Pinnacle::Types::AgentEmailEntry]` — Contact email addresses displayed on the agent's profile. At least 1 and up to 3 entries.
6614
+
6615
+ </dd>
6616
+ </dl>
6617
+
4863
6618
  <dl>
4864
6619
  <dd>
4865
6620
 
4866
- ```ruby
4867
- client.phone_numbers.webhook.detach(
4868
- phone: '+14155551234',
4869
- webhook_id: 'wh_1234567890'
4870
- );
4871
- ```
4872
- </dd>
4873
- </dl>
6621
+ **websites:** `Internal::Types::Array[Pinnacle::Types::AgentWebsiteEntry]` — Website links displayed on the agent's profile. At least 1 and up to 3 entries.
6622
+
4874
6623
  </dd>
4875
6624
  </dl>
4876
6625
 
4877
- #### ⚙️ Parameters
4878
-
4879
6626
  <dl>
4880
6627
  <dd>
4881
6628
 
6629
+ **privacy_url:** `String` — URL to the agent's privacy policy.
6630
+
6631
+ </dd>
6632
+ </dl>
6633
+
4882
6634
  <dl>
4883
6635
  <dd>
4884
6636
 
4885
- **phone:** `String`
6637
+ **terms_url:** `String` — URL to the agent's terms and conditions.
6638
+
6639
+ </dd>
6640
+ </dl>
4886
6641
 
4887
- The phone number you want to attach the webhook to in E.164 format. Make sure it is url encoded (i.e. replace the leading + with %2B). <br>
6642
+ <dl>
6643
+ <dd>
4888
6644
 
4889
- Must be a phone number that you own and currently has the specified webhook attached.
6645
+ **color:** `String` The agent's brand color as a hex color code. Must have sufficient contrast with white.
4890
6646
 
4891
6647
  </dd>
4892
6648
  </dl>
@@ -4894,11 +6650,15 @@ Must be a phone number that you own and currently has the specified webhook atta
4894
6650
  <dl>
4895
6651
  <dd>
4896
6652
 
4897
- **webhook_id:** `String`
6653
+ **is_conversational:** `Internal::Types::Boolean` — Whether the agent supports two-way conversations.
6654
+
6655
+ </dd>
6656
+ </dl>
4898
6657
 
4899
- The unique identifier of the webhook you want to detach from the phone number. <br>
6658
+ <dl>
6659
+ <dd>
4900
6660
 
4901
- This must be a valid webhook ID that is currently attached to the specified phone number. This identifier is a string that always begins with the prefix `wh_`, for example: `wh_1234567890`.
6661
+ **agent_use_case:** `Pinnacle::Types::AgentUseCase`
4902
6662
 
4903
6663
  </dd>
4904
6664
  </dl>
@@ -4906,7 +6666,7 @@ This must be a valid webhook ID that is currently attached to the specified phon
4906
6666
  <dl>
4907
6667
  <dd>
4908
6668
 
4909
- **request_options:** `Pinnacle::PhoneNumbers::Webhook::RequestOptions`
6669
+ **request_options:** `Pinnacle::Rcs::Test::RequestOptions`
4910
6670
 
4911
6671
  </dd>
4912
6672
  </dl>
@@ -4918,8 +6678,7 @@ This must be a valid webhook ID that is currently attached to the specified phon
4918
6678
  </dl>
4919
6679
  </details>
4920
6680
 
4921
- ## PhoneNumbers Campaign
4922
- <details><summary><code>client.phone_numbers.campaign.<a href="/lib/pinnacle/phone_numbers/campaign/client.rb">attach</a>(request) -> Pinnacle::Types::AttachedPhoneNumberResult</code></summary>
6681
+ <details><summary><code>client.rcs.test.<a href="/lib/pinnacle/rcs/test/client.rb">whitelist_number</a>(agent_id, request) -> Pinnacle::Types::TestAgentWhitelistResponse</code></summary>
4923
6682
  <dl>
4924
6683
  <dd>
4925
6684
 
@@ -4931,7 +6690,36 @@ This must be a valid webhook ID that is currently attached to the specified phon
4931
6690
  <dl>
4932
6691
  <dd>
4933
6692
 
4934
- Link a phone number to a specific campaign. Phone numbers must be linked to a campaign to send messages.
6693
+ Whitelist a phone number for testing with a specific test agent.
6694
+
6695
+ During development and testing, RCS agents can only send messages to whitelisted phone numbers.
6696
+ Use this endpoint to whitelist specific phone numbers so you can send and receive messages from the test agent.
6697
+
6698
+ ## Verification Process
6699
+
6700
+ After whitelisting, the recipient must accept the tester invite:
6701
+
6702
+ 1. The recipient's device will receive a message from "RBM Tester Management".
6703
+ 2. The recipient must tap "Make me a tester" to accept.
6704
+ 3. Once accepted, the status transitions from `PENDING` to `ACCEPTED`.
6705
+
6706
+ ## Verification
6707
+
6708
+ <div style="display: flex; gap: 16px;">
6709
+ <div style="flex: 1; text-align: center;">
6710
+ <strong>Accepting the invite</strong><br/>
6711
+ <img src="https://pncl.to/f769cAvCbEx-MmezZjR6dz6KVkr5ZO" alt="Accepting the tester invite" style="max-width: 100%;" />
6712
+ </div>
6713
+ <div style="flex: 1; text-align: center;">
6714
+ <strong>Declining the invite</strong><br/>
6715
+ <img src="https://pncl.to/VRere3tEKfx4n0HNaxK-vwl7pbLHTJ" alt="Declining the tester invite" style="max-width: 100%;" />
6716
+ </div>
6717
+ </div>
6718
+
6719
+ ## Cooldown
6720
+
6721
+ There is a **2-minute cooldown** after creating or updating a test agent before you can whitelist numbers.
6722
+ Attempting to whitelist during the cooldown returns a `500` error with the remaining wait time.
4935
6723
  </dd>
4936
6724
  </dl>
4937
6725
  </dd>
@@ -4946,10 +6734,9 @@ Link a phone number to a specific campaign. Phone numbers must be linked to a ca
4946
6734
  <dd>
4947
6735
 
4948
6736
  ```ruby
4949
- client.phone_numbers.campaign.attach(
4950
- phones: ['+14155550123', '+14155559876', '+14155550111'],
4951
- campaign_type: 'TOLL_FREE',
4952
- campaign_id: 'tf_1234567890'
6737
+ client.rcs.test.whitelist_number(
6738
+ agent_id: 'agent_abc123def456',
6739
+ phone_number: '+12345678901'
4953
6740
  );
4954
6741
  ```
4955
6742
  </dd>
@@ -4965,18 +6752,7 @@ client.phone_numbers.campaign.attach(
4965
6752
  <dl>
4966
6753
  <dd>
4967
6754
 
4968
- **phones:** `Internal::Types::Array[String]`
4969
-
4970
- List of phone number (E.164 format). <br><br>
4971
- **Limit:** 1 to 10
4972
-
4973
- </dd>
4974
- </dl>
4975
-
4976
- <dl>
4977
- <dd>
4978
-
4979
- **campaign_type:** `Pinnacle::Types::MessagingProfileEnum`
6755
+ **agent_id:** `String` — The RCS agent ID (must be prefixed with `agent_`).
4980
6756
 
4981
6757
  </dd>
4982
6758
  </dl>
@@ -4984,16 +6760,7 @@ List of phone number (E.164 format). <br><br>
4984
6760
  <dl>
4985
6761
  <dd>
4986
6762
 
4987
- **campaign_id:** `String`
4988
-
4989
- Unique identifier for the campaign. <br>
4990
-
4991
- - **TOLL_FREE** campaigns:
4992
- - Must begin with the prefix `tf_`
4993
- - Example: `tf_1234567890`
4994
- - **10DLC** campaigns:
4995
- - Must begin with the prefix `dlc_`
4996
- - Example: `dlc_1234567890`
6763
+ **phone_number:** `String` — Phone number to whitelist for testing in E.164 format.
4997
6764
 
4998
6765
  </dd>
4999
6766
  </dl>
@@ -5001,7 +6768,7 @@ Unique identifier for the campaign. <br>
5001
6768
  <dl>
5002
6769
  <dd>
5003
6770
 
5004
- **request_options:** `Pinnacle::PhoneNumbers::Campaign::RequestOptions`
6771
+ **request_options:** `Pinnacle::Rcs::Test::RequestOptions`
5005
6772
 
5006
6773
  </dd>
5007
6774
  </dl>
@@ -5013,7 +6780,7 @@ Unique identifier for the campaign. <br>
5013
6780
  </dl>
5014
6781
  </details>
5015
6782
 
5016
- <details><summary><code>client.phone_numbers.campaign.<a href="/lib/pinnacle/phone_numbers/campaign/client.rb">detach</a>(request) -> Pinnacle::Types::DetachedPhoneNumberResult</code></summary>
6783
+ <details><summary><code>client.rcs.test.<a href="/lib/pinnacle/rcs/test/client.rb">get_whitelist_status</a>(agent_id) -> Pinnacle::Types::TestAgentWhitelistResponse</code></summary>
5017
6784
  <dl>
5018
6785
  <dd>
5019
6786
 
@@ -5025,7 +6792,27 @@ Unique identifier for the campaign. <br>
5025
6792
  <dl>
5026
6793
  <dd>
5027
6794
 
5028
- Remove the association between a phone number and its attached campaign.
6795
+ Check the current whitelist status of a phone number for a specific test agent.
6796
+
6797
+ Use this endpoint to poll the status of a previously whitelisted number and determine
6798
+ whether the recipient has accepted or rejected the tester invite.
6799
+
6800
+ ## Status Values
6801
+
6802
+ - **`PENDING`** — The tester invite was sent but the recipient has not yet responded. Ask the recipient to check their messages and accept the invite.
6803
+ - **`ACCEPTED`** — The recipient accepted the invite. Messages can be exchanged.
6804
+ - **`REJECTED`** — The recipient rejected the invite or the invite could not be delivered since the carrier does not support test agents. If the user rejected the invite, they can accept it again by tapping "Make me a tester" in the same message from "RBM Tester Management".
6805
+
6806
+ <div style="display: flex; gap: 16px;">
6807
+ <div style="flex: 1; text-align: center;">
6808
+ <strong>Accepting the invite</strong><br/>
6809
+ <img src="https://pncl.to/f769cAvCbEx-MmezZjR6dz6KVkr5ZO" alt="Accepting the tester invite" style="max-width: 100%;" />
6810
+ </div>
6811
+ <div style="flex: 1; text-align: center;">
6812
+ <strong>Declining the invite</strong><br/>
6813
+ <img src="https://pncl.to/VRere3tEKfx4n0HNaxK-vwl7pbLHTJ" alt="Declining the tester invite" style="max-width: 100%;" />
6814
+ </div>
6815
+ </div>
5029
6816
  </dd>
5030
6817
  </dl>
5031
6818
  </dd>
@@ -5040,7 +6827,10 @@ Remove the association between a phone number and its attached campaign.
5040
6827
  <dd>
5041
6828
 
5042
6829
  ```ruby
5043
- client.phone_numbers.campaign.detach(phones: ['+14155559876', '14155550111']);
6830
+ client.rcs.test.get_whitelist_status(
6831
+ agent_id: 'agent_abc123def456',
6832
+ phone_number: '+12345678901'
6833
+ );
5044
6834
  ```
5045
6835
  </dd>
5046
6836
  </dl>
@@ -5055,10 +6845,15 @@ client.phone_numbers.campaign.detach(phones: ['+14155559876', '14155550111']);
5055
6845
  <dl>
5056
6846
  <dd>
5057
6847
 
5058
- **phones:** `Internal::Types::Array[String]`
6848
+ **agent_id:** `String` — The RCS agent ID (must be prefixed with `agent_`).
6849
+
6850
+ </dd>
6851
+ </dl>
5059
6852
 
5060
- List of phone numbers (E.164 format). <br><br>
5061
- **Limit:** 1 to 10
6853
+ <dl>
6854
+ <dd>
6855
+
6856
+ **phone_number:** `String` — The phone number to check whitelist status for (E.164 format).
5062
6857
 
5063
6858
  </dd>
5064
6859
  </dl>
@@ -5066,7 +6861,7 @@ List of phone numbers (E.164 format). <br><br>
5066
6861
  <dl>
5067
6862
  <dd>
5068
6863
 
5069
- **request_options:** `Pinnacle::PhoneNumbers::Campaign::RequestOptions`
6864
+ **request_options:** `Pinnacle::Rcs::Test::RequestOptions`
5070
6865
 
5071
6866
  </dd>
5072
6867
  </dl>
@@ -5614,6 +7409,84 @@ See the response of [Create Shortened URL](./create-url) for more information.
5614
7409
  </dl>
5615
7410
 
5616
7411
 
7412
+ </dd>
7413
+ </dl>
7414
+ </details>
7415
+
7416
+ <details><summary><code>client.tools.url.<a href="/lib/pinnacle/tools/url/client.rb">list</a>(request) -> Pinnacle::Types::ListLinksResponse</code></summary>
7417
+ <dl>
7418
+ <dd>
7419
+
7420
+ #### 📝 Description
7421
+
7422
+ <dl>
7423
+ <dd>
7424
+
7425
+ <dl>
7426
+ <dd>
7427
+
7428
+ List all shortened URLs with pagination. Results are sorted by creation date, newest first.
7429
+ </dd>
7430
+ </dl>
7431
+ </dd>
7432
+ </dl>
7433
+
7434
+ #### 🔌 Usage
7435
+
7436
+ <dl>
7437
+ <dd>
7438
+
7439
+ <dl>
7440
+ <dd>
7441
+
7442
+ ```ruby
7443
+ client.tools.url.list();
7444
+ ```
7445
+ </dd>
7446
+ </dl>
7447
+ </dd>
7448
+ </dl>
7449
+
7450
+ #### ⚙️ Parameters
7451
+
7452
+ <dl>
7453
+ <dd>
7454
+
7455
+ <dl>
7456
+ <dd>
7457
+
7458
+ **page_index:** `Integer`
7459
+
7460
+ </dd>
7461
+ </dl>
7462
+
7463
+ <dl>
7464
+ <dd>
7465
+
7466
+ **page_size:** `Integer`
7467
+
7468
+ </dd>
7469
+ </dl>
7470
+
7471
+ <dl>
7472
+ <dd>
7473
+
7474
+ **endpoint:** `String` — Case-insensitive substring search on the destination URL.
7475
+
7476
+ </dd>
7477
+ </dl>
7478
+
7479
+ <dl>
7480
+ <dd>
7481
+
7482
+ **request_options:** `Pinnacle::Tools::Url::RequestOptions`
7483
+
7484
+ </dd>
7485
+ </dl>
7486
+ </dd>
7487
+ </dl>
7488
+
7489
+
5617
7490
  </dd>
5618
7491
  </dl>
5619
7492
  </details>