hostinger-api-mcp 1.45.4 → 1.46.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.
package/README.md CHANGED
@@ -69,7 +69,7 @@ pnpm update -g hostinger-api-mcp
69
69
 
70
70
  This package installs the following MCP server commands:
71
71
 
72
- - `hostinger-api-mcp` — unified server with every tool (365 total)
72
+ - `hostinger-api-mcp` — unified server with every tool (369 total)
73
73
  - `hostinger-agency-hosting-mcp` — 38 tools for agency-hosting
74
74
  - `hostinger-billing-mcp` — 9 tools for billing
75
75
  - `hostinger-dns-mcp` — 8 tools for dns
@@ -78,7 +78,7 @@ This package installs the following MCP server commands:
78
78
  - `hostinger-horizons-mcp` — 2 tools for horizons
79
79
  - `hostinger-hosting-mcp` — 56 tools for hosting
80
80
  - `hostinger-mail-mcp` — 38 tools for mail
81
- - `hostinger-reach-mcp` — 45 tools for reach
81
+ - `hostinger-reach-mcp` — 49 tools for reach
82
82
  - `hostinger-vps-mcp` — 62 tools for vps
83
83
  - `hostinger-wordpress-mcp` — 38 tools for wordpress
84
84
 
@@ -2872,6 +2872,34 @@ Only the segment definition is removed. The contacts that matched it are left un
2872
2872
  - **Method**: `DELETE`
2873
2873
  - **Path**: `/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}`
2874
2874
 
2875
+ #### reach_listSegmentFilterAttributesV1
2876
+
2877
+ List every attribute a segment condition can filter on, with the operators each attribute
2878
+ accepts, the value format they expect and, where the value is constrained, the allowed
2879
+ values.
2880
+
2881
+ The list is profile specific: it includes the profile's custom contact fields, its tags and
2882
+ its 20 most recently published campaigns, so the valid attributes cannot be hardcoded. Read
2883
+ it before creating or updating a segment to discover the valid `attribute`, `operator` and
2884
+ `value` combinations.
2885
+
2886
+ - **Method**: `GET`
2887
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/segmentation/filters/attributes`
2888
+
2889
+ #### reach_previewContactsMatchingConditionsV1
2890
+
2891
+ Preview the contacts matching a set of conditions without saving a segment.
2892
+
2893
+ The body is the same set of conditions accepted when creating or updating a segment, so this
2894
+ is how to check who a filter reaches, and how many, before persisting it. Nothing is stored
2895
+ and no contact is modified.
2896
+
2897
+ Call the segment filter attributes endpoint first to discover the valid `attribute`,
2898
+ `operator` and `value` combinations.
2899
+
2900
+ - **Method**: `POST`
2901
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/segmentation/filters/contacts`
2902
+
2875
2903
  #### reach_listProfileSegmentsV1
2876
2904
 
2877
2905
  Get a paginated list of the segments defined in a profile.
@@ -3046,6 +3074,33 @@ actual records found and the suggested records required for correct email delive
3046
3074
  - **Method**: `GET`
3047
3075
  - **Path**: `/api/reach/v1/profiles/{profileUuid}/domains/dns-status`
3048
3076
 
3077
+ #### reach_getConnectedSendingDomainV1
3078
+
3079
+ Get the sending domain connected to the profile, its verification status and any suspended
3080
+ sender addresses.
3081
+
3082
+ Campaigns only go out once a domain is connected and active, so this is the cheapest way to
3083
+ check that precondition before building one. A profile with no domain connected returns the
3084
+ same shape with every field set to `null`. For the individual MX, SPF, DKIM and DMARC records
3085
+ behind the status, use the DNS status endpoint.
3086
+
3087
+ - **Method**: `GET`
3088
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/domains`
3089
+
3090
+ #### reach_listPlanFeatureAccessV1
3091
+
3092
+ List which plan features the profile can use.
3093
+
3094
+ This is the feature lock matrix, not a usage quota. `available` means the feature can be
3095
+ used right now and `locked` means it is not part of the base plan, so an upgrade is needed.
3096
+ For remaining emails, recipients and AI credits use the limits endpoint instead.
3097
+
3098
+ Worth checking before building something that cannot be activated afterwards, such as an
3099
+ automation on a plan without automation activation.
3100
+
3101
+ - **Method**: `GET`
3102
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/features`
3103
+
3049
3104
  #### reach_getRemainingPlanLimitsV1
