@hostinger/mcp 3.3.1 → 3.4.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.
@@ -2168,6 +2168,90 @@ const tools: OpenApiTool[] = [
2168
2168
  ],
2169
2169
  "group": "reach"
2170
2170
  },
2171
+ {
2172
+ "name": "reach_forms_update",
2173
+ "title": "Update form",
2174
+ "annotations": {
2175
+ "title": "Update form",
2176
+ "readOnlyHint": false,
2177
+ "destructiveHint": true,
2178
+ "idempotentHint": true
2179
+ },
2180
+ "description": "Rename a form and/or change its status.\n\nSetting a `draft` or `paused` form to `active` takes it live: its latest saved design is published\nand visitors can submit it. `paused` and `draft` stop the form from accepting submissions. A form is\nnot reachable by visitors until it is taken live. Design changes saved while the form is already\n`active` stay unpublished until the form is paused and set to `active` again. Renaming does not rename\nthe automatic `form:{name}` tag.",
2181
+ "method": "PATCH",
2182
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
2183
+ "inputSchema": {
2184
+ "type": "object",
2185
+ "properties": {
2186
+ "profileUuid": {
2187
+ "type": "string",
2188
+ "description": "Profile uuid parameter"
2189
+ },
2190
+ "formUuid": {
2191
+ "type": "string",
2192
+ "description": "Form uuid parameter"
2193
+ },
2194
+ "name": {
2195
+ "type": "string",
2196
+ "description": "Form name. Letters, digits, spaces and - . ' _ only."
2197
+ },
2198
+ "status": {
2199
+ "type": "string",
2200
+ "description": "`active` takes the form live, `paused` and `draft` stop it accepting submissions.",
2201
+ "enum": [
2202
+ "active",
2203
+ "paused",
2204
+ "draft"
2205
+ ]
2206
+ }
2207
+ },
2208
+ "required": [
2209
+ "profileUuid",
2210
+ "formUuid"
2211
+ ]
2212
+ },
2213
+ "security": [
2214
+ {
2215
+ "apiToken": []
2216
+ }
2217
+ ],
2218
+ "group": "reach"
2219
+ },
2220
+ {
2221
+ "name": "reach_forms_duplicate",
2222
+ "title": "Duplicate form",
2223
+ "annotations": {
2224
+ "title": "Duplicate form",
2225
+ "readOnlyHint": false,
2226
+ "destructiveHint": false
2227
+ },
2228
+ "description": "Copy a form into a new draft form with the same name and design.\n\nThe copy shares the source's automatic `form:{name}` tag; other submitter tags are not copied. The\ncopy is not live until its status is set to `active`.",
2229
+ "method": "POST",
2230
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/duplicate",
2231
+ "inputSchema": {
2232
+ "type": "object",
2233
+ "properties": {
2234
+ "profileUuid": {
2235
+ "type": "string",
2236
+ "description": "Profile uuid parameter"
2237
+ },
2238
+ "formUuid": {
2239
+ "type": "string",
2240
+ "description": "Form uuid parameter"
2241
+ }
2242
+ },
2243
+ "required": [
2244
+ "profileUuid",
2245
+ "formUuid"
2246
+ ]
2247
+ },
2248
+ "security": [
2249
+ {
2250
+ "apiToken": []
2251
+ }
2252
+ ],
2253
+ "group": "reach"
2254
+ },
2171
2255
  {
2172
2256
  "name": "reach_forms_list",
2173
2257
  "title": "List forms",
@@ -2193,6 +2277,15 @@ const tools: OpenApiTool[] = [
2193
2277
  "per_page": {
2194
2278
  "type": "integer",
2195
2279
  "description": "Number of items per page"
2280
+ },
2281
+ "status": {
2282
+ "type": "string",
2283
+ "description": "Return only forms with this status.",
2284
+ "enum": [
2285
+ "active",
2286
+ "paused",
2287
+ "draft"
2288
+ ]
2196
2289
  }
2197
2290
  },
2198
2291
  "required": [
@@ -2206,6 +2299,162 @@ const tools: OpenApiTool[] = [
2206
2299
  ],
2207
2300
  "group": "reach"
2208
2301
  },
2302
+ {
2303
+ "name": "reach_forms_create",
2304
+ "title": "Create form",
2305
+ "annotations": {
2306
+ "title": "Create form",
2307
+ "readOnlyHint": false,
2308
+ "destructiveHint": false
2309
+ },
2310
+ "description": "Create an empty draft form.\n\nReach also adds an automatic `form:{name}` tag that every submitter receives. A draft has no design\nand is not reachable by visitors: save a design with the update form template operation, then take\nthe form live by setting its status to `active`. Creating a form does not consume AI credits.",
2311
+ "method": "POST",
2312
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms",
2313
+ "inputSchema": {
2314
+ "type": "object",
2315
+ "properties": {
2316
+ "profileUuid": {
2317
+ "type": "string",
2318
+ "description": "Profile uuid parameter"
2319
+ },
2320
+ "name": {
2321
+ "type": "string",
2322
+ "description": "Form name. Letters, digits, spaces and - . ' _ only."
2323
+ }
2324
+ },
2325
+ "required": [
2326
+ "profileUuid",
2327
+ "name"
2328
+ ]
2329
+ },
2330
+ "security": [
2331
+ {
2332
+ "apiToken": []
2333
+ }
2334
+ ],
2335
+ "group": "reach"
2336
+ },
2337
+ {
2338
+ "name": "reach_forms_add-submitter-tags",
2339
+ "title": "Add form submitter tags",
2340
+ "annotations": {
2341
+ "title": "Add form submitter tags",
2342
+ "readOnlyHint": false,
2343
+ "destructiveHint": false
2344
+ },
2345
+ "description": "Add tags to a form so that every contact who submits it from now on receives them.\n\nA tag the form already has is skipped; an unknown tag is rejected. Contacts who submitted earlier are\nnot tagged.",
2346
+ "method": "POST",
2347
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/tags",
2348
+ "inputSchema": {
2349
+ "type": "object",
2350
+ "properties": {
2351
+ "profileUuid": {
2352
+ "type": "string",
2353
+ "description": "Profile uuid parameter"
2354
+ },
2355
+ "formUuid": {
2356
+ "type": "string",
2357
+ "description": "Form uuid parameter"
2358
+ },
2359
+ "tag_uuids": {
2360
+ "type": "array",
2361
+ "description": "tag_uuids parameter",
2362
+ "items": {
2363
+ "type": "string",
2364
+ "description": "tag_uuids parameter"
2365
+ }
2366
+ }
2367
+ },
2368
+ "required": [
2369
+ "profileUuid",
2370
+ "formUuid",
2371
+ "tag_uuids"
2372
+ ]
2373
+ },
2374
+ "security": [
2375
+ {
2376
+ "apiToken": []
2377
+ }
2378
+ ],
2379
+ "group": "reach"
2380
+ },
2381
+ {
2382
+ "name": "reach_forms_remove-submitter-tag",
2383
+ "title": "Remove form submitter tag",
2384
+ "annotations": {
2385
+ "title": "Remove form submitter tag",
2386
+ "readOnlyHint": false,
2387
+ "destructiveHint": true,
2388
+ "idempotentHint": true
2389
+ },
2390
+ "description": "Stop a form from applying a tag to its future submitters.\n\nSucceeds also when the form did not have the tag. Contacts who already received the tag keep it, and\nthe tag itself is not deleted. The automatic `form:{name}` tag cannot be removed and is rejected with\na conflict.",
2391
+ "method": "DELETE",
2392
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/tags",
2393
+ "inputSchema": {
2394
+ "type": "object",
2395
+ "properties": {
2396
+ "profileUuid": {
2397
+ "type": "string",
2398
+ "description": "Profile uuid parameter"
2399
+ },
2400
+ "formUuid": {
2401
+ "type": "string",
2402
+ "description": "Form uuid parameter"
2403
+ }
2404
+ },
2405
+ "required": [
2406
+ "profileUuid",
2407
+ "formUuid"
2408
+ ]
2409
+ },
2410
+ "security": [
2411
+ {
2412
+ "apiToken": []
2413
+ }
2414
+ ],
2415
+ "group": "reach"
2416
+ },
2417
+ {
2418
+ "name": "reach_forms_update-template",
2419
+ "title": "Update form template",
2420
+ "annotations": {
2421
+ "title": "Update form template",
2422
+ "readOnlyHint": false,
2423
+ "destructiveHint": true,
2424
+ "idempotentHint": true
2425
+ },
2426
+ "description": "Save `content` as the latest design of a form and return the stored version.\n\nThe HTML is sanitized and, unless the plan allows removing it, the Reach signature is added. Visitors\nsubmit the form with an `email` field (required) and optional `name`, `surname` and `phone`. After\nsanitizing, the design must contain a form container (`data-reach-form`), an email input\n(`data-reach-field=\"email\"`) and a submit button (`data-reach-submit`); otherwise the request fails\nwith `422` and `errors.content` lists `missing_form_container`, `missing_email_field` and/or\n`missing_submit_button`.\n\nA `draft` or `paused` form stays unreachable until its status is set to `active`, which publishes this\ndesign. On a form that is already `active` the saved design is not public until the form is paused and\nset to `active` again. Saving a design does not consume AI credits.",
2427
+ "method": "PATCH",
2428
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/template",
2429
+ "inputSchema": {
2430
+ "type": "object",
2431
+ "properties": {
2432
+ "profileUuid": {
2433
+ "type": "string",
2434
+ "description": "Profile uuid parameter"
2435
+ },
2436
+ "formUuid": {
2437
+ "type": "string",
2438
+ "description": "Form uuid parameter"
2439
+ },
2440
+ "content": {
2441
+ "type": "string",
2442
+ "description": "HTML of the form design. After sanitizing it must still contain a form container\n(`data-reach-form`), an email input (`data-reach-field=\"email\"`) and a submit button\n(`data-reach-submit`)."
2443
+ }
2444
+ },
2445
+ "required": [
2446
+ "profileUuid",
2447
+ "formUuid",
2448
+ "content"
2449
+ ]
2450
+ },
2451
+ "security": [
2452
+ {
2453
+ "apiToken": []
2454
+ }
2455
+ ],
2456
+ "group": "reach"
2457
+ },
2209
2458
  {
2210
2459
  "name": "reach_profiles_connected-sending-domain",
2211
2460
  "title": "Get connected sending domain",
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
  import instructions from '../core/instructions.agency-hosting.js';
6
6
 
7
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.3.1', tools, instructions });
7
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.4.1', tools, instructions });
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
  import instructions from '../core/instructions.agency-hosting.js';
6
6
 
7
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.3.1', tools, instructions });
7
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.4.1', tools, instructions });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agent-readiness.js';
5
5
 
6
- startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agent-readiness.js';
5
5
 
6
- startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.4.1', tools });
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
5
5
  import instructions from '../core/instructions.js';
6
6
  import skills from '../core/skills.js';
7
7
 
8
- startServer({ name: 'hostinger-api-mcp', version: '3.3.1', tools, instructions, skills });
8
+ startServer({ name: 'hostinger-api-mcp', version: '3.4.1', tools, instructions, skills });
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
5
5
  import instructions from '../core/instructions.js';
6
6
  import skills from '../core/skills.js';
7
7
 
8
- startServer({ name: 'hostinger-api-mcp', version: '3.3.1', tools, instructions, skills });
8
+ startServer({ name: 'hostinger-api-mcp', version: '3.4.1', tools, instructions, skills });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '3.4.1', tools });
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
  import instructions from '../core/instructions.js';
