@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,1218 @@
1
+ {
2
+ "slug": "paidkit",
3
+ "name": "PaidKit",
4
+ "description": "PaidKit cross-platform ad management — create and manage campaigns, ad groups, ads, creatives, audiences, and track performance across Facebook, Google, LinkedIn, and Pinterest from a single unified API",
5
+ "logo": "https://www.google.com/s2/favicons?domain=paidkit.com&sz=128",
6
+ "categories": [
7
+ "advertising",
8
+ "ads",
9
+ "campaigns",
10
+ "facebook-ads",
11
+ "google-ads",
12
+ "linkedin-ads",
13
+ "pinterest-ads",
14
+ "marketing",
15
+ "cross-platform",
16
+ "performance"
17
+ ],
18
+ "base_url": "https://api.paidkit.com",
19
+ "auth": {
20
+ "types": [
21
+ "api_key"
22
+ ],
23
+ "headers": {
24
+ "X-API-Key": "{{token}}"
25
+ },
26
+ "credential_fields": [
27
+ {
28
+ "name": "api_key",
29
+ "label": "Api_key",
30
+ "description": "PaidKit API Key (from your PaidKit dashboard under API Keys)"
31
+ }
32
+ ]
33
+ },
34
+ "tools": [
35
+ {
36
+ "name": "account_list",
37
+ "description": "List all connected ad accounts across platforms (Facebook, Google, LinkedIn, Pinterest). Returns account name, platform, status, currency, and sync info.",
38
+ "method": "GET",
39
+ "path": "/accounts",
40
+ "input_schema": {
41
+ "type": "object",
42
+ "properties": {
43
+ "platform": {
44
+ "type": "string",
45
+ "enum": [
46
+ "facebook",
47
+ "google",
48
+ "linkedin",
49
+ "pinterest"
50
+ ],
51
+ "description": "Filter by platform"
52
+ },
53
+ "limit": {
54
+ "type": "integer",
55
+ "default": 100,
56
+ "description": "Max results to return"
57
+ },
58
+ "offset": {
59
+ "type": "integer",
60
+ "default": 0,
61
+ "description": "Offset for pagination"
62
+ }
63
+ }
64
+ }
65
+ },
66
+ {
67
+ "name": "campaign_list",
68
+ "description": "List ad campaigns across all connected platforms. Filter by platform, status, objective, or ad account. Returns campaign name, status, budget, dates, and platform data.",
69
+ "method": "GET",
70
+ "path": "/campaigns",
71
+ "input_schema": {
72
+ "type": "object",
73
+ "properties": {
74
+ "ad_account_id": {
75
+ "type": "string",
76
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
77
+ },
78
+ "platform": {
79
+ "type": "string",
80
+ "enum": [
81
+ "facebook",
82
+ "google",
83
+ "linkedin",
84
+ "pinterest"
85
+ ],
86
+ "description": "Filter by platform"
87
+ },
88
+ "status": {
89
+ "type": "string",
90
+ "enum": [
91
+ "ACTIVE",
92
+ "PAUSED",
93
+ "DELETED",
94
+ "ARCHIVED"
95
+ ],
96
+ "description": "Filter by campaign status"
97
+ },
98
+ "objective": {
99
+ "type": "string",
100
+ "enum": [
101
+ "AWARENESS",
102
+ "TRAFFIC",
103
+ "ENGAGEMENT",
104
+ "LEADS",
105
+ "SALES",
106
+ "APP_PROMOTION",
107
+ "VIDEO",
108
+ "PERFORMANCE_MAX"
109
+ ],
110
+ "description": "Filter by campaign objective"
111
+ },
112
+ "limit": {
113
+ "type": "integer",
114
+ "default": 50,
115
+ "description": "Max results"
116
+ },
117
+ "offset": {
118
+ "type": "integer",
119
+ "default": 0,
120
+ "description": "Pagination offset"
121
+ },
122
+ "sort": {
123
+ "type": "string",
124
+ "default": "created_at:desc",
125
+ "description": "Sort field and direction (e.g. created_at:desc)"
126
+ }
127
+ }
128
+ }
129
+ },
130
+ {
131
+ "name": "campaign_get",
132
+ "description": "Get a single campaign by ID with full details including platform data, budget, dates, and sync status.",
133
+ "method": "GET",
134
+ "path": "/campaigns/%7B%7Bid%7D%7D",
135
+ "input_schema": {
136
+ "type": "object",
137
+ "properties": {
138
+ "id": {
139
+ "type": "string",
140
+ "description": "Campaign ID"
141
+ }
142
+ },
143
+ "required": [
144
+ "id"
145
+ ]
146
+ }
147
+ },
148
+ {
149
+ "name": "campaign_create",
150
+ "description": "Create a new ad campaign. Specify the ad account, platform, name, objective, budget, and dates. PaidKit creates the campaign on the target platform and stores it locally.",
151
+ "method": "POST",
152
+ "path": "/campaigns",
153
+ "input_schema": {
154
+ "type": "object",
155
+ "properties": {
156
+ "ad_account_id": {
157
+ "type": "string",
158
+ "description": "PaidKit ad account ID (from paidkit-account-list, NOT the platform's native account ID)"
159
+ },
160
+ "name": {
161
+ "type": "string",
162
+ "description": "Campaign name"
163
+ },
164
+ "objective": {
165
+ "type": "string",
166
+ "enum": [
167
+ "AWARENESS",
168
+ "TRAFFIC",
169
+ "ENGAGEMENT",
170
+ "LEADS",
171
+ "SALES",
172
+ "APP_PROMOTION",
173
+ "VIDEO",
174
+ "PERFORMANCE_MAX"
175
+ ],
176
+ "description": "Campaign objective — automatically mapped to the platform-specific objective"
177
+ },
178
+ "status": {
179
+ "type": "string",
180
+ "enum": [
181
+ "ACTIVE",
182
+ "PAUSED"
183
+ ],
184
+ "default": "PAUSED",
185
+ "description": "Initial campaign status"
186
+ },
187
+ "daily_budget_cents": {
188
+ "type": "integer",
189
+ "description": "Daily budget in cents (e.g. 5000 = $50.00)"
190
+ },
191
+ "lifetime_budget_cents": {
192
+ "type": "integer",
193
+ "description": "Lifetime budget in cents (alternative to daily budget)"
194
+ },
195
+ "start_date": {
196
+ "type": "string",
197
+ "description": "Start date (ISO 8601 format)"
198
+ },
199
+ "end_date": {
200
+ "type": "string",
201
+ "description": "End date (ISO 8601 format)"
202
+ },
203
+ "bid_strategy": {
204
+ "type": "string",
205
+ "description": "Bid strategy (e.g. LOWEST_COST, COST_CAP)"
206
+ },
207
+ "platform_data": {
208
+ "type": "object",
209
+ "description": "Platform-specific campaign settings (passed directly to the platform API)"
210
+ }
211
+ },
212
+ "required": [
213
+ "ad_account_id",
214
+ "name",
215
+ "objective"
216
+ ]
217
+ }
218
+ },
219
+ {
220
+ "name": "campaign_update",
221
+ "description": "Update an existing campaign's name, status, budget, dates, or bid strategy. Changes are synced to the platform.",
222
+ "method": "PUT",
223
+ "path": "/campaigns/%7B%7Bid%7D%7D",
224
+ "input_schema": {
225
+ "type": "object",
226
+ "properties": {
227
+ "id": {
228
+ "type": "string",
229
+ "description": "Campaign ID to update"
230
+ },
231
+ "name": {
232
+ "type": "string",
233
+ "description": "New campaign name"
234
+ },
235
+ "status": {
236
+ "type": "string",
237
+ "enum": [
238
+ "ACTIVE",
239
+ "PAUSED"
240
+ ],
241
+ "description": "New campaign status"
242
+ },
243
+ "daily_budget_cents": {
244
+ "type": "integer",
245
+ "description": "New daily budget in cents"
246
+ },
247
+ "lifetime_budget_cents": {
248
+ "type": "integer",
249
+ "description": "New lifetime budget in cents"
250
+ },
251
+ "end_date": {
252
+ "type": "string",
253
+ "description": "New end date"
254
+ },
255
+ "bid_strategy": {
256
+ "type": "string",
257
+ "description": "New bid strategy"
258
+ }
259
+ },
260
+ "required": [
261
+ "id"
262
+ ]
263
+ }
264
+ },
265
+ {
266
+ "name": "campaign_delete",
267
+ "description": "Delete a campaign from the platform and remove it locally.",
268
+ "method": "DELETE",
269
+ "path": "/campaigns/%7B%7Bid%7D%7D",
270
+ "input_schema": {
271
+ "type": "object",
272
+ "properties": {
273
+ "id": {
274
+ "type": "string",
275
+ "description": "Campaign ID to delete"
276
+ }
277
+ },
278
+ "required": [
279
+ "id"
280
+ ]
281
+ }
282
+ },
283
+ {
284
+ "name": "campaign_sync",
285
+ "description": "Sync a campaign's data from the ad platform to the local database. Pulls latest status, budget, and platform data.",
286
+ "method": "POST",
287
+ "path": "/campaigns/%7B%7Bid%7D%7D/sync",
288
+ "input_schema": {
289
+ "type": "object",
290
+ "properties": {
291
+ "id": {
292
+ "type": "string",
293
+ "description": "Campaign ID to sync"
294
+ }
295
+ },
296
+ "required": [
297
+ "id"
298
+ ]
299
+ }
300
+ },
301
+ {
302
+ "name": "adgroup_list",
303
+ "description": "List ad groups (ad sets) with optional filtering by campaign, platform, or status.",
304
+ "method": "GET",
305
+ "path": "/adgroups",
306
+ "input_schema": {
307
+ "type": "object",
308
+ "properties": {
309
+ "campaign_id": {
310
+ "type": "string",
311
+ "description": "Filter by campaign ID"
312
+ },
313
+ "ad_account_id": {
314
+ "type": "string",
315
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
316
+ },
317
+ "platform": {
318
+ "type": "string",
319
+ "enum": [
320
+ "facebook",
321
+ "google",
322
+ "linkedin",
323
+ "pinterest"
324
+ ],
325
+ "description": "Filter by platform"
326
+ },
327
+ "status": {
328
+ "type": "string",
329
+ "enum": [
330
+ "ACTIVE",
331
+ "PAUSED",
332
+ "DELETED"
333
+ ],
334
+ "description": "Filter by status"
335
+ },
336
+ "limit": {
337
+ "type": "integer",
338
+ "default": 50
339
+ },
340
+ "offset": {
341
+ "type": "integer",
342
+ "default": 0
343
+ }
344
+ }
345
+ }
346
+ },
347
+ {
348
+ "name": "adgroup_create",
349
+ "description": "Create an ad group (Facebook: ad set) under a campaign. REQUIRED for Facebook: optimization_goal matching the campaign objective. Objective→optimization_goal mapping: AWARENESS→REACH, TRAFFIC→LINK_CLICKS, ENGAGEMENT→PAGE_LIKES (page likes) or POST_ENGAGEMENT (post engagement), LEADS→LEAD_GENERATION, SALES→OFFSITE_CONVERSIONS, APP_PROMOTION→APP_INSTALLS, VIDEO→THRUPLAY. Default billing_event is IMPRESSIONS. IMPORTANT platform_data requirements for Facebook: (1) PAGE_LIKES or POST_ENGAGEMENT goals MUST include {promotedObject:{page_id:'FACEBOOK_PAGE_ID'}} — use paidkit-page-list to get available page IDs. (2) OFFSITE_CONVERSIONS or VALUE goals MUST include {promotedObject:{pixel_id:'PIXEL_ID',custom_event_type:'Purchase'}} — use paidkit-pixel-list to get pixel IDs. The destination_type is auto-set from optimization_goal (PAGE_LIKES→ON_PAGE, POST_ENGAGEMENT→ON_POST, LINK_CLICKS→WEBSITE, LANDING_PAGE_VIEWS→WEBSITE, OFFSITE_CONVERSIONS→WEBSITE, EVENT_RESPONSES→ON_EVENT, CONVERSATIONS→MESSENGER). Targeting defaults to US if omitted.",
350
+ "method": "POST",
351
+ "path": "/adgroups",
352
+ "input_schema": {
353
+ "type": "object",
354
+ "properties": {
355
+ "ad_account_id": {
356
+ "type": "string",
357
+ "description": "PaidKit ad account ID (from paidkit-account-list, NOT the platform's native account ID)"
358
+ },
359
+ "campaign_id": {
360
+ "type": "string",
361
+ "description": "PaidKit campaign ID (from paidkit-campaign-list or paidkit-campaign-create)"
362
+ },
363
+ "name": {
364
+ "type": "string",
365
+ "description": "Ad group name"
366
+ },
367
+ "status": {
368
+ "type": "string",
369
+ "enum": [
370
+ "ACTIVE",
371
+ "PAUSED"
372
+ ],
373
+ "default": "PAUSED"
374
+ },
375
+ "daily_budget_cents": {
376
+ "type": "integer",
377
+ "description": "Daily budget in cents (e.g. 5000 = $50.00). Not needed if campaign uses Campaign Budget Optimization (CBO)"
378
+ },
379
+ "lifetime_budget_cents": {
380
+ "type": "integer",
381
+ "description": "Lifetime budget in cents (alternative to daily budget)"
382
+ },
383
+ "bid_amount_cents": {
384
+ "type": "integer",
385
+ "description": "Manual bid amount in cents (optional, defaults to automatic bidding)"
386
+ },
387
+ "optimization_goal": {
388
+ "type": "string",
389
+ "enum": [
390
+ "REACH",
391
+ "LINK_CLICKS",
392
+ "PAGE_LIKES",
393
+ "POST_ENGAGEMENT",
394
+ "EVENT_RESPONSES",
395
+ "LEAD_GENERATION",
396
+ "OFFSITE_CONVERSIONS",
397
+ "APP_INSTALLS",
398
+ "THRUPLAY",
399
+ "VIDEO_VIEWS",
400
+ "LANDING_PAGE_VIEWS",
401
+ "CONVERSATIONS",
402
+ "IMPRESSIONS",
403
+ "VALUE"
404
+ ],
405
+ "description": "REQUIRED for Facebook. Must match campaign objective: AWARENESS→REACH, TRAFFIC→LINK_CLICKS, ENGAGEMENT→POST_ENGAGEMENT (most common) or PAGE_LIKES (page like campaigns only), LEADS→LEAD_GENERATION, SALES→OFFSITE_CONVERSIONS, APP_PROMOTION→APP_INSTALLS, VIDEO→THRUPLAY. NOTE: POST_ENGAGEMENT and PAGE_LIKES both require platform_data.promotedObject.page_id. OFFSITE_CONVERSIONS requires platform_data.promotedObject.pixel_id. Defaults to LINK_CLICKS if omitted"
406
+ },
407
+ "billing_event": {
408
+ "type": "string",
409
+ "enum": [
410
+ "IMPRESSIONS",
411
+ "LINK_CLICKS",
412
+ "THRUPLAY",
413
+ "PAGE_LIKES",
414
+ "POST_ENGAGEMENT",
415
+ "VIDEO_VIEWS"
416
+ ],
417
+ "description": "How you are charged. Use IMPRESSIONS for most goals (default). Use THRUPLAY only with THRUPLAY optimization_goal"
418
+ },
419
+ "targeting": {
420
+ "type": "object",
421
+ "description": "Targeting config. Defaults to {geoLocations:{countries:['US']}} if omitted. Full format: {geoLocations:{countries:['US','CA']}, ageMin:18, ageMax:65, genders:[1,2], interests:[{id:'6003139266461',name:'Music'}]}"
422
+ },
423
+ "platform_data": {
424
+ "type": "object",
425
+ "description": "Platform-specific settings passed directly to the ad platform. REQUIRED for Facebook engagement/conversion goals. For PAGE_LIKES or POST_ENGAGEMENT: {promotedObject:{page_id:'YOUR_FACEBOOK_PAGE_ID'}} — get page_id from paidkit-page-list. For OFFSITE_CONVERSIONS or VALUE: {promotedObject:{pixel_id:'YOUR_PIXEL_ID',custom_event_type:'Purchase'}} — get pixel_id from paidkit-pixel-list, custom_event_type can be Purchase, Lead, CompleteRegistration, AddToCart, ViewContent, Search, InitiateCheckout, AddPaymentInfo, Subscribe, StartTrial. destination_type is auto-set from optimization_goal"
426
+ }
427
+ },
428
+ "required": [
429
+ "ad_account_id",
430
+ "campaign_id",
431
+ "name"
432
+ ]
433
+ }
434
+ },
435
+ {
436
+ "name": "adgroup_update",
437
+ "description": "Update an ad group's name, status, budget, bid, or targeting.",
438
+ "method": "PUT",
439
+ "path": "/adgroups/%7B%7Bid%7D%7D",
440
+ "input_schema": {
441
+ "type": "object",
442
+ "properties": {
443
+ "id": {
444
+ "type": "string",
445
+ "description": "Ad group ID to update"
446
+ },
447
+ "name": {
448
+ "type": "string",
449
+ "description": "New name"
450
+ },
451
+ "status": {
452
+ "type": "string",
453
+ "enum": [
454
+ "ACTIVE",
455
+ "PAUSED"
456
+ ]
457
+ },
458
+ "daily_budget_cents": {
459
+ "type": "integer"
460
+ },
461
+ "bid_amount_cents": {
462
+ "type": "integer"
463
+ },
464
+ "platform_data": {
465
+ "type": "object"
466
+ }
467
+ },
468
+ "required": [
469
+ "id"
470
+ ]
471
+ }
472
+ },
473
+ {
474
+ "name": "adgroup_delete",
475
+ "description": "Delete an ad group from the platform and locally.",
476
+ "method": "DELETE",
477
+ "path": "/adgroups/%7B%7Bid%7D%7D",
478
+ "input_schema": {
479
+ "type": "object",
480
+ "properties": {
481
+ "id": {
482
+ "type": "string",
483
+ "description": "Ad group ID to delete"
484
+ }
485
+ },
486
+ "required": [
487
+ "id"
488
+ ]
489
+ }
490
+ },
491
+ {
492
+ "name": "ad_list",
493
+ "description": "List ads with optional filtering by campaign, ad group, platform, or status.",
494
+ "method": "GET",
495
+ "path": "/ads",
496
+ "input_schema": {
497
+ "type": "object",
498
+ "properties": {
499
+ "campaign_id": {
500
+ "type": "string",
501
+ "description": "Filter by campaign ID"
502
+ },
503
+ "ad_group_id": {
504
+ "type": "string",
505
+ "description": "Filter by ad group ID"
506
+ },
507
+ "ad_account_id": {
508
+ "type": "string",
509
+ "description": "Filter by PaidKit ad account ID (from paidkit-account-list)"
510
+ },
511
+ "platform": {
512
+ "type": "string",
513
+ "enum": [
514
+ "facebook",
515
+ "google",
516
+ "linkedin",
517
+ "pinterest"
518
+ ]
519
+ },
520
+ "status": {
521
+ "type": "string",
522
+ "enum": [
523
+ "ACTIVE",
524
+ "PAUSED",
525
+ "DELETED"
526
+ ]
527
+ },
528
+ "limit": {
529
+ "type": "integer",
530
+ "default": 50
531
+ },
532
+ "offset": {
533
+ "type": "integer",
534
+ "default": 0
535
+ }
536
+ }
537
+ }
538
+ },
539
+ {
540
+ "name": "ad_create",
541
+ "description": "Create a new ad under an ad group. Optionally auto-creates a creative on the platform from provided image/video URLs, headlines, and descriptions.",
542
+ "method": "POST",
543
+ "path": "/ads",
544
+ "input_schema": {
545
+ "type": "object",
546
+ "properties": {
547
+ "ad_account_id": {
548
+ "type": "string",
549
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
550
+ },
551
+ "campaign_id": {
552
+ "type": "string",
553
+ "description": "Campaign ID"
554
+ },
555
+ "ad_group_id": {
556
+ "type": "string",
557
+ "description": "Ad group ID"
558
+ },
559
+ "name": {
560
+ "type": "string",
561
+ "description": "Ad name"
562
+ },
563
+ "status": {
564
+ "type": "string",
565
+ "enum": [
566
+ "ACTIVE",
567
+ "PAUSED"
568
+ ],
569
+ "default": "PAUSED"
570
+ },
571
+ "tracking_url": {
572
+ "type": "string",
573
+ "description": "Final/tracking URL for the ad"
574
+ },
575
+ "creative_type": {
576
+ "type": "string",
577
+ "enum": [
578
+ "IMAGE",
579
+ "VIDEO",
580
+ "CAROUSEL"
581
+ ],
582
+ "description": "Type of creative to auto-create"
583
+ },
584
+ "image_url": {
585
+ "type": "string",
586
+ "description": "Image URL for auto-creative creation"
587
+ },
588
+ "video_id": {
589
+ "type": "string",
590
+ "description": "Video asset ID for video ads"
591
+ },
592
+ "page_id": {
593
+ "type": "string",
594
+ "description": "Facebook Page ID (required for Facebook ads)"
595
+ },
596
+ "platform_data": {
597
+ "type": "object",
598
+ "description": "Platform-specific ad settings (adType, headlines, descriptions, finalUrls, etc.)"
599
+ }
600
+ },
601
+ "required": [
602
+ "ad_account_id",
603
+ "campaign_id",
604
+ "ad_group_id",
605
+ "name"
606
+ ]
607
+ }
608
+ },
609
+ {
610
+ "name": "ad_update",
611
+ "description": "Update an ad's name, status, tracking URL, or platform data.",
612
+ "method": "PUT",
613
+ "path": "/ads/%7B%7Bid%7D%7D",
614
+ "input_schema": {
615
+ "type": "object",
616
+ "properties": {
617
+ "id": {
618
+ "type": "string",
619
+ "description": "Ad ID to update"
620
+ },
621
+ "name": {
622
+ "type": "string"
623
+ },
624
+ "status": {
625
+ "type": "string",
626
+ "enum": [
627
+ "ACTIVE",
628
+ "PAUSED"
629
+ ]
630
+ },
631
+ "tracking_url": {
632
+ "type": "string"
633
+ },
634
+ "platform_data": {
635
+ "type": "object"
636
+ }
637
+ },
638
+ "required": [
639
+ "id"
640
+ ]
641
+ }
642
+ },
643
+ {
644
+ "name": "ad_delete",
645
+ "description": "Delete an ad from the platform and locally.",
646
+ "method": "DELETE",
647
+ "path": "/ads/%7B%7Bid%7D%7D",
648
+ "input_schema": {
649
+ "type": "object",
650
+ "properties": {
651
+ "id": {
652
+ "type": "string",
653
+ "description": "Ad ID to delete"
654
+ }
655
+ },
656
+ "required": [
657
+ "id"
658
+ ]
659
+ }
660
+ },
661
+ {
662
+ "name": "creative_list",
663
+ "description": "List ad creatives with optional filtering by ad account or platform.",
664
+ "method": "GET",
665
+ "path": "/creatives",
666
+ "input_schema": {
667
+ "type": "object",
668
+ "properties": {
669
+ "ad_account_id": {
670
+ "type": "string",
671
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
672
+ },
673
+ "platform": {
674
+ "type": "string",
675
+ "enum": [
676
+ "facebook",
677
+ "google",
678
+ "linkedin",
679
+ "pinterest"
680
+ ]
681
+ },
682
+ "limit": {
683
+ "type": "integer",
684
+ "default": 50
685
+ },
686
+ "offset": {
687
+ "type": "integer",
688
+ "default": 0
689
+ }
690
+ }
691
+ }
692
+ },
693
+ {
694
+ "name": "creative_create",
695
+ "description": "Create a new ad creative with headline, body text, call to action, destination URL, and media (image or video).",
696
+ "method": "POST",
697
+ "path": "/creatives",
698
+ "input_schema": {
699
+ "type": "object",
700
+ "properties": {
701
+ "ad_account_id": {
702
+ "type": "string",
703
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
704
+ },
705
+ "name": {
706
+ "type": "string",
707
+ "description": "Creative name"
708
+ },
709
+ "creative_type": {
710
+ "type": "string",
711
+ "enum": [
712
+ "IMAGE",
713
+ "VIDEO",
714
+ "CAROUSEL"
715
+ ],
716
+ "description": "Creative type"
717
+ },
718
+ "headline": {
719
+ "type": "string",
720
+ "description": "Ad headline"
721
+ },
722
+ "body_text": {
723
+ "type": "string",
724
+ "description": "Ad body text"
725
+ },
726
+ "call_to_action": {
727
+ "type": "string",
728
+ "description": "CTA (e.g. LEARN_MORE, SIGN_UP, SHOP_NOW)"
729
+ },
730
+ "destination_url": {
731
+ "type": "string",
732
+ "description": "Landing page URL"
733
+ },
734
+ "image_url": {
735
+ "type": "string",
736
+ "description": "Image URL (for IMAGE type)"
737
+ },
738
+ "video_id": {
739
+ "type": "string",
740
+ "description": "Video asset ID (for VIDEO type)"
741
+ },
742
+ "platform_data": {
743
+ "type": "object",
744
+ "description": "Platform-specific creative settings"
745
+ }
746
+ },
747
+ "required": [
748
+ "ad_account_id",
749
+ "name",
750
+ "creative_type"
751
+ ]
752
+ }
753
+ },
754
+ {
755
+ "name": "creative_delete",
756
+ "description": "Delete an ad creative.",
757
+ "method": "DELETE",
758
+ "path": "/creatives/%7B%7Bid%7D%7D",
759
+ "input_schema": {
760
+ "type": "object",
761
+ "properties": {
762
+ "id": {
763
+ "type": "string",
764
+ "description": "Creative ID to delete"
765
+ }
766
+ },
767
+ "required": [
768
+ "id"
769
+ ]
770
+ }
771
+ },
772
+ {
773
+ "name": "audience_list",
774
+ "description": "List custom audiences and lookalikes across platforms.",
775
+ "method": "GET",
776
+ "path": "/audiences",
777
+ "input_schema": {
778
+ "type": "object",
779
+ "properties": {
780
+ "ad_account_id": {
781
+ "type": "string",
782
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
783
+ },
784
+ "platform": {
785
+ "type": "string",
786
+ "enum": [
787
+ "facebook",
788
+ "google",
789
+ "linkedin",
790
+ "pinterest"
791
+ ]
792
+ },
793
+ "audience_type": {
794
+ "type": "string",
795
+ "enum": [
796
+ "CUSTOM",
797
+ "LOOKALIKE",
798
+ "SAVED"
799
+ ],
800
+ "description": "Filter by audience type"
801
+ },
802
+ "limit": {
803
+ "type": "integer",
804
+ "default": 50
805
+ },
806
+ "offset": {
807
+ "type": "integer",
808
+ "default": 0
809
+ }
810
+ }
811
+ }
812
+ },
813
+ {
814
+ "name": "audience_create",
815
+ "description": "Create a custom audience or lookalike on the platform.",
816
+ "method": "POST",
817
+ "path": "/audiences",
818
+ "input_schema": {
819
+ "type": "object",
820
+ "properties": {
821
+ "ad_account_id": {
822
+ "type": "string",
823
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
824
+ },
825
+ "name": {
826
+ "type": "string",
827
+ "description": "Audience name"
828
+ },
829
+ "audience_type": {
830
+ "type": "string",
831
+ "enum": [
832
+ "CUSTOM",
833
+ "LOOKALIKE",
834
+ "SAVED"
835
+ ]
836
+ },
837
+ "description": {
838
+ "type": "string",
839
+ "description": "Audience description"
840
+ },
841
+ "source_audience_id": {
842
+ "type": "string",
843
+ "description": "Source audience ID (for lookalikes)"
844
+ },
845
+ "rules": {
846
+ "type": "object",
847
+ "description": "Audience rules/criteria"
848
+ },
849
+ "platform_data": {
850
+ "type": "object",
851
+ "description": "Platform-specific audience settings"
852
+ }
853
+ },
854
+ "required": [
855
+ "ad_account_id",
856
+ "name",
857
+ "audience_type"
858
+ ]
859
+ }
860
+ },
861
+ {
862
+ "name": "audience_delete",
863
+ "description": "Delete an audience from the platform and locally.",
864
+ "method": "DELETE",
865
+ "path": "/audiences/%7B%7Bid%7D%7D",
866
+ "input_schema": {
867
+ "type": "object",
868
+ "properties": {
869
+ "id": {
870
+ "type": "string",
871
+ "description": "Audience ID to delete"
872
+ }
873
+ },
874
+ "required": [
875
+ "id"
876
+ ]
877
+ }
878
+ },
879
+ {
880
+ "name": "performance_get",
881
+ "description": "Get performance metrics (impressions, clicks, spend, conversions, ROAS, CTR, CPC, CPM) for campaigns, ad groups, or ads over a date range.",
882
+ "method": "GET",
883
+ "path": "/performance",
884
+ "input_schema": {
885
+ "type": "object",
886
+ "properties": {
887
+ "entity_type": {
888
+ "type": "string",
889
+ "enum": [
890
+ "campaign",
891
+ "adgroup",
892
+ "ad"
893
+ ],
894
+ "description": "Type of entity to get performance for"
895
+ },
896
+ "entity_id": {
897
+ "type": "string",
898
+ "description": "Specific entity ID"
899
+ },
900
+ "ad_account_id": {
901
+ "type": "string",
902
+ "description": "Filter by ad account"
903
+ },
904
+ "platform": {
905
+ "type": "string",
906
+ "enum": [
907
+ "facebook",
908
+ "google",
909
+ "linkedin",
910
+ "pinterest"
911
+ ]
912
+ },
913
+ "start_date": {
914
+ "type": "string",
915
+ "description": "Start date (YYYY-MM-DD)"
916
+ },
917
+ "end_date": {
918
+ "type": "string",
919
+ "description": "End date (YYYY-MM-DD)"
920
+ },
921
+ "limit": {
922
+ "type": "integer",
923
+ "default": 100
924
+ }
925
+ }
926
+ }
927
+ },
928
+ {
929
+ "name": "performance_sync",
930
+ "description": "Pull latest performance metrics from the ad platform for a specific ad account and date range.",
931
+ "method": "POST",
932
+ "path": "/performance/sync",
933
+ "input_schema": {
934
+ "type": "object",
935
+ "properties": {
936
+ "ad_account_id": {
937
+ "type": "string",
938
+ "description": "Ad account ID to sync performance for"
939
+ },
940
+ "start_date": {
941
+ "type": "string",
942
+ "description": "Start date (YYYY-MM-DD)"
943
+ },
944
+ "end_date": {
945
+ "type": "string",
946
+ "description": "End date (YYYY-MM-DD)"
947
+ }
948
+ },
949
+ "required": [
950
+ "ad_account_id"
951
+ ]
952
+ }
953
+ },
954
+ {
955
+ "name": "asset_list",
956
+ "description": "List uploaded media assets (images, videos) for an ad account.",
957
+ "method": "GET",
958
+ "path": "/assets",
959
+ "input_schema": {
960
+ "type": "object",
961
+ "properties": {
962
+ "ad_account_id": {
963
+ "type": "string",
964
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
965
+ },
966
+ "platform": {
967
+ "type": "string",
968
+ "enum": [
969
+ "facebook",
970
+ "google",
971
+ "linkedin",
972
+ "pinterest"
973
+ ]
974
+ },
975
+ "asset_type": {
976
+ "type": "string",
977
+ "enum": [
978
+ "IMAGE",
979
+ "VIDEO"
980
+ ],
981
+ "description": "Filter by asset type"
982
+ },
983
+ "limit": {
984
+ "type": "integer",
985
+ "default": 50
986
+ },
987
+ "offset": {
988
+ "type": "integer",
989
+ "default": 0
990
+ }
991
+ }
992
+ }
993
+ },
994
+ {
995
+ "name": "asset_upload",
996
+ "description": "Upload an image or video asset to an ad account for use in creatives.",
997
+ "method": "POST",
998
+ "path": "/assets/upload",
999
+ "input_schema": {
1000
+ "type": "object",
1001
+ "properties": {
1002
+ "ad_account_id": {
1003
+ "type": "string",
1004
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
1005
+ },
1006
+ "name": {
1007
+ "type": "string",
1008
+ "description": "Asset name"
1009
+ },
1010
+ "asset_type": {
1011
+ "type": "string",
1012
+ "enum": [
1013
+ "IMAGE",
1014
+ "VIDEO"
1015
+ ]
1016
+ },
1017
+ "source_url": {
1018
+ "type": "string",
1019
+ "description": "URL of the image/video to upload"
1020
+ },
1021
+ "file_id": {
1022
+ "type": "string",
1023
+ "description": "Storage file ID (alternative to source_url)"
1024
+ }
1025
+ },
1026
+ "required": [
1027
+ "ad_account_id",
1028
+ "name",
1029
+ "asset_type"
1030
+ ]
1031
+ }
1032
+ },
1033
+ {
1034
+ "name": "conversion_list",
1035
+ "description": "List conversion actions (tracking goals) for an ad account. Shows what conversions are being tracked — e.g. YouTube subscribers, website purchases, leads, app installs.",
1036
+ "method": "GET",
1037
+ "path": "/conversions",
1038
+ "input_schema": {
1039
+ "type": "object",
1040
+ "properties": {
1041
+ "ad_account_id": {
1042
+ "type": "string",
1043
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
1044
+ },
1045
+ "platform": {
1046
+ "type": "string",
1047
+ "enum": [
1048
+ "facebook",
1049
+ "google",
1050
+ "linkedin",
1051
+ "pinterest"
1052
+ ]
1053
+ },
1054
+ "status": {
1055
+ "type": "string",
1056
+ "enum": [
1057
+ "ENABLED",
1058
+ "HIDDEN",
1059
+ "REMOVED"
1060
+ ]
1061
+ },
1062
+ "limit": {
1063
+ "type": "integer",
1064
+ "default": 50
1065
+ },
1066
+ "offset": {
1067
+ "type": "integer",
1068
+ "default": 0
1069
+ }
1070
+ }
1071
+ }
1072
+ },
1073
+ {
1074
+ "name": "conversion_create",
1075
+ "description": "Create a conversion tracking action on the ad platform. For Google Ads: creates a ConversionAction (e.g. YOUTUBE_SUBSCRIBE for subscriber tracking, WEBPAGE for website purchases, UPLOAD for offline conversions). For Facebook: creates a tracking pixel. The conversion action must exist before campaigns can report conversions.",
1076
+ "method": "POST",
1077
+ "path": "/conversions",
1078
+ "input_schema": {
1079
+ "type": "object",
1080
+ "properties": {
1081
+ "ad_account_id": {
1082
+ "type": "string",
1083
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
1084
+ },
1085
+ "name": {
1086
+ "type": "string",
1087
+ "description": "Conversion action name (e.g. 'YouTube Subscribers', 'Website Purchase', 'Lead Form Submit')"
1088
+ },
1089
+ "type": {
1090
+ "type": "string",
1091
+ "enum": [
1092
+ "WEBPAGE",
1093
+ "UPLOAD",
1094
+ "CLICK_TO_CALL",
1095
+ "AD_CALL",
1096
+ "YOUTUBE_SUBSCRIBE",
1097
+ "YOUTUBE_VIEW",
1098
+ "STORE_VISIT",
1099
+ "IMPORT_FROM_GOOGLE_ANALYTICS_4"
1100
+ ],
1101
+ "description": "Google Ads conversion type. Use YOUTUBE_SUBSCRIBE for YouTube subscriber campaigns, WEBPAGE for website conversions, UPLOAD for offline/imported conversions"
1102
+ },
1103
+ "category": {
1104
+ "type": "string",
1105
+ "enum": [
1106
+ "DEFAULT",
1107
+ "PURCHASE",
1108
+ "SUBSCRIBE",
1109
+ "LEAD",
1110
+ "SIGN_UP",
1111
+ "ADD_TO_CART",
1112
+ "PAGE_VIEW",
1113
+ "DOWNLOAD",
1114
+ "OTHER"
1115
+ ],
1116
+ "description": "Conversion category for reporting"
1117
+ },
1118
+ "counting_type": {
1119
+ "type": "string",
1120
+ "enum": [
1121
+ "ONE_PER_CLICK",
1122
+ "MANY_PER_CLICK"
1123
+ ],
1124
+ "description": "ONE_PER_CLICK for unique conversions (leads, subscribers), MANY_PER_CLICK for repeatable (purchases)"
1125
+ },
1126
+ "default_value": {
1127
+ "type": "number",
1128
+ "description": "Default monetary value per conversion (e.g. 5.00 for $5 per subscriber)"
1129
+ },
1130
+ "currency_code": {
1131
+ "type": "string",
1132
+ "description": "Currency for conversion value (e.g. USD, EUR)"
1133
+ },
1134
+ "attribution_window_days": {
1135
+ "type": "integer",
1136
+ "description": "Click-through attribution window in days (1-90, default 30)"
1137
+ }
1138
+ },
1139
+ "required": [
1140
+ "ad_account_id",
1141
+ "name"
1142
+ ]
1143
+ }
1144
+ },
1145
+ {
1146
+ "name": "conversion_delete",
1147
+ "description": "Remove a conversion action. This stops tracking for that conversion type.",
1148
+ "method": "DELETE",
1149
+ "path": "/conversions/%7B%7Bid%7D%7D",
1150
+ "input_schema": {
1151
+ "type": "object",
1152
+ "properties": {
1153
+ "id": {
1154
+ "type": "string",
1155
+ "description": "Conversion action ID to delete"
1156
+ }
1157
+ },
1158
+ "required": [
1159
+ "id"
1160
+ ]
1161
+ }
1162
+ },
1163
+ {
1164
+ "name": "conversion_sync",
1165
+ "description": "Pull conversion actions from the ad platform into PaidKit. Use this to import existing conversion actions that were created directly on the platform (e.g. via Google Ads UI).",
1166
+ "method": "POST",
1167
+ "path": "/conversions/sync",
1168
+ "input_schema": {
1169
+ "type": "object",
1170
+ "properties": {
1171
+ "ad_account_id": {
1172
+ "type": "string",
1173
+ "description": "PaidKit ad account ID to sync conversion actions for"
1174
+ }
1175
+ },
1176
+ "required": [
1177
+ "ad_account_id"
1178
+ ]
1179
+ }
1180
+ },
1181
+ {
1182
+ "name": "page_list",
1183
+ "description": "List pages/profiles linked to an ad account. Returns Facebook Pages, LinkedIn Company Pages, etc. depending on the account's platform. Use this to find page IDs needed for ad creation (e.g. PAGE_LIKES campaigns require a page_id).",
1184
+ "method": "GET",
1185
+ "path": "/accounts/%7B%7Bad_account_id%7D%7D/pages",
1186
+ "input_schema": {
1187
+ "type": "object",
1188
+ "properties": {
1189
+ "ad_account_id": {
1190
+ "type": "string",
1191
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
1192
+ }
1193
+ },
1194
+ "required": [
1195
+ "ad_account_id"
1196
+ ]
1197
+ }
1198
+ },
1199
+ {
1200
+ "name": "pixel_list",
1201
+ "description": "List tracking pixels/tags for an ad account. Returns Meta Pixels for Facebook accounts, LinkedIn Insight Tags for LinkedIn accounts, etc. Use this to find pixel IDs for conversion tracking setup.",
1202
+ "method": "GET",
1203
+ "path": "/accounts/%7B%7Bad_account_id%7D%7D/pixels",
1204
+ "input_schema": {
1205
+ "type": "object",
1206
+ "properties": {
1207
+ "ad_account_id": {
1208
+ "type": "string",
1209
+ "description": "PaidKit ad account ID (from paidkit-account-list)"
1210
+ }
1211
+ },
1212
+ "required": [
1213
+ "ad_account_id"
1214
+ ]
1215
+ }
1216
+ }
1217
+ ]
1218
+ }