@apteva/integrations 0.2.3 → 0.3.1

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 (236) hide show
  1. package/package.json +1 -1
  2. package/src/apps/activecampaign.json +209 -0
  3. package/src/apps/activecollab.json +417 -0
  4. package/src/apps/airtable.json +235 -0
  5. package/src/apps/alpaca-trading.json +1554 -0
  6. package/src/apps/amadeus.json +225 -0
  7. package/src/apps/anthropic-api.json +96 -0
  8. package/src/apps/apify.json +203 -0
  9. package/src/apps/apollo.json +748 -0
  10. package/src/apps/apple-podcasts.json +116 -0
  11. package/src/apps/archive-api.json +104 -0
  12. package/src/apps/archive.json +151 -0
  13. package/src/apps/arduino-cloud.json +301 -0
  14. package/src/apps/arest.json +492 -0
  15. package/src/apps/asana.json +184 -0
  16. package/src/apps/ashby.json +176 -0
  17. package/src/apps/assemblyai.json +163 -0
  18. package/src/apps/attio.json +243 -0
  19. package/src/apps/aws-cloudfront.json +132 -0
  20. package/src/apps/aws-dynamodb.json +295 -0
  21. package/src/apps/aws-ec2.json +184 -0
  22. package/src/apps/aws-lambda.json +361 -0
  23. package/src/apps/aws-route53.json +110 -0
  24. package/src/apps/aws-s3.json +303 -0
  25. package/src/apps/aws-ses.json +556 -0
  26. package/src/apps/aws-sns.json +217 -0
  27. package/src/apps/aws-sqs.json +234 -0
  28. package/src/apps/axiom.json +123 -0
  29. package/src/apps/beehiiv.json +252 -0
  30. package/src/apps/binance-trading.json +555 -0
  31. package/src/apps/bitly.json +175 -0
  32. package/src/apps/bloobirds.json +246 -0
  33. package/src/apps/bluesky.json +201 -0
  34. package/src/apps/blynk.json +316 -0
  35. package/src/apps/booking-com.json +144 -0
  36. package/src/apps/box.json +289 -0
  37. package/src/apps/brevo.json +1423 -0
  38. package/src/apps/browse-ai.json +148 -0
  39. package/src/apps/bunny-cdn.json +330 -0
  40. package/src/apps/bunny-stream.json +387 -0
  41. package/src/apps/cal-com.json +240 -0
  42. package/src/apps/calendly.json +578 -0
  43. package/src/apps/calflow-calendar.json +706 -0
  44. package/src/apps/callrail.json +190 -0
  45. package/src/apps/canva.json +197 -0
  46. package/src/apps/cartesia.json +201 -0
  47. package/src/apps/castbase.json +753 -0
  48. package/src/apps/chargebee.json +226 -0
  49. package/src/apps/cleanster.json +359 -0
  50. package/src/apps/clicksend.json +278 -0
  51. package/src/apps/clickup.json +266 -0
  52. package/src/apps/clipkit.json +517 -0
  53. package/src/apps/close.json +359 -0
  54. package/src/apps/cloudflare.json +329 -0
  55. package/src/apps/cloudinary.json +164 -0
  56. package/src/apps/coda.json +288 -0
  57. package/src/apps/cohere.json +158 -0
  58. package/src/apps/coinbase.json +268 -0
  59. package/src/apps/composio.json +146 -0
  60. package/src/apps/confluence.json +270 -0
  61. package/src/apps/consensus.json +879 -0
  62. package/src/apps/contabo.json +733 -0
  63. package/src/apps/convertkit.json +211 -0
  64. package/src/apps/core-image.json +426 -0
  65. package/src/apps/core-video.json +1246 -0
  66. package/src/apps/craftcloud.json +298 -0
  67. package/src/apps/datadog.json +401 -0
  68. package/src/apps/dataforseo.json +1273 -0
  69. package/src/apps/deepseek.json +150 -0
  70. package/src/apps/dialpad.json +229 -0
  71. package/src/apps/discord.json +239 -0
  72. package/src/apps/dnsimple.json +405 -0
  73. package/src/apps/docusign.json +214 -0
  74. package/src/apps/docx.json +282 -0
  75. package/src/apps/dropbox.json +185 -0
  76. package/src/apps/duffel.json +231 -0
  77. package/src/apps/dux-soup.json +694 -0
  78. package/src/apps/dynadot.json +250 -0
  79. package/src/apps/elevenlabs.json +327 -0
  80. package/src/apps/eventbrite-events.json +598 -0
  81. package/src/apps/facebook-ads.json +1399 -0
  82. package/src/apps/facebook-api.json +282 -0
  83. package/src/apps/fal-ai.json +400 -0
  84. package/src/apps/fathom.json +86 -0
  85. package/src/apps/figma.json +162 -0
  86. package/src/apps/filestack.json +159 -0
  87. package/src/apps/firebase.json +271 -0
  88. package/src/apps/firecrawl.json +278 -0
  89. package/src/apps/folk.json +564 -0
  90. package/src/apps/forecast-app.json +377 -0
  91. package/src/apps/freshdesk.json +283 -0
  92. package/src/apps/gemini.json +528 -0
  93. package/src/apps/ghost.json +439 -0
  94. package/src/apps/gigs-marketplace.json +1442 -0
  95. package/src/apps/github.json +1479 -47
  96. package/src/apps/gitlab.json +448 -0
  97. package/src/apps/gmail.json +839 -28
  98. package/src/apps/gohighlevel.json +596 -0
  99. package/src/apps/google-ads.json +270 -0
  100. package/src/apps/google-calendar.json +996 -36
  101. package/src/apps/google-docs.json +278 -0
  102. package/src/apps/google-drive.json +360 -0
  103. package/src/apps/google-maps.json +473 -0
  104. package/src/apps/google-sheets.json +330 -0
  105. package/src/apps/gooten.json +411 -0
  106. package/src/apps/gravity-forms.json +385 -0
  107. package/src/apps/gusto.json +171 -0
  108. package/src/apps/hackernews.json +221 -0
  109. package/src/apps/harmonic.json +86 -0
  110. package/src/apps/helpscout.json +664 -0
  111. package/src/apps/hetzner.json +658 -0
  112. package/src/apps/heygen.json +184 -0
  113. package/src/apps/heyreach.json +388 -0
  114. package/src/apps/hospitable.json +340 -0
  115. package/src/apps/hostinger.json +374 -0
  116. package/src/apps/hubspot.json +682 -0
  117. package/src/apps/huggingface.json +97 -0
  118. package/src/apps/hunter.json +504 -0
  119. package/src/apps/ig-trading.json +849 -0
  120. package/src/apps/imaterialise.json +349 -0
  121. package/src/apps/instagram-api.json +538 -0
  122. package/src/apps/intercom.json +648 -0
  123. package/src/apps/jira.json +226 -0
  124. package/src/apps/klaviyo.json +199 -0
  125. package/src/apps/kling-ai.json +206 -0
  126. package/src/apps/kraken.json +870 -0
  127. package/src/apps/late.json +1056 -0
  128. package/src/apps/leadpages.json +243 -0
  129. package/src/apps/learning-platform.json +2244 -0
  130. package/src/apps/linear.json +184 -57
  131. package/src/apps/linkedin.json +179 -0
  132. package/src/apps/listen-notes.json +136 -0
  133. package/src/apps/lnk-bio.json +125 -0
  134. package/src/apps/loom.json +188 -0
  135. package/src/apps/luma.json +280 -0
  136. package/src/apps/mailchimp.json +238 -0
  137. package/src/apps/mailgun.json +310 -0
  138. package/src/apps/manychat.json +312 -0
  139. package/src/apps/marin-software.json +843 -0
  140. package/src/apps/media-downloader.json +157 -0
  141. package/src/apps/meetup-events.json +361 -0
  142. package/src/apps/meshy.json +248 -0
  143. package/src/apps/microsoft-teams.json +162 -0
  144. package/src/apps/monday.json +213 -0
  145. package/src/apps/mongodb-atlas.json +467 -0
  146. package/src/apps/namecheap.json +252 -0
  147. package/src/apps/nexar.json +289 -0
  148. package/src/apps/notion.json +530 -50
  149. package/src/apps/omnikit-analytics.json +374 -0
  150. package/src/apps/omnikit-api-gateway.json +660 -0
  151. package/src/apps/omnikit-billing.json +1781 -0
  152. package/src/apps/omnikit-cms.json +899 -0
  153. package/src/apps/omnikit-functions.json +329 -0
  154. package/src/apps/omnikit-intelligence.json +650 -0
  155. package/src/apps/omnikit-management.json +214 -0
  156. package/src/apps/omnikit-media.json +646 -0
  157. package/src/apps/omnikit-messaging.json +1826 -0
  158. package/src/apps/omnikit-redirects.json +209 -0
  159. package/src/apps/omnikit-webhooks.json +269 -0
  160. package/src/apps/omnikit-workflows.json +323 -0
  161. package/src/apps/openai-api.json +462 -0
  162. package/src/apps/openmeteo-weather.json +75 -0
  163. package/src/apps/optinmonster.json +244 -0
  164. package/src/apps/paidkit.json +1218 -0
  165. package/src/apps/paypal.json +254 -0
  166. package/src/apps/pdf.json +366 -0
  167. package/src/apps/pipedrive.json +255 -0
  168. package/src/apps/polymarket.json +653 -0
  169. package/src/apps/porkbun.json +417 -0
  170. package/src/apps/portfolio.json +501 -0
  171. package/src/apps/postmark.json +257 -0
  172. package/src/apps/printful.json +273 -0
  173. package/src/apps/printify.json +295 -0
  174. package/src/apps/producthunt.json +346 -0
  175. package/src/apps/pushover-notifications.json +113 -0
  176. package/src/apps/qonto.json +366 -0
  177. package/src/apps/quickbooks.json +234 -0
  178. package/src/apps/replicate.json +106 -0
  179. package/src/apps/rss.json +281 -0
  180. package/src/apps/salesflow.json +538 -0
  181. package/src/apps/salesforce-crm.json +216 -0
  182. package/src/apps/sap.json +256 -0
  183. package/src/apps/scaleway.json +911 -0
  184. package/src/apps/sculpteo.json +234 -0
  185. package/src/apps/sendgrid-email.json +233 -0
  186. package/src/apps/sendgrid.json +160 -35
  187. package/src/apps/shapeways.json +188 -0
  188. package/src/apps/shopify.json +1217 -0
  189. package/src/apps/skai.json +779 -0
  190. package/src/apps/slack.json +228 -38
  191. package/src/apps/slant3d.json +231 -0
  192. package/src/apps/slides.json +760 -0
  193. package/src/apps/smartly.json +504 -0
  194. package/src/apps/snov.json +467 -0
  195. package/src/apps/socialcast.json +553 -63
  196. package/src/apps/square.json +274 -0
  197. package/src/apps/storage-management.json +788 -0
  198. package/src/apps/storylane.json +180 -0
  199. package/src/apps/strapi.json +338 -0
  200. package/src/apps/stripe-payments.json +847 -0
  201. package/src/apps/stripe.json +472 -35
  202. package/src/apps/supabase.json +169 -0
  203. package/src/apps/supademo.json +115 -0
  204. package/src/apps/taskflow.json +714 -0
  205. package/src/apps/teamwork.json +457 -0
  206. package/src/apps/telegram.json +444 -0
  207. package/src/apps/thinger.json +458 -0
  208. package/src/apps/ticktick.json +169 -0
  209. package/src/apps/tiktok-api.json +406 -0
  210. package/src/apps/todoist.json +151 -0
  211. package/src/apps/together.json +123 -0
  212. package/src/apps/torrent.json +267 -0
  213. package/src/apps/trading.json +1012 -0
  214. package/src/apps/trading212.json +383 -0
  215. package/src/apps/trello.json +205 -0
  216. package/src/apps/tripo.json +157 -0
  217. package/src/apps/twilio.json +1008 -0
  218. package/src/apps/twitter-ads.json +875 -0
  219. package/src/apps/twitter-api.json +1151 -0
  220. package/src/apps/twitterapiio.json +548 -0
  221. package/src/apps/typeform.json +210 -0
  222. package/src/apps/vidforge.json +1020 -0
  223. package/src/apps/vonage.json +394 -0
  224. package/src/apps/vultr.json +225 -0
  225. package/src/apps/webflow.json +223 -0
  226. package/src/apps/wise.json +273 -0
  227. package/src/apps/wistia.json +283 -0
  228. package/src/apps/woocommerce.json +288 -0
  229. package/src/apps/wordpress.json +1675 -0
  230. package/src/apps/xero.json +257 -0
  231. package/src/apps/youtube-api.json +861 -0
  232. package/src/apps/zendesk.json +295 -0
  233. package/src/apps/zite.json +173 -0
  234. package/src/apps/zoho-crm.json +386 -0
  235. package/src/apps/zoo.json +193 -0
  236. package/src/apps/zoom.json +334 -0