6
6
 
7
- startServer({ name: 'hostinger-hosting-mcp', version: '3.3.1', tools, instructions });
7
+ startServer({ name: 'hostinger-hosting-mcp', version: '3.4.1', tools, instructions });
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
  import instructions from '../core/instructions.js';
6
6
 
7
- startServer({ name: 'hostinger-hosting-mcp', version: '3.3.1', tools, instructions });
7
+ startServer({ name: 'hostinger-hosting-mcp', version: '3.4.1', tools, instructions });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '3.4.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '3.3.1', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '3.4.1', tools });
package/types.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  export interface APITools {
7
7
  /**
8
- * Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.
8
+ * Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. For a plugin or theme on a headless WordPress (installed in the cms folder), pass headless: true. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.
9
9
  */
10
10
  "hosting_deploy": {
11
11
  params: {
@@ -33,6 +33,10 @@ export interface APITools {
33
33
  * Activate the theme after deployment (WordPress themes only, default: false)
34
34
  */
35
35
  activate?: boolean;
36
+ /**
37
+ * The site runs headless WordPress, installed in the cms folder of the document root: the plugin or theme is uploaded to cms/wp-content/plugins or cms/wp-content/themes and installed there (wordpress-plugin and wordpress-theme only, default: false)
38
+ */
39
+ headless?: boolean;
36
40
  /**
37
41
  * Path to a .sql dump; required for a WordPress site import
38
42
  */
@@ -7738,6 +7742,57 @@ do not block deletion.
7738
7742
  response: any; // Response structure will depend on the API
7739
7743
  };
7740
7744
 
7745
+ /**
7746
+ * Rename a form and/or change its status.
7747
+
7748
+ Setting a `draft` or `paused` form to `active` takes it live: its latest saved design is published
7749
+ and visitors can submit it. `paused` and `draft` stop the form from accepting submissions. A form is
7750
+ not reachable by visitors until it is taken live. Design changes saved while the form is already
7751
+ `active` stay unpublished until the form is paused and set to `active` again. Renaming does not rename
7752
+ the automatic `form:{name}` tag.
7753
+ */
7754
+ "reach_forms_update": {
7755
+ params: {
7756
+ /**
7757
+ * Profile uuid parameter
7758
+ */
7759
+ profileUuid: string;
7760
+ /**
7761
+ * Form uuid parameter
7762
+ */
7763
+ formUuid: string;
7764
+ /**
7765
+ * Form name. Letters, digits, spaces and - . ' _ only.
7766
+ */
7767
+ name?: string;
7768
+ /**
7769
+ * `active` takes the form live, `paused` and `draft` stop it accepting submissions.
7770
+ */
7771
+ status?: string;
7772
+ };
7773
+ response: any; // Response structure will depend on the API
7774
+ };
7775
+
7776
+ /**
7777
+ * Copy a form into a new draft form with the same name and design.
7778
+
7779
+ The copy shares the source's automatic `form:{name}` tag; other submitter tags are not copied. The
7780
+ copy is not live until its status is set to `active`.
7781
+ */
7782
+ "reach_forms_duplicate": {
7783
+ params: {
7784
+ /**
7785
+ * Profile uuid parameter
7786
+ */
7787
+ profileUuid: string;
7788
+ /**
7789
+ * Form uuid parameter
7790
+ */
7791
+ formUuid: string;
7792
+ };
7793
+ response: any; // Response structure will depend on the API
7794
+ };
7795
+
7741
7796
  /**
7742
7797
  * Get a paginated list of the signup forms in a profile.
7743
7798
 
@@ -7758,6 +7813,110 @@ directly usable template URL and for the tags the form puts on the contacts it c
7758
7813
  * Number of items per page
7759
7814
  */
7760
7815
  per_page?: number;
7816
+ /**
7817
+ * Return only forms with this status.
7818
+ */
7819
+ status?: string;
7820
+ };
7821
+ response: any; // Response structure will depend on the API
7822
+ };
7823
+
7824
+ /**
7825
+ * Create an empty draft form.
7826
+
7827
+ Reach also adds an automatic `form:{name}` tag that every submitter receives. A draft has no design
7828
+ and is not reachable by visitors: save a design with the update form template operation, then take
7829
+ the form live by setting its status to `active`. Creating a form does not consume AI credits.
7830
+ */
7831
+ "reach_forms_create": {
7832
+ params: {
7833
+ /**
7834
+ * Profile uuid parameter
7835
+ */
7836
+ profileUuid: string;
7837
+ /**
7838
+ * Form name. Letters, digits, spaces and - . ' _ only.
7839
+ */
7840
+ name: string;
7841
+ };
7842
+ response: any; // Response structure will depend on the API
7843
+ };
7844
+
7845
+ /**
7846
+ * Add tags to a form so that every contact who submits it from now on receives them.
7847
+
7848
+ A tag the form already has is skipped; an unknown tag is rejected. Contacts who submitted earlier are
7849
+ not tagged.
7850
+ */
7851
+ "reach_forms_add-submitter-tags": {
7852
+ params: {
7853
+ /**
7854
+ * Profile uuid parameter
7855
+ */
7856
+ profileUuid: string;
7857
+ /**
7858
+ * Form uuid parameter
7859
+ */
7860
+ formUuid: string;
7861
+ /**
7862
+ * tag_uuids parameter
7863
+ */
7864
+ tag_uuids: array;
7865
+ };
7866
+ response: any; // Response structure will depend on the API
7867
+ };
7868
+
7869
+ /**
7870
+ * Stop a form from applying a tag to its future submitters.
7871
+
7872
+ Succeeds also when the form did not have the tag. Contacts who already received the tag keep it, and
7873
+ the tag itself is not deleted. The automatic `form:{name}` tag cannot be removed and is rejected with
7874
+ a conflict.
7875
+ */
7876
+ "reach_forms_remove-submitter-tag": {
7877
+ params: {
7878
+ /**
7879
+ * Profile uuid parameter
7880
+ */
7881
+ profileUuid: string;
7882
+ /**
7883
+ * Form uuid parameter
7884
+ */
7885
+ formUuid: string;
7886
+ };
7887
+ response: any; // Response structure will depend on the API
7888
+ };
7889
+
7890
+ /**
7891
+ * Save `content` as the latest design of a form and return the stored version.
7892
+
7893
+ The HTML is sanitized and, unless the plan allows removing it, the Reach signature is added. Visitors
7894
+ submit the form with an `email` field (required) and optional `name`, `surname` and `phone`. After
7895
+ sanitizing, the design must contain a form container (`data-reach-form`), an email input
7896
+ (`data-reach-field="email"`) and a submit button (`data-reach-submit`); otherwise the request fails
7897
+ with `422` and `errors.content` lists `missing_form_container`, `missing_email_field` and/or
7898
+ `missing_submit_button`.
7899
+
7900
+ A `draft` or `paused` form stays unreachable until its status is set to `active`, which publishes this
7901
+ design. On a form that is already `active` the saved design is not public until the form is paused and
7902
+ set to `active` again. Saving a design does not consume AI credits.
7903
+ */
7904
+ "reach_forms_update-template": {
7905
+ params: {
7906
+ /**
7907
+ * Profile uuid parameter
7908
+ */
7909
+ profileUuid: string;
7910
+ /**
7911
+ * Form uuid parameter
7912
+ */
7913
+ formUuid: string;
7914
+ /**
7915
+ * HTML of the form design. After sanitizing it must still contain a form container
7916
+ (`data-reach-form`), an email input (`data-reach-field="email"`) and a submit button
7917
+ (`data-reach-submit`).
7918
+ */
7919
+ content: string;
7761
7920
  };
7762
7921
  response: any; // Response structure will depend on the API
7763
7922
  };