3050
3105
 
3051
3106
  Get how much of the plan is left for the current period.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.45.4",
3
+ "version": "1.46.0",
4
4
  "description": "Hostinger API — manage domains, DNS, hosting, VPS, billing and more from Gemini CLI.",
5
5
  "mcpServers": {
6
6
  "hostinger": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.45.4",
3
+ "version": "1.46.0",
4
4
  "mcpName": "io.github.hostinger/hostinger-api-mcp",
5
5
  "description": "MCP server for Hostinger API",
6
6
  "repository": {
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/hostinger/api-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "1.45.4",
9
+ "version": "1.46.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.45.4",
14
+ "version": "1.46.0",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -29,7 +29,7 @@ const SECURITY_SCHEMES = {
29
29
 
30
30
  /**
31
31
  * MCP Server for Hostinger API
32
- * Generated from OpenAPI spec version 1.42.4
32
+ * Generated from OpenAPI spec version 1.43.0
33
33
  */
34
34
  class MCPServer {
35
35
  constructor({ name, version, tools }) {
@@ -52,7 +52,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
52
52
 
53
53
  /**
54
54
  * MCP Server for Hostinger API
55
- * Generated from OpenAPI spec version 1.42.4
55
+ * Generated from OpenAPI spec version 1.43.0
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -8287,6 +8287,14 @@ export default [
8287
8287
  "note": {
8288
8288
  "type": "string",
8289
8289
  "description": "note parameter"
8290
+ },
8291
+ "tag_uuids": {
8292
+ "type": "array",
8293
+ "description": "Existing tags to attach to the created contact",
8294
+ "items": {
8295
+ "type": "string",
8296
+ "description": "tag_uuids parameter"
8297
+ }
8290
8298
  }
8291
8299
  },
8292
8300
  "required": [
@@ -8593,6 +8601,14 @@ export default [
8593
8601
  "note": {
8594
8602
  "type": "string",
8595
8603
  "description": "note parameter"
8604
+ },
8605
+ "tag_uuids": {
8606
+ "type": "array",
8607
+ "description": "Existing tags to attach to the created contact",
8608
+ "items": {
8609
+ "type": "string",
8610
+ "description": "tag_uuids parameter"
8611
+ }
8596
8612
  }
8597
8613
  },
8598
8614
  "required": [
@@ -8951,6 +8967,150 @@ export default [
8951
8967
  ],
8952
8968
  "group": "reach"
8953
8969
  },
8970
+ {
8971
+ "name": "reach_listSegmentFilterAttributesV1",
8972
+ "description": "List every attribute a segment condition can filter on, with the operators each attribute\naccepts, the value format they expect and, where the value is constrained, the allowed\nvalues.\n\nThe list is profile specific: it includes the profile's custom contact fields, its tags and\nits 20 most recently published campaigns, so the valid attributes cannot be hardcoded. Read\nit before creating or updating a segment to discover the valid `attribute`, `operator` and\n`value` combinations.",
8973
+ "method": "GET",
8974
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/attributes",
8975
+ "inputSchema": {
8976
+ "type": "object",
8977
+ "properties": {
8978
+ "profileUuid": {
8979
+ "type": "string",
8980
+ "description": "Profile uuid parameter"
8981
+ }
8982
+ },
8983
+ "required": [
8984
+ "profileUuid"
8985
+ ]
8986
+ },
8987
+ "security": [
8988
+ {
8989
+ "apiToken": []
8990
+ }
8991
+ ],
8992
+ "group": "reach"
8993
+ },
8994
+ {
8995
+ "name": "reach_previewContactsMatchingConditionsV1",
8996
+ "description": "Preview the contacts matching a set of conditions without saving a segment.\n\nThe body is the same set of conditions accepted when creating or updating a segment, so this\nis how to check who a filter reaches, and how many, before persisting it. Nothing is stored\nand no contact is modified.\n\nCall the segment filter attributes endpoint first to discover the valid `attribute`,\n`operator` and `value` combinations.",
8997
+ "method": "POST",
8998
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/contacts",
8999
+ "inputSchema": {
9000
+ "type": "object",
9001
+ "properties": {
9002
+ "profileUuid": {
9003
+ "type": "string",
9004
+ "description": "Profile uuid parameter"
9005
+ },
9006
+ "conditions": {
9007
+ "type": "array",
9008
+ "description": "Conditions a contact must satisfy to appear in the preview",
9009
+ "items": {
9010
+ "type": "object",
9011
+ "description": "conditions parameter",
9012
+ "properties": {
9013
+ "attribute": {
9014
+ "type": "string",
9015
+ "description": "A built-in contact attribute, or `cf:{fieldUuid}` to target a custom\ncontact field. Which operators are accepted depends on the attribute,\nso read the segment filter attributes endpoint for the authoritative\nlist."
9016
+ },
9017
+ "operator": {
9018
+ "type": "string",
9019
+ "description": "operator parameter",
9020
+ "enum": [
9021
+ "equals",
9022
+ "not_equals",
9023
+ "contains",
9024
+ "not_contains",
9025
+ "gte",
9026
+ "lte",
9027
+ "exists",
9028
+ "within_last_days",
9029
+ "not_within_last_days",
9030
+ "older_than_days",
9031
+ "processed",
9032
+ "not_processed",
9033
+ "delivered",
9034
+ "not_delivered",
9035
+ "dropped",
9036
+ "not_dropped",
9037
+ "bounced",
9038
+ "not_bounced",
9039
+ "soft_bounced",
9040
+ "not_soft_bounced",
9041
+ "opened",
9042
+ "not_opened",
9043
+ "clicked",
9044
+ "not_clicked",
9045
+ "unsubscribed",
9046
+ "not_unsubscribed"
9047
+ ]
9048
+ },
9049
+ "value": {
9050
+ "type": "string",
9051
+ "description": "Always a string, including for numeric and date comparisons"
9052
+ }
9053
+ },
9054
+ "required": [
9055
+ "attribute",
9056
+ "operator",
9057
+ "value"
9058
+ ]
9059
+ }
9060
+ },
9061
+ "logic": {
9062
+ "type": "string",
9063
+ "description": "How to combine multiple conditions",
9064
+ "enum": [
9065
+ "AND",
9066
+ "OR"
9067
+ ]
9068
+ },
9069
+ "page": {
9070
+ "type": "integer",
9071
+ "description": "Page number"
9072
+ },
9073
+ "per_page": {
9074
+ "type": "integer",
9075
+ "description": "Number of items per page"
9076
+ },
9077
+ "search": {
9078
+ "type": "string",
9079
+ "description": "Narrow the preview to contacts whose email matches"
9080
+ },
9081
+ "sort_by": {
9082
+ "type": "string",
9083
+ "description": "sort_by parameter",
9084
+ "enum": [
9085
+ "email",
9086
+ "name",
9087
+ "surname",
9088
+ "phone",
9089
+ "subscription_status"
9090
+ ]
9091
+ },
9092
+ "sort_direction": {
9093
+ "type": "string",
9094
+ "description": "sort_direction parameter",
9095
+ "enum": [
9096
+ "asc",
9097
+ "desc"
9098
+ ]
9099
+ }
9100
+ },
9101
+ "required": [
9102
+ "profileUuid",
9103
+ "conditions",
9104
+ "logic"
9105
+ ]
9106
+ },
9107
+ "security": [
9108
+ {
9109
+ "apiToken": []
9110
+ }
9111
+ ],
9112
+ "group": "reach"
9113
+ },
8954
9114
  {
8955
9115
  "name": "reach_listProfileSegmentsV1",
8956
9116
  "description": "Get a paginated list of the segments defined in a profile.\n\nEach entry carries the number of contacts currently matching it, which is recalculated on\nread rather than stored. Use `count_type` to count either every matching contact or only\nthe subscribed ones.",
@@ -9513,6 +9673,54 @@ export default [
9513
9673
  ],
9514
9674
  "group": "reach"
9515
9675
  },
9676
+ {
9677
+ "name": "reach_getConnectedSendingDomainV1",
9678
+ "description": "Get the sending domain connected to the profile, its verification status and any suspended\nsender addresses.\n\nCampaigns only go out once a domain is connected and active, so this is the cheapest way to\ncheck that precondition before building one. A profile with no domain connected returns the\nsame shape with every field set to `null`. For the individual MX, SPF, DKIM and DMARC records\nbehind the status, use the DNS status endpoint.",
9679
+ "method": "GET",
9680
+ "path": "/api/reach/v1/profiles/{profileUuid}/domains",
9681
+ "inputSchema": {
9682
+ "type": "object",
9683
+ "properties": {
9684
+ "profileUuid": {
9685
+ "type": "string",
9686
+ "description": "Profile uuid parameter"
9687
+ }
9688
+ },
9689
+ "required": [
9690
+ "profileUuid"
9691
+ ]
9692
+ },
9693
+ "security": [
9694
+ {
9695
+ "apiToken": []
9696
+ }
9697
+ ],
9698
+ "group": "reach"
9699
+ },
9700
+ {
9701
+ "name": "reach_listPlanFeatureAccessV1",
9702
+ "description": "List which plan features the profile can use.\n\nThis is the feature lock matrix, not a usage quota. `available` means the feature can be\nused right now and `locked` means it is not part of the base plan, so an upgrade is needed.\nFor remaining emails, recipients and AI credits use the limits endpoint instead.\n\nWorth checking before building something that cannot be activated afterwards, such as an\nautomation on a plan without automation activation.",
9703
+ "method": "GET",
9704
+ "path": "/api/reach/v1/profiles/{profileUuid}/features",
9705
+ "inputSchema": {
9706
+ "type": "object",
9707
+ "properties": {
9708
+ "profileUuid": {
9709
+ "type": "string",
9710
+ "description": "Profile uuid parameter"
9711
+ }
9712
+ },
9713
+ "required": [
9714
+ "profileUuid"
9715
+ ]
9716
+ },
9717
+ "security": [
9718
+ {
9719
+ "apiToken": []
9720
+ }
9721
+ ],
9722
+ "group": "reach"
9723
+ },
9516
9724
  {
9517
9725
  "name": "reach_getRemainingPlanLimitsV1",
9518
9726
  "description": "Get how much of the plan is left for the current period.\n\nTwo things to keep in mind before you build alerting on this. The period is a calendar month\nrather than a billing anniversary, so the counters reset on the 1st no matter when the\nsubscription started. And usage is tracked per order, so every profile on the same order shares\none pool and reports the same numbers here. Only the current period is available, past usage is\nnot kept.",
@@ -8301,6 +8301,14 @@ const tools: OpenApiTool[] = [
8301
8301
  "note": {
8302
8302
  "type": "string",
8303
8303
  "description": "note parameter"
8304
+ },
8305
+ "tag_uuids": {
8306
+ "type": "array",
8307
+ "description": "Existing tags to attach to the created contact",
8308
+ "items": {
8309
+ "type": "string",
8310
+ "description": "tag_uuids parameter"
8311
+ }
8304
8312
  }
8305
8313
  },
8306
8314
  "required": [
@@ -8607,6 +8615,14 @@ const tools: OpenApiTool[] = [
8607
8615
  "note": {
8608
8616
  "type": "string",
8609
8617
  "description": "note parameter"
8618
+ },
8619
+ "tag_uuids": {
8620
+ "type": "array",
8621
+ "description": "Existing tags to attach to the created contact",
8622
+ "items": {
8623
+ "type": "string",
8624
+ "description": "tag_uuids parameter"
8625
+ }
8610
8626
  }
8611
8627
  },
8612
8628
  "required": [
@@ -8965,6 +8981,150 @@ const tools: OpenApiTool[] = [
8965
8981
  ],
8966
8982
  "group": "reach"
8967
8983
  },
8984
+ {
8985
+ "name": "reach_listSegmentFilterAttributesV1",
8986
+ "description": "List every attribute a segment condition can filter on, with the operators each attribute\naccepts, the value format they expect and, where the value is constrained, the allowed\nvalues.\n\nThe list is profile specific: it includes the profile's custom contact fields, its tags and\nits 20 most recently published campaigns, so the valid attributes cannot be hardcoded. Read\nit before creating or updating a segment to discover the valid `attribute`, `operator` and\n`value` combinations.",
8987
+ "method": "GET",
8988
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/attributes",
8989
+ "inputSchema": {
8990
+ "type": "object",
8991
+ "properties": {
8992
+ "profileUuid": {
8993
+ "type": "string",
8994
+ "description": "Profile uuid parameter"
8995
+ }
8996
+ },
8997
+ "required": [
8998
+ "profileUuid"
8999
+ ]
9000
+ },
9001
+ "security": [
9002
+ {
9003
+ "apiToken": []
9004
+ }
9005
+ ],
9006
+ "group": "reach"
9007
+ },
9008
+ {
9009
+ "name": "reach_previewContactsMatchingConditionsV1",
9010
+ "description": "Preview the contacts matching a set of conditions without saving a segment.\n\nThe body is the same set of conditions accepted when creating or updating a segment, so this\nis how to check who a filter reaches, and how many, before persisting it. Nothing is stored\nand no contact is modified.\n\nCall the segment filter attributes endpoint first to discover the valid `attribute`,\n`operator` and `value` combinations.",
9011
+ "method": "POST",
9012
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/contacts",
9013
+ "inputSchema": {
9014
+ "type": "object",
9015
+ "properties": {
9016
+ "profileUuid": {
9017
+ "type": "string",
9018
+ "description": "Profile uuid parameter"
9019
+ },
9020
+ "conditions": {
9021
+ "type": "array",
9022
+ "description": "Conditions a contact must satisfy to appear in the preview",
9023
+ "items": {
9024
+ "type": "object",
9025
+ "description": "conditions parameter",
9026
+ "properties": {
9027
+ "attribute": {
9028
+ "type": "string",
9029
+ "description": "A built-in contact attribute, or `cf:{fieldUuid}` to target a custom\ncontact field. Which operators are accepted depends on the attribute,\nso read the segment filter attributes endpoint for the authoritative\nlist."
9030
+ },
9031
+ "operator": {
9032
+ "type": "string",
9033
+ "description": "operator parameter",
9034
+ "enum": [
9035
+ "equals",
9036
+ "not_equals",
9037
+ "contains",
9038
+ "not_contains",
9039
+ "gte",
9040
+ "lte",
9041
+ "exists",
9042
+ "within_last_days",
9043
+ "not_within_last_days",
9044
+ "older_than_days",
9045
+ "processed",
9046
+ "not_processed",
9047
+ "delivered",
9048
+ "not_delivered",
9049
+ "dropped",
9050
+ "not_dropped",
9051
+ "bounced",
9052
+ "not_bounced",
9053
+ "soft_bounced",
9054
+ "not_soft_bounced",
9055
+ "opened",
9056
+ "not_opened",
9057
+ "clicked",
9058
+ "not_clicked",
9059
+ "unsubscribed",
9060
+ "not_unsubscribed"
9061
+ ]
9062
+ },
9063
+ "value": {
9064
+ "type": "string",
9065
+ "description": "Always a string, including for numeric and date comparisons"
9066
+ }
9067
+ },
9068
+ "required": [
9069
+ "attribute",
9070
+ "operator",
9071
+ "value"
9072
+ ]
9073
+ }
9074
+ },
9075
+ "logic": {
9076
+ "type": "string",
9077
+ "description": "How to combine multiple conditions",
9078
+ "enum": [
9079
+ "AND",
9080
+ "OR"
9081
+ ]
9082
+ },
9083
+ "page": {
9084
+ "type": "integer",
9085
+ "description": "Page number"
9086
+ },
9087
+ "per_page": {
9088
+ "type": "integer",
9089
+ "description": "Number of items per page"
9090
+ },
9091
+ "search": {
9092
+ "type": "string",
9093
+ "description": "Narrow the preview to contacts whose email matches"
9094
+ },
9095
+ "sort_by": {
9096
+ "type": "string",
9097
+ "description": "sort_by parameter",
9098
+ "enum": [
9099
+ "email",
9100
+ "name",
9101
+ "surname",
9102
+ "phone",
9103
+ "subscription_status"
9104
+ ]
9105
+ },
9106
+ "sort_direction": {
9107
+ "type": "string",
9108
+ "description": "sort_direction parameter",
9109
+ "enum": [
9110
+ "asc",
9111
+ "desc"
9112
+ ]
9113
+ }
9114
+ },
9115
+ "required": [
9116
+ "profileUuid",
9117
+ "conditions",
9118
+ "logic"
9119
+ ]
9120
+ },
9121
+ "security": [
9122
+ {
9123
+ "apiToken": []
9124
+ }
9125
+ ],
9126
+ "group": "reach"
9127
+ },
8968
9128
  {
8969
9129
  "name": "reach_listProfileSegmentsV1",
8970
9130
  "description": "Get a paginated list of the segments defined in a profile.\n\nEach entry carries the number of contacts currently matching it, which is recalculated on\nread rather than stored. Use `count_type` to count either every matching contact or only\nthe subscribed ones.",
@@ -9527,6 +9687,54 @@ const tools: OpenApiTool[] = [
9527
9687
  ],
9528
9688
  "group": "reach"
9529
9689
  },
9690
+ {
9691
+ "name": "reach_getConnectedSendingDomainV1",
9692
+ "description": "Get the sending domain connected to the profile, its verification status and any suspended\nsender addresses.\n\nCampaigns only go out once a domain is connected and active, so this is the cheapest way to\ncheck that precondition before building one. A profile with no domain connected returns the\nsame shape with every field set to `null`. For the individual MX, SPF, DKIM and DMARC records\nbehind the status, use the DNS status endpoint.",
9693
+ "method": "GET",
9694
+ "path": "/api/reach/v1/profiles/{profileUuid}/domains",
9695
+ "inputSchema": {
9696
+ "type": "object",
9697
+ "properties": {
9698
+ "profileUuid": {
9699
+ "type": "string",
9700
+ "description": "Profile uuid parameter"
9701
+ }
9702
+ },
9703
+ "required": [
9704
+ "profileUuid"
9705
+ ]
9706
+ },
9707
+ "security": [
9708
+ {
9709
+ "apiToken": []
9710
+ }
9711
+ ],
9712
+ "group": "reach"
9713
+ },
9714
+ {
9715
+ "name": "reach_listPlanFeatureAccessV1",
9716
+ "description": "List which plan features the profile can use.\n\nThis is the feature lock matrix, not a usage quota. `available` means the feature can be\nused right now and `locked` means it is not part of the base plan, so an upgrade is needed.\nFor remaining emails, recipients and AI credits use the limits endpoint instead.\n\nWorth checking before building something that cannot be activated afterwards, such as an\nautomation on a plan without automation activation.",
9717
+ "method": "GET",
9718
+ "path": "/api/reach/v1/profiles/{profileUuid}/features",
9719
+ "inputSchema": {
9720
+ "type": "object",
9721
+ "properties": {
9722
+ "profileUuid": {
9723
+ "type": "string",
9724
+ "description": "Profile uuid parameter"
9725
+ }
9726
+ },
9727
+ "required": [
9728
+ "profileUuid"
9729
+ ]
9730
+ },
9731
+ "security": [
9732
+ {
9733
+ "apiToken": []
9734
+ }
9735
+ ],
9736
+ "group": "reach"
9737
+ },
9530
9738
  {
9531
9739
  "name": "reach_getRemainingPlanLimitsV1",
9532
9740
  "description": "Get how much of the plan is left for the current period.\n\nTwo things to keep in mind before you build alerting on this. The period is a calendar month\nrather than a billing anniversary, so the counters reset on the 1st no matter when the\nsubscription started. And usage is tracked per order, so every profile on the same order shares\none pool and reports the same numbers here. Only the current period is available, past usage is\nnot kept.",