@@ -0,0 +1,1008 @@
1
+ {
2
+ "slug": "twilio",
3
+ "name": "Twilio",
4
+ "description": "Twilio communications platform — SMS, MMS, voice calls, WhatsApp, phone numbers, recordings, usage, and verification",
5
+ "logo": "https://www.google.com/s2/favicons?domain=twilio.com&sz=128",
6
+ "categories": [
7
+ "messaging",
8
+ "sms",
9
+ "voice",
10
+ "whatsapp",
11
+ "communications",
12
+ "phone"
13
+ ],
14
+ "base_url": "https://api.twilio.com/2010-04-01",
15
+ "auth": {
16
+ "types": [
17
+ "bearer"
18
+ ],
19
+ "headers": {
20
+ "Authorization": "Bearer {{token}}"
21
+ },
22
+ "credential_fields": [
23
+ {
24
+ "name": "account_sid",
25
+ "label": "Account_sid",
26
+ "description": "Your Twilio Account SID"
27
+ },
28
+ {
29
+ "name": "auth_token",
30
+ "label": "Auth_token",
31
+ "description": "Your Twilio Auth Token"
32
+ }
33
+ ]
34
+ },
35
+ "tools": [
36
+ {
37
+ "name": "send_sms",
38
+ "description": "Send an SMS or MMS message via Twilio. Supports text, media attachments, content templates, and status callbacks.",
39
+ "method": "POST",
40
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Messages.json",
41
+ "input_schema": {
42
+ "type": "object",
43
+ "properties": {
44
+ "To": {
45
+ "type": "string",
46
+ "description": "Recipient phone number in E.164 format (e.g., +15558675310)"
47
+ },
48
+ "From": {
49
+ "type": "string",
50
+ "description": "Twilio phone number to send from in E.164 format"
51
+ },
52
+ "Body": {
53
+ "type": "string",
54
+ "description": "Message text (up to 1600 characters). Required unless using ContentSid."
55
+ },
56
+ "ContentSid": {
57
+ "type": "string",
58
+ "description": "Content template SID (HXxxxxxxxx) for sending pre-approved templates instead of free-form text"
59
+ },
60
+ "ContentVariables": {
61
+ "type": "string",
62
+ "description": "JSON string of template variables, e.g. {\"1\":\"John\",\"2\":\"tomorrow\"}"
63
+ },
64
+ "MediaUrl": {
65
+ "type": "string",
66
+ "description": "URL of media to include (for MMS)"
67
+ },
68
+ "StatusCallback": {
69
+ "type": "string",
70
+ "description": "URL for delivery status webhooks"
71
+ }
72
+ },
73
+ "required": [
74
+ "To",
75
+ "From"
76
+ ]
77
+ }
78
+ },
79
+ {
80
+ "name": "send_whatsapp",
81
+ "description": "Send a WhatsApp message via Twilio. Use whatsapp: prefix on phone numbers. For business-initiated conversations (user hasn't messaged you in 24h), you MUST use a ContentSid (approved template) instead of Body. Free-form Body only works within the 24-hour window after the user messages you.",
82
+ "method": "POST",
83
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Messages.json",
84
+ "input_schema": {
85
+ "type": "object",
86
+ "properties": {
87
+ "To": {
88
+ "type": "string",
89
+ "description": "Recipient WhatsApp number with prefix (e.g., whatsapp:+15558675310)"
90
+ },
91
+ "From": {
92
+ "type": "string",
93
+ "description": "Your Twilio WhatsApp sender number with prefix (e.g., whatsapp:+14155238886)"
94
+ },
95
+ "Body": {
96
+ "type": "string",
97
+ "description": "Message text. Only works within 24h window after user messages you first. For business-initiated, use ContentSid instead."
98
+ },
99
+ "ContentSid": {
100
+ "type": "string",
101
+ "description": "Content template SID (HXxxxxxxxx) for sending approved WhatsApp templates. Required for business-initiated conversations."
102
+ },
103
+ "ContentVariables": {
104
+ "type": "string",
105
+ "description": "JSON string of template variables, e.g. {\"1\":\"John\",\"2\":\"tomorrow\"}"
106
+ },
107
+ "MediaUrl": {
108
+ "type": "string",
109
+ "description": "URL of media to include"
110
+ }
111
+ },
112
+ "required": [
113
+ "To",
114
+ "From"
115
+ ]
116
+ }
117
+ },
118
+ {
119
+ "name": "whatsapp_typing_indicator",
120
+ "description": "Show a 'typing...' indicator in the WhatsApp chat and automatically mark the referenced message as read (blue ticks). The indicator disappears when your response is delivered or after 25 seconds. Use this before replying to make the conversation feel more natural.",
121
+ "method": "POST",
122
+ "path": "/v2/Indicators/Typing.json",
123
+ "input_schema": {
124
+ "type": "object",
125
+ "properties": {
126
+ "messageId": {
127
+ "type": "string",
128
+ "description": "The SID of the message you're responding to (SMxxxxxxxx or MMxxxxxxxx)"
129
+ },
130
+ "channel": {
131
+ "type": "string",
132
+ "enum": [
133
+ "whatsapp"
134
+ ],
135
+ "default": "whatsapp",
136
+ "description": "Channel type — must be 'whatsapp'"
137
+ }
138
+ },
139
+ "required": [
140
+ "messageId",
141
+ "channel"
142
+ ]
143
+ }
144
+ },
145
+ {
146
+ "name": "get_message",
147
+ "description": "Retrieve details of a specific message by SID.",
148
+ "method": "GET",
149
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Messages/%7B%7BMessageSid%7D%7D.json",
150
+ "input_schema": {
151
+ "type": "object",
152
+ "properties": {
153
+ "MessageSid": {
154
+ "type": "string",
155
+ "description": "Message SID (e.g., SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)"
156
+ }
157
+ },
158
+ "required": [
159
+ "MessageSid"
160
+ ]
161
+ }
162
+ },
163
+ {
164
+ "name": "list_messages",
165
+ "description": "List sent and received messages with optional filters.",
166
+ "method": "GET",
167
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Messages.json",
168
+ "input_schema": {
169
+ "type": "object",
170
+ "properties": {
171
+ "To": {
172
+ "type": "string",
173
+ "description": "Filter by recipient number"
174
+ },
175
+ "From": {
176
+ "type": "string",
177
+ "description": "Filter by sender number"
178
+ },
179
+ "DateSent": {
180
+ "type": "string",
181
+ "description": "Filter by date sent (YYYY-MM-DD)"
182
+ },
183
+ "PageSize": {
184
+ "type": "integer",
185
+ "default": 50,
186
+ "description": "Number of messages to return (max 1000)"
187
+ }
188
+ }
189
+ }
190
+ },
191
+ {
192
+ "name": "delete_message",
193
+ "description": "Delete a message by SID. This removes the message body and media but keeps the log entry.",
194
+ "method": "DELETE",
195
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Messages/%7B%7BMessageSid%7D%7D.json",
196
+ "input_schema": {
197
+ "type": "object",
198
+ "properties": {
199
+ "MessageSid": {
200
+ "type": "string",
201
+ "description": "Message SID to delete"
202
+ }
203
+ },
204
+ "required": [
205
+ "MessageSid"
206
+ ]
207
+ }
208
+ },
209
+ {
210
+ "name": "make_call",
211
+ "description": "Initiate an outbound phone call. Provide either a TwiML URL or inline TwiML instructions.",
212
+ "method": "POST",
213
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Calls.json",
214
+ "input_schema": {
215
+ "type": "object",
216
+ "properties": {
217
+ "To": {
218
+ "type": "string",
219
+ "description": "Phone number to call in E.164 format"
220
+ },
221
+ "From": {
222
+ "type": "string",
223
+ "description": "Twilio phone number to call from"
224
+ },
225
+ "Url": {
226
+ "type": "string",
227
+ "description": "TwiML URL with call instructions"
228
+ },
229
+ "Twiml": {
230
+ "type": "string",
231
+ "description": "Inline TwiML instructions (e.g., <Response><Say>Hello!</Say></Response>)"
232
+ },
233
+ "Timeout": {
234
+ "type": "integer",
235
+ "default": 60,
236
+ "description": "Ring timeout in seconds"
237
+ },
238
+ "Record": {
239
+ "type": "boolean",
240
+ "description": "Record the call"
241
+ },
242
+ "StatusCallback": {
243
+ "type": "string",
244
+ "description": "URL for call status webhooks"
245
+ },
246
+ "MachineDetection": {
247
+ "type": "string",
248
+ "enum": [
249
+ "Enable",
250
+ "DetectMessageEnd"
251
+ ],
252
+ "description": "Enable answering machine detection"
253
+ }
254
+ },
255
+ "required": [
256
+ "To",
257
+ "From"
258
+ ]
259
+ }
260
+ },
261
+ {
262
+ "name": "get_call",
263
+ "description": "Retrieve details of a specific call by SID.",
264
+ "method": "GET",
265
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Calls/%7B%7BCallSid%7D%7D.json",
266
+ "input_schema": {
267
+ "type": "object",
268
+ "properties": {
269
+ "CallSid": {
270
+ "type": "string",
271
+ "description": "Call SID"
272
+ }
273
+ },
274
+ "required": [
275
+ "CallSid"
276
+ ]
277
+ }
278
+ },
279
+ {
280
+ "name": "list_calls",
281
+ "description": "List call logs with optional filters for status, date, and phone numbers.",
282
+ "method": "GET",
283
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Calls.json",
284
+ "input_schema": {
285
+ "type": "object",
286
+ "properties": {
287
+ "To": {
288
+ "type": "string",
289
+ "description": "Filter by called number"
290
+ },
291
+ "From": {
292
+ "type": "string",
293
+ "description": "Filter by caller number"
294
+ },
295
+ "Status": {
296
+ "type": "string",
297
+ "enum": [
298
+ "queued",
299
+ "ringing",
300
+ "in-progress",
301
+ "completed",
302
+ "busy",
303
+ "no-answer",
304
+ "failed",
305
+ "canceled"
306
+ ],
307
+ "description": "Filter by call status"
308
+ },
309
+ "StartTime": {
310
+ "type": "string",
311
+ "description": "Filter by start time (YYYY-MM-DD)"
312
+ },
313
+ "PageSize": {
314
+ "type": "integer",
315
+ "default": 50,
316
+ "description": "Number of calls to return (max 1000)"
317
+ }
318
+ }
319
+ }
320
+ },
321
+ {
322
+ "name": "update_call",
323
+ "description": "Modify an in-progress call — redirect to new TwiML, end the call, or pause/resume recording.",
324
+ "method": "POST",
325
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Calls/%7B%7BCallSid%7D%7D.json",
326
+ "input_schema": {
327
+ "type": "object",
328
+ "properties": {
329
+ "CallSid": {
330
+ "type": "string",
331
+ "description": "Call SID to update"
332
+ },
333
+ "Url": {
334
+ "type": "string",
335
+ "description": "New TwiML URL to redirect the call to"
336
+ },
337
+ "Twiml": {
338
+ "type": "string",
339
+ "description": "Inline TwiML to redirect the call to"
340
+ },
341
+ "Status": {
342
+ "type": "string",
343
+ "enum": [
344
+ "canceled",
345
+ "completed"
346
+ ],
347
+ "description": "Set to 'completed' to end the call"
348
+ }
349
+ },
350
+ "required": [
351
+ "CallSid"
352
+ ]
353
+ }
354
+ },
355
+ {
356
+ "name": "list_phone_numbers",
357
+ "description": "List all phone numbers in your Twilio account with their capabilities and configuration.",
358
+ "method": "GET",
359
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/IncomingPhoneNumbers.json",
360
+ "input_schema": {
361
+ "type": "object",
362
+ "properties": {
363
+ "PhoneNumber": {
364
+ "type": "string",
365
+ "description": "Filter by phone number"
366
+ },
367
+ "FriendlyName": {
368
+ "type": "string",
369
+ "description": "Filter by friendly name"
370
+ },
371
+ "PageSize": {
372
+ "type": "integer",
373
+ "default": 50,
374
+ "description": "Number of results (max 1000)"
375
+ }
376
+ }
377
+ }
378
+ },
379
+ {
380
+ "name": "buy_phone_number",
381
+ "description": "Purchase a phone number for your Twilio account.",
382
+ "method": "POST",
383
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/IncomingPhoneNumbers.json",
384
+ "input_schema": {
385
+ "type": "object",
386
+ "properties": {
387
+ "PhoneNumber": {
388
+ "type": "string",
389
+ "description": "Phone number to purchase in E.164 format"
390
+ },
391
+ "FriendlyName": {
392
+ "type": "string",
393
+ "description": "Friendly name for the number"
394
+ },
395
+ "SmsUrl": {
396
+ "type": "string",
397
+ "description": "Webhook URL for incoming SMS"
398
+ },
399
+ "VoiceUrl": {
400
+ "type": "string",
401
+ "description": "Webhook URL for incoming calls"
402
+ }
403
+ },
404
+ "required": [
405
+ "PhoneNumber"
406
+ ]
407
+ }
408
+ },
409
+ {
410
+ "name": "update_phone_number",
411
+ "description": "Update configuration for a phone number — webhooks, friendly name, voice/SMS settings.",
412
+ "method": "POST",
413
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/IncomingPhoneNumbers/%7B%7BPhoneNumberSid%7D%7D.json",
414
+ "input_schema": {
415
+ "type": "object",
416
+ "properties": {
417
+ "PhoneNumberSid": {
418
+ "type": "string",
419
+ "description": "Phone Number SID (PNxxxxxxxx)"
420
+ },
421
+ "FriendlyName": {
422
+ "type": "string",
423
+ "description": "Friendly name"
424
+ },
425
+ "SmsUrl": {
426
+ "type": "string",
427
+ "description": "Webhook URL for incoming SMS"
428
+ },
429
+ "VoiceUrl": {
430
+ "type": "string",
431
+ "description": "Webhook URL for incoming calls"
432
+ },
433
+ "StatusCallback": {
434
+ "type": "string",
435
+ "description": "Status callback URL"
436
+ }
437
+ },
438
+ "required": [
439
+ "PhoneNumberSid"
440
+ ]
441
+ }
442
+ },
443
+ {
444
+ "name": "release_phone_number",
445
+ "description": "Release (delete) a phone number from your Twilio account.",
446
+ "method": "DELETE",
447
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/IncomingPhoneNumbers/%7B%7BPhoneNumberSid%7D%7D.json",
448
+ "input_schema": {
449
+ "type": "object",
450
+ "properties": {
451
+ "PhoneNumberSid": {
452
+ "type": "string",
453
+ "description": "Phone Number SID to release"
454
+ }
455
+ },
456
+ "required": [
457
+ "PhoneNumberSid"
458
+ ]
459
+ }
460
+ },
461
+ {
462
+ "name": "search_available_numbers",
463
+ "description": "Search for available phone numbers to purchase by country, area code, or capabilities.",
464
+ "method": "GET",
465
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/AvailablePhoneNumbers/%7B%7BCountry%7D%7D/Local.json",
466
+ "input_schema": {
467
+ "type": "object",
468
+ "properties": {
469
+ "Country": {
470
+ "type": "string",
471
+ "default": "US",
472
+ "description": "ISO country code (e.g., US, GB, CA)"
473
+ },
474
+ "AreaCode": {
475
+ "type": "string",
476
+ "description": "Filter by area code (e.g., 415)"
477
+ },
478
+ "Contains": {
479
+ "type": "string",
480
+ "description": "Pattern to match (e.g., 555**** for numbers starting with 555)"
481
+ },
482
+ "SmsEnabled": {
483
+ "type": "boolean",
484
+ "default": true,
485
+ "description": "Must support SMS"
486
+ },
487
+ "VoiceEnabled": {
488
+ "type": "boolean",
489
+ "default": true,
490
+ "description": "Must support voice"
491
+ },
492
+ "MmsEnabled": {
493
+ "type": "boolean",
494
+ "description": "Must support MMS"
495
+ },
496
+ "PageSize": {
497
+ "type": "integer",
498
+ "default": 20,
499
+ "description": "Number of results"
500
+ }
501
+ },
502
+ "required": [
503
+ "Country"
504
+ ]
505
+ }
506
+ },
507
+ {
508
+ "name": "search_toll_free_numbers",
509
+ "description": "Search for available toll-free phone numbers to purchase.",
510
+ "method": "GET",
511
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/AvailablePhoneNumbers/%7B%7BCountry%7D%7D/TollFree.json",
512
+ "input_schema": {
513
+ "type": "object",
514
+ "properties": {
515
+ "Country": {
516
+ "type": "string",
517
+ "default": "US",
518
+ "description": "ISO country code"
519
+ },
520
+ "Contains": {
521
+ "type": "string",
522
+ "description": "Pattern to match"
523
+ },
524
+ "SmsEnabled": {
525
+ "type": "boolean",
526
+ "default": true,
527
+ "description": "Must support SMS"
528
+ },
529
+ "VoiceEnabled": {
530
+ "type": "boolean",
531
+ "default": true,
532
+ "description": "Must support voice"
533
+ },
534
+ "PageSize": {
535
+ "type": "integer",
536
+ "default": 20,
537
+ "description": "Number of results"
538
+ }
539
+ },
540
+ "required": [
541
+ "Country"
542
+ ]
543
+ }
544
+ },
545
+ {
546
+ "name": "list_recordings",
547
+ "description": "List call recordings with optional filters.",
548
+ "method": "GET",
549
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Recordings.json",
550
+ "input_schema": {
551
+ "type": "object",
552
+ "properties": {
553
+ "CallSid": {
554
+ "type": "string",
555
+ "description": "Filter by call SID"
556
+ },
557
+ "DateCreated": {
558
+ "type": "string",
559
+ "description": "Filter by date (YYYY-MM-DD)"
560
+ },
561
+ "PageSize": {
562
+ "type": "integer",
563
+ "default": 50,
564
+ "description": "Number of recordings to return"
565
+ }
566
+ }
567
+ }
568
+ },
569
+ {
570
+ "name": "get_recording",
571
+ "description": "Retrieve details of a specific recording.",
572
+ "method": "GET",
573
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Recordings/%7B%7BRecordingSid%7D%7D.json",
574
+ "input_schema": {
575
+ "type": "object",
576
+ "properties": {
577
+ "RecordingSid": {
578
+ "type": "string",
579
+ "description": "Recording SID"
580
+ }
581
+ },
582
+ "required": [
583
+ "RecordingSid"
584
+ ]
585
+ }
586
+ },
587
+ {
588
+ "name": "delete_recording",
589
+ "description": "Delete a call recording.",
590
+ "method": "DELETE",
591
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Recordings/%7B%7BRecordingSid%7D%7D.json",
592
+ "input_schema": {
593
+ "type": "object",
594
+ "properties": {
595
+ "RecordingSid": {
596
+ "type": "string",
597
+ "description": "Recording SID to delete"
598
+ }
599
+ },
600
+ "required": [
601
+ "RecordingSid"
602
+ ]
603
+ }
604
+ },
605
+ {
606
+ "name": "get_account",
607
+ "description": "Retrieve your Twilio account details including balance, status, and type.",
608
+ "method": "GET",
609
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D.json",
610
+ "input_schema": {
611
+ "type": "object",
612
+ "properties": {}
613
+ }
614
+ },
615
+ {
616
+ "name": "get_balance",
617
+ "description": "Retrieve your Twilio account balance and currency.",
618
+ "method": "GET",
619
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Balance.json",
620
+ "input_schema": {
621
+ "type": "object",
622
+ "properties": {}
623
+ }
624
+ },
625
+ {
626
+ "name": "get_usage",
627
+ "description": "Retrieve usage records for your account — see costs per category (calls, SMS, numbers, etc.).",
628
+ "method": "GET",
629
+ "path": "/Accounts/%7B%7Bcredential.account_sid%7D%7D/Usage/Records.json",
630
+ "input_schema": {
631
+ "type": "object",
632
+ "properties": {
633
+ "Category": {
634
+ "type": "string",
635
+ "description": "Filter by category (e.g., sms, calls, phonenumbers, recordings)"
636
+ },
637
+ "StartDate": {
638
+ "type": "string",
639
+ "description": "Start date (YYYY-MM-DD)"
640
+ },
641
+ "EndDate": {
642
+ "type": "string",
643
+ "description": "End date (YYYY-MM-DD)"
644
+ },
645
+ "PageSize": {
646
+ "type": "integer",
647
+ "default": 50,
648
+ "description": "Number of results"
649
+ }
650
+ }
651
+ }
652
+ },
653
+ {
654
+ "name": "list_whatsapp_senders",
655
+ "description": "List all WhatsApp Business senders (phone numbers) registered in your Twilio account. Shows sender status, phone number, and WhatsApp Business profile details.",
656
+ "method": "GET",
657
+ "path": "/v2/Channels/Senders",
658
+ "input_schema": {
659
+ "type": "object",
660
+ "properties": {
661
+ "PageSize": {
662
+ "type": "integer",
663
+ "default": 50,
664
+ "description": "Number of senders to return"
665
+ }
666
+ }
667
+ }
668
+ },
669
+ {
670
+ "name": "get_whatsapp_sender",
671
+ "description": "Get details of a specific WhatsApp Business sender by SID — status, phone number, profile info, and capabilities.",
672
+ "method": "GET",
673
+ "path": "/v2/Channels/Senders/%7B%7BSenderSid%7D%7D",
674
+ "input_schema": {
675
+ "type": "object",
676
+ "properties": {
677
+ "SenderSid": {
678
+ "type": "string",
679
+ "description": "WhatsApp Sender SID"
680
+ }
681
+ },
682
+ "required": [
683
+ "SenderSid"
684
+ ]
685
+ }
686
+ },
687
+ {
688
+ "name": "register_whatsapp_sender",
689
+ "description": "Register a phone number as a WhatsApp Business sender. For SMS-capable Twilio numbers, verification is automatic. For voice-only or non-Twilio numbers, OTP verification is required separately.",
690
+ "method": "POST",
691
+ "path": "/v2/Channels/Senders",
692
+ "input_schema": {
693
+ "type": "object",
694
+ "properties": {
695
+ "sender_id": {
696
+ "type": "string",
697
+ "description": "Phone number in E.164 format with whatsapp prefix (e.g., whatsapp:+15017122661)"
698
+ },
699
+ "profile": {
700
+ "type": "object",
701
+ "description": "WhatsApp Business profile",
702
+ "properties": {
703
+ "name": {
704
+ "type": "string",
705
+ "description": "WhatsApp display name (must comply with Meta guidelines)"
706
+ },
707
+ "about": {
708
+ "type": "string",
709
+ "description": "Business description shown in WhatsApp profile"
710
+ },
711
+ "address": {
712
+ "type": "string",
713
+ "description": "Business address"
714
+ },
715
+ "description": {
716
+ "type": "string",
717
+ "description": "Detailed business description"
718
+ },
719
+ "vertical": {
720
+ "type": "string",
721
+ "description": "Business category (e.g., PROFESSIONAL_SERVICES, RETAIL, EDUCATION)"
722
+ },
723
+ "logo_url": {
724
+ "type": "string",
725
+ "description": "URL to business logo image"
726
+ },
727
+ "emails": {
728
+ "type": "array",
729
+ "items": {
730
+ "type": "string"
731
+ },
732
+ "description": "Business email addresses"
733
+ },
734
+ "websites": {
735
+ "type": "array",
736
+ "items": {
737
+ "type": "string"
738
+ },
739
+ "description": "Business website URLs"
740
+ }
741
+ },
742
+ "required": [
743
+ "name"
744
+ ]
745
+ },
746
+ "webhook": {
747
+ "type": "object",
748
+ "description": "Webhook configuration for status notifications",
749
+ "properties": {
750
+ "callback_url": {
751
+ "type": "string",
752
+ "description": "Webhook URL for sender status notifications"
753
+ },
754
+ "callback_method": {
755
+ "type": "string",
756
+ "enum": [
757
+ "POST",
758
+ "GET"
759
+ ],
760
+ "default": "POST",
761
+ "description": "HTTP method for webhook callbacks"
762
+ }
763
+ }
764
+ }
765
+ },
766
+ "required": [
767
+ "sender_id",
768
+ "profile"
769
+ ]
770
+ }
771
+ },
772
+ {
773
+ "name": "list_content_templates",
774
+ "description": "List WhatsApp content templates with their approval status. Use this to see all message templates, their types, and whether they're approved for WhatsApp.",
775
+ "method": "GET",
776
+ "path": "/v2/ContentAndApprovals",
777
+ "input_schema": {
778
+ "type": "object",
779
+ "properties": {
780
+ "PageSize": {
781
+ "type": "integer",
782
+ "default": 50,
783
+ "description": "Number of templates to return"
784
+ },
785
+ "Language": {
786
+ "type": "string",
787
+ "description": "Filter by language (e.g., en, es, de)"
788
+ },
789
+ "ContentName": {
790
+ "type": "string",
791
+ "description": "Search by template friendly name"
792
+ }
793
+ }
794
+ }
795
+ },
796
+ {
797
+ "name": "get_content_template",
798
+ "description": "Retrieve details of a specific content template by SID — body, variables, type, and approval status.",
799
+ "method": "GET",
800
+ "path": "/v1/Content/%7B%7BContentSid%7D%7D",
801
+ "input_schema": {
802
+ "type": "object",
803
+ "properties": {
804
+ "ContentSid": {
805
+ "type": "string",
806
+ "description": "Content template SID (HXxxxxxxxx)"
807
+ }
808
+ },
809
+ "required": [
810
+ "ContentSid"
811
+ ]
812
+ }
813
+ },
814
+ {
815
+ "name": "create_content_template",
816
+ "description": "Create a new content template for WhatsApp messaging. Templates must be submitted for approval before use. Supports text, media, quick reply, call-to-action, and card types.",
817
+ "method": "POST",
818
+ "path": "/v1/Content",
819
+ "input_schema": {
820
+ "type": "object",
821
+ "properties": {
822
+ "friendly_name": {
823
+ "type": "string",
824
+ "description": "Human-readable name for this template"
825
+ },
826
+ "language": {
827
+ "type": "string",
828
+ "default": "en",
829
+ "description": "Template language code (e.g., en, es, de, fr)"
830
+ },
831
+ "variables": {
832
+ "type": "object",
833
+ "description": "Variable definitions, e.g. {\"1\": \"John\", \"2\": \"Acme Corp\"}"
834
+ },
835
+ "types": {
836
+ "type": "object",
837
+ "description": "Content type definition. Use one key like 'twilio/text', 'twilio/media', 'twilio/quick-reply', 'twilio/call-to-action', 'twilio/card'. Example for text: {\"twilio/text\": {\"body\": \"Hello {{1}}, welcome to {{2}}!\"}}"
838
+ }
839
+ },
840
+ "required": [
841
+ "friendly_name",
842
+ "language",
843
+ "types"
844
+ ]
845
+ }
846
+ },
847
+ {
848
+ "name": "submit_content_template_approval",
849
+ "description": "Submit a content template for WhatsApp approval. Once approved by Meta, the template can be used to initiate conversations outside the 24-hour window.",
850
+ "method": "POST",
851
+ "path": "/v1/Content/%7B%7BContentSid%7D%7D/ApprovalRequests/whatsapp",
852
+ "input_schema": {
853
+ "type": "object",
854
+ "properties": {
855
+ "ContentSid": {
856
+ "type": "string",
857
+ "description": "Content template SID (HXxxxxxxxx) to submit for approval"
858
+ },
859
+ "name": {
860
+ "type": "string",
861
+ "description": "Template name for WhatsApp (lowercase, underscores, no spaces)"
862
+ },
863
+ "category": {
864
+ "type": "string",
865
+ "enum": [
866
+ "UTILITY",
867
+ "MARKETING",
868
+ "AUTHENTICATION"
869
+ ],
870
+ "description": "WhatsApp template category"
871
+ }
872
+ },
873
+ "required": [
874
+ "ContentSid",
875
+ "name",
876
+ "category"
877
+ ]
878
+ }
879
+ },
880
+ {
881
+ "name": "delete_content_template",
882
+ "description": "Delete a content template. Cannot delete templates that have been submitted for WhatsApp approval.",
883
+ "method": "DELETE",
884
+ "path": "/v1/Content/%7B%7BContentSid%7D%7D",
885
+ "input_schema": {
886
+ "type": "object",
887
+ "properties": {
888
+ "ContentSid": {
889
+ "type": "string",
890
+ "description": "Content template SID (HXxxxxxxxx) to delete"
891
+ }
892
+ },
893
+ "required": [
894
+ "ContentSid"
895
+ ]
896
+ }
897
+ },
898
+ {
899
+ "name": "lookup_phone_number",
900
+ "description": "Look up information about a phone number — carrier, caller name, line type (mobile/landline/voip).",
901
+ "method": "GET",
902
+ "path": "/v2/PhoneNumbers/%7B%7BPhoneNumber%7D%7D",
903
+ "input_schema": {
904
+ "type": "object",
905
+ "properties": {
906
+ "PhoneNumber": {
907
+ "type": "string",
908
+ "description": "Phone number in E.164 format"
909
+ },
910
+ "Fields": {
911
+ "type": "string",
912
+ "default": "line_type_intelligence",
913
+ "description": "Comma-separated fields: line_type_intelligence, caller_name, sim_swap, call_forwarding, live_activity"
914
+ }
915
+ },
916
+ "required": [
917
+ "PhoneNumber"
918
+ ]
919
+ }
920
+ },
921
+ {
922
+ "name": "create_verify_service",
923
+ "description": "Create a Twilio Verify service for phone number verification (OTP via SMS, call, or email).",
924
+ "method": "POST",
925
+ "path": "/v2/Services",
926
+ "input_schema": {
927
+ "type": "object",
928
+ "properties": {
929
+ "FriendlyName": {
930
+ "type": "string",
931
+ "description": "Name for the verify service"
932
+ },
933
+ "CodeLength": {
934
+ "type": "integer",
935
+ "default": 6,
936
+ "description": "Length of verification code (4-10)"
937
+ }
938
+ },
939
+ "required": [
940
+ "FriendlyName"
941
+ ]
942
+ }
943
+ },
944
+ {
945
+ "name": "send_verification",
946
+ "description": "Send a verification code to a phone number via SMS, call, or email.",
947
+ "method": "POST",
948
+ "path": "/v2/Services/%7B%7BServiceSid%7D%7D/Verifications",
949
+ "input_schema": {
950
+ "type": "object",
951
+ "properties": {
952
+ "ServiceSid": {
953
+ "type": "string",
954
+ "description": "Verify Service SID"
955
+ },
956
+ "To": {
957
+ "type": "string",
958
+ "description": "Phone number or email to verify"
959
+ },
960
+ "Channel": {
961
+ "type": "string",
962
+ "enum": [
963
+ "sms",
964
+ "call",
965
+ "email",
966
+ "whatsapp"
967
+ ],
968
+ "default": "sms",
969
+ "description": "Verification channel"
970
+ }
971
+ },
972
+ "required": [
973
+ "ServiceSid",
974
+ "To",
975
+ "Channel"
976
+ ]
977
+ }
978
+ },
979
+ {
980
+ "name": "check_verification",
981
+ "description": "Verify a code submitted by the user against the one sent.",
982
+ "method": "POST",
983
+ "path": "/v2/Services/%7B%7BServiceSid%7D%7D/VerificationCheck",
984
+ "input_schema": {
985
+ "type": "object",
986
+ "properties": {
987
+ "ServiceSid": {
988
+ "type": "string",
989
+ "description": "Verify Service SID"
990
+ },
991
+ "To": {
992
+ "type": "string",
993
+ "description": "Phone number or email that was verified"
994
+ },
995
+ "Code": {
996
+ "type": "string",
997
+ "description": "Verification code entered by user"
998
+ }
999
+ },
1000
+ "required": [
1001
+ "ServiceSid",
1002
+ "To",
1003
+ "Code"
1004
+ ]
1005
+ }
1006
+ }
1007
+ ]
1008
+ }