@apteva/integrations 0.2.3 → 0.3.0

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,753 @@
1
+ {
2
+ "slug": "castbase",
3
+ "name": "CastBase",
4
+ "description": "Complete podcast hosting platform with RSS feeds, episode management, analytics, and media delivery",
5
+ "logo": "https://cdn-icons-png.flaticon.com/512/3106/3106777.png",
6
+ "categories": [
7
+ "castbase",
8
+ "podcasting",
9
+ "audio",
10
+ "rss",
11
+ "episodes",
12
+ "media",
13
+ "analytics"
14
+ ],
15
+ "base_url": "",
16
+ "auth": {
17
+ "types": [
18
+ "bearer"
19
+ ],
20
+ "headers": {
21
+ "Authorization": "Bearer {{token}}"
22
+ },
23
+ "credential_fields": [
24
+ {
25
+ "name": "api_key",
26
+ "label": "Api_key",
27
+ "description": "CastBase API Key (from your project dashboard)"
28
+ }
29
+ ]
30
+ },
31
+ "tools": [
32
+ {
33
+ "name": "create_podcast",
34
+ "description": "Create a new podcast with metadata and optional cover image",
35
+ "method": "POST",
36
+ "path": "/create-podcast",
37
+ "input_schema": {
38
+ "type": "object",
39
+ "properties": {
40
+ "project_id": {
41
+ "type": "string",
42
+ "description": "Project ID (required)"
43
+ },
44
+ "title": {
45
+ "type": "string",
46
+ "description": "Podcast title (required)"
47
+ },
48
+ "description": {
49
+ "type": "string",
50
+ "description": "Podcast description"
51
+ },
52
+ "author": {
53
+ "type": "string",
54
+ "description": "Podcast author/host name (required)"
55
+ },
56
+ "owner_email": {
57
+ "type": "string",
58
+ "format": "email",
59
+ "description": "Owner email address (required)"
60
+ },
61
+ "website": {
62
+ "type": "string",
63
+ "format": "uri",
64
+ "description": "Podcast website URL"
65
+ },
66
+ "language": {
67
+ "type": "string",
68
+ "default": "en",
69
+ "description": "Language code (e.g., 'en', 'es')"
70
+ },
71
+ "category": {
72
+ "type": "string",
73
+ "description": "Podcast category"
74
+ },
75
+ "explicit": {
76
+ "type": "boolean",
77
+ "default": false,
78
+ "description": "Contains explicit content"
79
+ },
80
+ "cover_image_url": {
81
+ "type": "string",
82
+ "description": "Cover image URL"
83
+ }
84
+ },
85
+ "required": [
86
+ "project_id",
87
+ "title",
88
+ "author",
89
+ "owner_email"
90
+ ]
91
+ }
92
+ },
93
+ {
94
+ "name": "get_podcast",
95
+ "description": "Retrieve podcast details by ID",
96
+ "method": "GET",
97
+ "path": "/get-podcast",
98
+ "input_schema": {
99
+ "type": "object",
100
+ "properties": {
101
+ "project_id": {
102
+ "type": "string",
103
+ "description": "Project ID (required)"
104
+ },
105
+ "podcast_id": {
106
+ "type": "string",
107
+ "description": "Podcast ID (required)"
108
+ },
109
+ "include_episodes": {
110
+ "type": "boolean",
111
+ "default": false,
112
+ "description": "Include episodes in response"
113
+ },
114
+ "episode_status": {
115
+ "type": "string",
116
+ "default": "published",
117
+ "description": "Filter episodes by status when include_episodes is true"
118
+ },
119
+ "episode_limit": {
120
+ "type": "integer",
121
+ "default": 20,
122
+ "description": "Limit episodes when include_episodes is true"
123
+ }
124
+ },
125
+ "required": [
126
+ "project_id",
127
+ "podcast_id"
128
+ ]
129
+ }
130
+ },
131
+ {
132
+ "name": "list_podcasts",
133
+ "description": "List podcasts with filtering and pagination",
134
+ "method": "GET",
135
+ "path": "/list-podcasts",
136
+ "input_schema": {
137
+ "type": "object",
138
+ "properties": {
139
+ "project_id": {
140
+ "type": "string",
141
+ "description": "Project ID (required)"
142
+ },
143
+ "status": {
144
+ "type": "string",
145
+ "enum": [
146
+ "active",
147
+ "paused",
148
+ "archived"
149
+ ],
150
+ "description": "Filter by podcast status"
151
+ },
152
+ "category": {
153
+ "type": "string",
154
+ "description": "Filter by category"
155
+ },
156
+ "search": {
157
+ "type": "string",
158
+ "description": "Search in title and description"
159
+ },
160
+ "limit": {
161
+ "type": "integer",
162
+ "default": 20,
163
+ "minimum": 1,
164
+ "maximum": 100,
165
+ "description": "Number of podcasts to return"
166
+ },
167
+ "offset": {
168
+ "type": "integer",
169
+ "default": 0,
170
+ "minimum": 0,
171
+ "description": "Offset for pagination"
172
+ },
173
+ "sort": {
174
+ "type": "string",
175
+ "default": "created_at:desc",
176
+ "description": "Sort order (created_at:desc, title:asc, etc.)"
177
+ }
178
+ },
179
+ "required": [
180
+ "project_id"
181
+ ]
182
+ }
183
+ },
184
+ {
185
+ "name": "update_podcast",
186
+ "description": "Update podcast metadata and settings",
187
+ "method": "PUT",
188
+ "path": "/update-podcast",
189
+ "input_schema": {
190
+ "type": "object",
191
+ "properties": {
192
+ "project_id": {
193
+ "type": "string",
194
+ "description": "Project ID (required)"
195
+ },
196
+ "podcast_id": {
197
+ "type": "string",
198
+ "description": "Podcast ID (required)"
199
+ },
200
+ "title": {
201
+ "type": "string",
202
+ "description": "Updated podcast title"
203
+ },
204
+ "description": {
205
+ "type": "string",
206
+ "description": "Updated podcast description"
207
+ },
208
+ "author": {
209
+ "type": "string",
210
+ "description": "Updated author name"
211
+ },
212
+ "website": {
213
+ "type": "string",
214
+ "description": "Updated website URL"
215
+ },
216
+ "category": {
217
+ "type": "string",
218
+ "description": "Updated category"
219
+ },
220
+ "explicit": {
221
+ "type": "boolean",
222
+ "description": "Updated explicit flag"
223
+ },
224
+ "status": {
225
+ "type": "string",
226
+ "enum": [
227
+ "active",
228
+ "paused",
229
+ "archived"
230
+ ],
231
+ "description": "Updated status"
232
+ }
233
+ },
234
+ "required": [
235
+ "project_id",
236
+ "podcast_id"
237
+ ]
238
+ }
239
+ },
240
+ {
241
+ "name": "delete_podcast",
242
+ "description": "Delete a podcast and all its episodes (cannot be undone)",
243
+ "method": "DELETE",
244
+ "path": "/delete-podcast",
245
+ "input_schema": {
246
+ "type": "object",
247
+ "properties": {
248
+ "project_id": {
249
+ "type": "string",
250
+ "description": "Project ID (required)"
251
+ },
252
+ "podcast_id": {
253
+ "type": "string",
254
+ "description": "Podcast ID to delete (required)"
255
+ },
256
+ "force": {
257
+ "type": "boolean",
258
+ "default": false,
259
+ "description": "Force deletion even if podcast has episodes"
260
+ },
261
+ "permanent": {
262
+ "type": "boolean",
263
+ "default": false,
264
+ "description": "Permanently delete (true) or archive (false)"
265
+ }
266
+ },
267
+ "required": [
268
+ "project_id",
269
+ "podcast_id"
270
+ ]
271
+ }
272
+ },
273
+ {
274
+ "name": "create_episode",
275
+ "description": "Create a new podcast episode",
276
+ "method": "POST",
277
+ "path": "/create-episode",
278
+ "input_schema": {
279
+ "type": "object",
280
+ "properties": {
281
+ "project_id": {
282
+ "type": "string",
283
+ "description": "Project ID (required)"
284
+ },
285
+ "podcast_id": {
286
+ "type": "string",
287
+ "description": "Podcast ID (required)"
288
+ },
289
+ "title": {
290
+ "type": "string",
291
+ "description": "Episode title (required)"
292
+ },
293
+ "description": {
294
+ "type": "string",
295
+ "description": "Episode description"
296
+ },
297
+ "season_number": {
298
+ "type": "integer",
299
+ "description": "Season number"
300
+ },
301
+ "episode_number": {
302
+ "type": "integer",
303
+ "description": "Episode number"
304
+ },
305
+ "episode_type": {
306
+ "type": "string",
307
+ "enum": [
308
+ "full",
309
+ "trailer",
310
+ "bonus"
311
+ ],
312
+ "default": "full",
313
+ "description": "Episode type"
314
+ },
315
+ "explicit": {
316
+ "type": "boolean",
317
+ "default": false,
318
+ "description": "Contains explicit content"
319
+ }
320
+ },
321
+ "required": [
322
+ "project_id",
323
+ "podcast_id",
324
+ "title"
325
+ ]
326
+ }
327
+ },
328
+ {
329
+ "name": "get_episode",
330
+ "description": "Retrieve episode details by ID",
331
+ "method": "GET",
332
+ "path": "/get-episode",
333
+ "input_schema": {
334
+ "type": "object",
335
+ "properties": {
336
+ "project_id": {
337
+ "type": "string",
338
+ "description": "Project ID (required)"
339
+ },
340
+ "episode_id": {
341
+ "type": "string",
342
+ "description": "Episode ID (required)"
343
+ },
344
+ "include_podcast": {
345
+ "type": "boolean",
346
+ "default": false,
347
+ "description": "Include podcast information in response"
348
+ }
349
+ },
350
+ "required": [
351
+ "project_id",
352
+ "episode_id"
353
+ ]
354
+ }
355
+ },
356
+ {
357
+ "name": "list_episodes",
358
+ "description": "List episodes for a podcast with pagination",
359
+ "method": "GET",
360
+ "path": "/list-episodes",
361
+ "input_schema": {
362
+ "type": "object",
363
+ "properties": {
364
+ "project_id": {
365
+ "type": "string",
366
+ "description": "Project ID (required)"
367
+ },
368
+ "podcast_id": {
369
+ "type": "string",
370
+ "description": "Podcast ID (required)"
371
+ },
372
+ "status": {
373
+ "type": "string",
374
+ "default": "all",
375
+ "description": "Filter by episode status (all, draft, published, archived)"
376
+ },
377
+ "episode_type": {
378
+ "type": "string",
379
+ "enum": [
380
+ "full",
381
+ "trailer",
382
+ "bonus"
383
+ ],
384
+ "description": "Filter by episode type"
385
+ },
386
+ "season": {
387
+ "type": "integer",
388
+ "description": "Filter by season number"
389
+ },
390
+ "search": {
391
+ "type": "string",
392
+ "description": "Search in episode title"
393
+ },
394
+ "limit": {
395
+ "type": "integer",
396
+ "default": 20,
397
+ "minimum": 1,
398
+ "maximum": 100,
399
+ "description": "Number of episodes to return"
400
+ },
401
+ "offset": {
402
+ "type": "integer",
403
+ "default": 0,
404
+ "minimum": 0,
405
+ "description": "Offset for pagination"
406
+ },
407
+ "sort": {
408
+ "type": "string",
409
+ "default": "created_at:desc",
410
+ "description": "Sort order (created_at:desc, published_at:desc, etc.)"
411
+ }
412
+ },
413
+ "required": [
414
+ "project_id",
415
+ "podcast_id"
416
+ ]
417
+ }
418
+ },
419
+ {
420
+ "name": "publish_episode",
421
+ "description": "Publish an episode making it available in the RSS feed",
422
+ "method": "GET",
423
+ "path": "/publish-episode",
424
+ "input_schema": {
425
+ "type": "object",
426
+ "properties": {
427
+ "project_id": {
428
+ "type": "string",
429
+ "description": "Project ID (required)"
430
+ },
431
+ "episode_id": {
432
+ "type": "string",
433
+ "description": "Episode ID to publish (required)"
434
+ },
435
+ "published_at": {
436
+ "type": "string",
437
+ "format": "date-time",
438
+ "description": "Schedule publish date/time (defaults to now)"
439
+ },
440
+ "update_rss": {
441
+ "type": "boolean",
442
+ "default": true,
443
+ "description": "Trigger RSS feed update after publishing"
444
+ }
445
+ },
446
+ "required": [
447
+ "project_id",
448
+ "episode_id"
449
+ ]
450
+ }
451
+ },
452
+ {
453
+ "name": "upload_audio",
454
+ "description": "Upload audio file for an episode. Provide either audio_url (to download from URL) or audio_buffer (base64 encoded data). The file will be tagged with ID3 metadata and stored.",
455
+ "method": "POST",
456
+ "path": "/upload-audio",
457
+ "input_schema": {
458
+ "type": "object",
459
+ "properties": {
460
+ "project_id": {
461
+ "type": "string",
462
+ "description": "Project ID (required)"
463
+ },
464
+ "episode_id": {
465
+ "type": "string",
466
+ "description": "Episode ID (required)"
467
+ },
468
+ "audio_buffer": {
469
+ "type": "string",
470
+ "description": "Base64 encoded audio file data (provide either this or audio_url)"
471
+ },
472
+ "audio_url": {
473
+ "type": "string",
474
+ "format": "uri",
475
+ "description": "URL of the audio file to download and upload (provide either this or audio_buffer)"
476
+ },
477
+ "filename": {
478
+ "type": "string",
479
+ "description": "Original filename (optional - extracted from URL if using audio_url)"
480
+ },
481
+ "content_type": {
482
+ "type": "string",
483
+ "default": "audio/mpeg",
484
+ "enum": [
485
+ "audio/mpeg",
486
+ "audio/mp3",
487
+ "audio/mp4",
488
+ "audio/x-m4a",
489
+ "audio/wav",
490
+ "audio/ogg"
491
+ ],
492
+ "description": "Audio content type (auto-detected from response if using audio_url)"
493
+ }
494
+ },
495
+ "required": [
496
+ "project_id",
497
+ "episode_id"
498
+ ]
499
+ }
500
+ },
501
+ {
502
+ "name": "generate_rss",
503
+ "description": "Generate or regenerate RSS feed for a podcast",
504
+ "method": "GET",
505
+ "path": "/generate-rss",
506
+ "input_schema": {
507
+ "type": "object",
508
+ "properties": {
509
+ "podcast_id": {
510
+ "type": "string",
511
+ "description": "Podcast ID (required)"
512
+ },
513
+ "max_episodes": {
514
+ "type": "integer",
515
+ "default": 100,
516
+ "minimum": 1,
517
+ "maximum": 500,
518
+ "description": "Maximum number of episodes to include"
519
+ }
520
+ },
521
+ "required": [
522
+ "podcast_id"
523
+ ]
524
+ }
525
+ },
526
+ {
527
+ "name": "serve_media",
528
+ "description": "Get media file URL with optional analytics tracking",
529
+ "method": "GET",
530
+ "path": "/serve-media",
531
+ "input_schema": {
532
+ "type": "object",
533
+ "properties": {
534
+ "podcast_id": {
535
+ "type": "string",
536
+ "description": "Podcast ID (required)"
537
+ },
538
+ "episode_id": {
539
+ "type": "string",
540
+ "description": "Episode ID (required)"
541
+ },
542
+ "file_type": {
543
+ "type": "string",
544
+ "default": "audio",
545
+ "enum": [
546
+ "audio",
547
+ "image",
548
+ "transcript"
549
+ ],
550
+ "description": "Type of media file to serve"
551
+ }
552
+ },
553
+ "required": [
554
+ "podcast_id",
555
+ "episode_id"
556
+ ]
557
+ }
558
+ },
559
+ {
560
+ "name": "track_download",
561
+ "description": "Track episode download for analytics",
562
+ "method": "GET",
563
+ "path": "/track-download",
564
+ "input_schema": {
565
+ "type": "object",
566
+ "properties": {
567
+ "episode_id": {
568
+ "type": "string",
569
+ "description": "Episode ID (required)"
570
+ },
571
+ "user_agent": {
572
+ "type": "string",
573
+ "description": "User agent string"
574
+ },
575
+ "ip_address": {
576
+ "type": "string",
577
+ "description": "IP address of downloader"
578
+ },
579
+ "referrer": {
580
+ "type": "string",
581
+ "description": "Referrer URL"
582
+ },
583
+ "client_type": {
584
+ "type": "string",
585
+ "enum": [
586
+ "app",
587
+ "web",
588
+ "rss",
589
+ "unknown"
590
+ ],
591
+ "description": "Type of client"
592
+ }
593
+ },
594
+ "required": [
595
+ "episode_id"
596
+ ]
597
+ }
598
+ },
599
+ {
600
+ "name": "delete_episode",
601
+ "description": "Delete or archive a podcast episode",
602
+ "method": "DELETE",
603
+ "path": "/delete-episode",
604
+ "input_schema": {
605
+ "type": "object",
606
+ "properties": {
607
+ "project_id": {
608
+ "type": "string",
609
+ "description": "Project ID (required)"
610
+ },
611
+ "episode_id": {
612
+ "type": "string",
613
+ "description": "Episode ID to delete (required)"
614
+ },
615
+ "permanent": {
616
+ "type": "boolean",
617
+ "default": false,
618
+ "description": "Permanently delete (true) or archive (false)"
619
+ }
620
+ },
621
+ "required": [
622
+ "project_id",
623
+ "episode_id"
624
+ ]
625
+ }
626
+ },
627
+ {
628
+ "name": "unpublish_episode",
629
+ "description": "Unpublish a published episode, reverting it to draft status and optionally updating the RSS feed",
630
+ "method": "GET",
631
+ "path": "/unpublish-episode",
632
+ "input_schema": {
633
+ "type": "object",
634
+ "properties": {
635
+ "project_id": {
636
+ "type": "string",
637
+ "description": "Project ID (required)"
638
+ },
639
+ "episode_id": {
640
+ "type": "string",
641
+ "description": "Episode ID to unpublish (required)"
642
+ },
643
+ "update_rss": {
644
+ "type": "boolean",
645
+ "default": true,
646
+ "description": "Trigger RSS feed update after unpublishing"
647
+ }
648
+ },
649
+ "required": [
650
+ "project_id",
651
+ "episode_id"
652
+ ]
653
+ }
654
+ },
655
+ {
656
+ "name": "update_episode",
657
+ "description": "Update episode metadata such as title, description, season/episode numbers, type, and explicit flag",
658
+ "method": "PUT",
659
+ "path": "/update-episode",
660
+ "input_schema": {
661
+ "type": "object",
662
+ "properties": {
663
+ "project_id": {
664
+ "type": "string",
665
+ "description": "Project ID (required)"
666
+ },
667
+ "episode_id": {
668
+ "type": "string",
669
+ "description": "Episode ID to update (required)"
670
+ },
671
+ "title": {
672
+ "type": "string",
673
+ "description": "Updated episode title"
674
+ },
675
+ "description": {
676
+ "type": "string",
677
+ "description": "Updated episode description"
678
+ },
679
+ "season_number": {
680
+ "type": "integer",
681
+ "description": "Updated season number"
682
+ },
683
+ "episode_number": {
684
+ "type": "integer",
685
+ "description": "Updated episode number"
686
+ },
687
+ "episode_type": {
688
+ "type": "string",
689
+ "enum": [
690
+ "full",
691
+ "trailer",
692
+ "bonus"
693
+ ],
694
+ "description": "Updated episode type"
695
+ },
696
+ "explicit": {
697
+ "type": "boolean",
698
+ "description": "Updated explicit content flag"
699
+ }
700
+ },
701
+ "required": [
702
+ "project_id",
703
+ "episode_id"
704
+ ]
705
+ }
706
+ },
707
+ {
708
+ "name": "upload_cover",
709
+ "description": "Upload cover art for a podcast. Image must be at least 1400x1400 pixels and square (1:1 aspect ratio). Provide either image_url or image_buffer (base64).",
710
+ "method": "POST",
711
+ "path": "/upload-cover",
712
+ "input_schema": {
713
+ "type": "object",
714
+ "properties": {
715
+ "project_id": {
716
+ "type": "string",
717
+ "description": "Project ID (required)"
718
+ },
719
+ "podcast_id": {
720
+ "type": "string",
721
+ "description": "Podcast ID (required)"
722
+ },
723
+ "image_buffer": {
724
+ "type": "string",
725
+ "description": "Base64 encoded image data (provide either this or image_url)"
726
+ },
727
+ "image_url": {
728
+ "type": "string",
729
+ "format": "uri",
730
+ "description": "URL of the image to download and upload (provide either this or image_buffer)"
731
+ },
732
+ "filename": {
733
+ "type": "string",
734
+ "description": "Original filename (optional, defaults to cover.jpg)"
735
+ },
736
+ "content_type": {
737
+ "type": "string",
738
+ "default": "image/jpeg",
739
+ "enum": [
740
+ "image/jpeg",
741
+ "image/png"
742
+ ],
743
+ "description": "Image content type"
744
+ }
745
+ },
746
+ "required": [
747
+ "project_id",
748
+ "podcast_id"
749
+ ]
750
+ }
751
+ }
752
+ ]
753
+ }