hostinger-api-mcp 1.45.5 → 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.5",
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.5",
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.5",
9
+ "version": "1.46.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.45.5",
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.5
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.5
55
+ * Generated from OpenAPI spec version 1.43.0
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -8967,6 +8967,150 @@ export default [
8967
8967
  ],
8968
8968
  "group": "reach"
8969
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
+ },
8970
9114
  {
8971
9115
  "name": "reach_listProfileSegmentsV1",
8972
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.",
@@ -9529,6 +9673,54 @@ export default [
9529
9673
  ],
9530
9674
  "group": "reach"
9531
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
+ },
9532
9724
  {
9533
9725
  "name": "reach_getRemainingPlanLimitsV1",
9534
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.",
@@ -8981,6 +8981,150 @@ const tools: OpenApiTool[] = [
8981
8981
  ],
8982
8982
  "group": "reach"
8983
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
+ },
8984
9128
  {
8985
9129
  "name": "reach_listProfileSegmentsV1",
8986
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.",
@@ -9543,6 +9687,54 @@ const tools: OpenApiTool[] = [
9543
9687
  ],
9544
9688
  "group": "reach"
9545
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
+ },
9546
9738
  {
9547
9739
  "name": "reach_getRemainingPlanLimitsV1",
9548
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.",
@@ -1166,6 +1166,150 @@ export default [
1166
1166
  ],
1167
1167
  "group": "reach"
1168
1168
  },
1169
+ {
1170
+ "name": "reach_listSegmentFilterAttributesV1",
1171
+ "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.",
1172
+ "method": "GET",
1173
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/attributes",
1174
+ "inputSchema": {
1175
+ "type": "object",
1176
+ "properties": {
1177
+ "profileUuid": {
1178
+ "type": "string",
1179
+ "description": "Profile uuid parameter"
1180
+ }
1181
+ },
1182
+ "required": [
1183
+ "profileUuid"
1184
+ ]
1185
+ },
1186
+ "security": [
1187
+ {
1188
+ "apiToken": []
1189
+ }
1190
+ ],
1191
+ "group": "reach"
1192
+ },
1193
+ {
1194
+ "name": "reach_previewContactsMatchingConditionsV1",
1195
+ "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.",
1196
+ "method": "POST",
1197
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/contacts",
1198
+ "inputSchema": {
1199
+ "type": "object",
1200
+ "properties": {
1201
+ "profileUuid": {
1202
+ "type": "string",
1203
+ "description": "Profile uuid parameter"
1204
+ },
1205
+ "conditions": {
1206
+ "type": "array",
1207
+ "description": "Conditions a contact must satisfy to appear in the preview",
1208
+ "items": {
1209
+ "type": "object",
1210
+ "description": "conditions parameter",
1211
+ "properties": {
1212
+ "attribute": {
1213
+ "type": "string",
1214
+ "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."
1215
+ },
1216
+ "operator": {
1217
+ "type": "string",
1218
+ "description": "operator parameter",
1219
+ "enum": [
1220
+ "equals",
1221
+ "not_equals",
1222
+ "contains",
1223
+ "not_contains",
1224
+ "gte",
1225
+ "lte",
1226
+ "exists",
1227
+ "within_last_days",
1228
+ "not_within_last_days",
1229
+ "older_than_days",
1230
+ "processed",
1231
+ "not_processed",
1232
+ "delivered",
1233
+ "not_delivered",
1234
+ "dropped",
1235
+ "not_dropped",
1236
+ "bounced",
1237
+ "not_bounced",
1238
+ "soft_bounced",
1239
+ "not_soft_bounced",
1240
+ "opened",
1241
+ "not_opened",
1242
+ "clicked",
1243
+ "not_clicked",
1244
+ "unsubscribed",
1245
+ "not_unsubscribed"
1246
+ ]
1247
+ },
1248
+ "value": {
1249
+ "type": "string",
1250
+ "description": "Always a string, including for numeric and date comparisons"
1251
+ }
1252
+ },
1253
+ "required": [
1254
+ "attribute",
1255
+ "operator",
1256
+ "value"
1257
+ ]
1258
+ }
1259
+ },
1260
+ "logic": {
1261
+ "type": "string",
1262
+ "description": "How to combine multiple conditions",
1263
+ "enum": [
1264
+ "AND",
1265
+ "OR"
1266
+ ]
1267
+ },
1268
+ "page": {
1269
+ "type": "integer",
1270
+ "description": "Page number"
1271
+ },
1272
+ "per_page": {
1273
+ "type": "integer",
1274
+ "description": "Number of items per page"
1275
+ },
1276
+ "search": {
1277
+ "type": "string",
1278
+ "description": "Narrow the preview to contacts whose email matches"
1279
+ },
1280
+ "sort_by": {
1281
+ "type": "string",
1282
+ "description": "sort_by parameter",
1283
+ "enum": [
1284
+ "email",
1285
+ "name",
1286
+ "surname",
1287
+ "phone",
1288
+ "subscription_status"
1289
+ ]
1290
+ },
1291
+ "sort_direction": {
1292
+ "type": "string",
1293
+ "description": "sort_direction parameter",
1294
+ "enum": [
1295
+ "asc",
1296
+ "desc"
1297
+ ]
1298
+ }
1299
+ },
1300
+ "required": [
1301
+ "profileUuid",
1302
+ "conditions",
1303
+ "logic"
1304
+ ]
1305
+ },
1306
+ "security": [
1307
+ {
1308
+ "apiToken": []
1309
+ }
1310
+ ],
1311
+ "group": "reach"
1312
+ },
1169
1313
  {
1170
1314
  "name": "reach_listProfileSegmentsV1",
1171
1315
  "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.",
@@ -1728,6 +1872,54 @@ export default [
1728
1872
  ],
1729
1873
  "group": "reach"
1730
1874
  },
1875
+ {
1876
+ "name": "reach_getConnectedSendingDomainV1",
1877
+ "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.",
1878
+ "method": "GET",
1879
+ "path": "/api/reach/v1/profiles/{profileUuid}/domains",
1880
+ "inputSchema": {
1881
+ "type": "object",
1882
+ "properties": {
1883
+ "profileUuid": {
1884
+ "type": "string",
1885
+ "description": "Profile uuid parameter"
1886
+ }
1887
+ },
1888
+ "required": [
1889
+ "profileUuid"
1890
+ ]
1891
+ },
1892
+ "security": [
1893
+ {
1894
+ "apiToken": []
1895
+ }
1896
+ ],
1897
+ "group": "reach"
1898
+ },
1899
+ {
1900
+ "name": "reach_listPlanFeatureAccessV1",
1901
+ "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.",
1902
+ "method": "GET",
1903
+ "path": "/api/reach/v1/profiles/{profileUuid}/features",
1904
+ "inputSchema": {
1905
+ "type": "object",
1906
+ "properties": {
1907
+ "profileUuid": {
1908
+ "type": "string",
1909
+ "description": "Profile uuid parameter"
1910
+ }
1911
+ },
1912
+ "required": [
1913
+ "profileUuid"
1914
+ ]
1915
+ },
1916
+ "security": [
1917
+ {
1918
+ "apiToken": []
1919
+ }
1920
+ ],
1921
+ "group": "reach"
1922
+ },
1731
1923
  {
1732
1924
  "name": "reach_getRemainingPlanLimitsV1",
1733
1925
  "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.",
@@ -1180,6 +1180,150 @@ const tools: OpenApiTool[] = [
1180
1180
  ],
1181
1181
  "group": "reach"
1182
1182
  },
1183
+ {
1184
+ "name": "reach_listSegmentFilterAttributesV1",
1185
+ "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.",
1186
+ "method": "GET",
1187
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/attributes",
1188
+ "inputSchema": {
1189
+ "type": "object",
1190
+ "properties": {
1191
+ "profileUuid": {
1192
+ "type": "string",
1193
+ "description": "Profile uuid parameter"
1194
+ }
1195
+ },
1196
+ "required": [
1197
+ "profileUuid"
1198
+ ]
1199
+ },
1200
+ "security": [
1201
+ {
1202
+ "apiToken": []
1203
+ }
1204
+ ],
1205
+ "group": "reach"
1206
+ },
1207
+ {
1208
+ "name": "reach_previewContactsMatchingConditionsV1",
1209
+ "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.",
1210
+ "method": "POST",
1211
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/contacts",
1212
+ "inputSchema": {
1213
+ "type": "object",
1214
+ "properties": {
1215
+ "profileUuid": {
1216
+ "type": "string",
1217
+ "description": "Profile uuid parameter"
1218
+ },
1219
+ "conditions": {
1220
+ "type": "array",
1221
+ "description": "Conditions a contact must satisfy to appear in the preview",
1222
+ "items": {
1223
+ "type": "object",
1224
+ "description": "conditions parameter",
1225
+ "properties": {
1226
+ "attribute": {
1227
+ "type": "string",
1228
+ "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."
1229
+ },
1230
+ "operator": {
1231
+ "type": "string",
1232
+ "description": "operator parameter",
1233
+ "enum": [
1234
+ "equals",
1235
+ "not_equals",
1236
+ "contains",
1237
+ "not_contains",
1238
+ "gte",
1239
+ "lte",
1240
+ "exists",
1241
+ "within_last_days",
1242
+ "not_within_last_days",
1243
+ "older_than_days",
1244
+ "processed",
1245
+ "not_processed",
1246
+ "delivered",
1247
+ "not_delivered",
1248
+ "dropped",
1249
+ "not_dropped",
1250
+ "bounced",
1251
+ "not_bounced",
1252
+ "soft_bounced",
1253
+ "not_soft_bounced",
1254
+ "opened",
1255
+ "not_opened",
1256
+ "clicked",
1257
+ "not_clicked",
1258
+ "unsubscribed",
1259
+ "not_unsubscribed"
1260
+ ]
1261
+ },
1262
+ "value": {
1263
+ "type": "string",
1264
+ "description": "Always a string, including for numeric and date comparisons"
1265
+ }
1266
+ },
1267
+ "required": [
1268
+ "attribute",
1269
+ "operator",
1270
+ "value"
1271
+ ]
1272
+ }
1273
+ },
1274
+ "logic": {
1275
+ "type": "string",
1276
+ "description": "How to combine multiple conditions",
1277
+ "enum": [
1278
+ "AND",
1279
+ "OR"
1280
+ ]
1281
+ },
1282
+ "page": {
1283
+ "type": "integer",
1284
+ "description": "Page number"
1285
+ },
1286
+ "per_page": {
1287
+ "type": "integer",
1288
+ "description": "Number of items per page"
1289
+ },
1290
+ "search": {
1291
+ "type": "string",
1292
+ "description": "Narrow the preview to contacts whose email matches"
1293
+ },
1294
+ "sort_by": {
1295
+ "type": "string",
1296
+ "description": "sort_by parameter",
1297
+ "enum": [
1298
+ "email",
1299
+ "name",
1300
+ "surname",
1301
+ "phone",
1302
+ "subscription_status"
1303
+ ]
1304
+ },
1305
+ "sort_direction": {
1306
+ "type": "string",
1307
+ "description": "sort_direction parameter",
1308
+ "enum": [
1309
+ "asc",
1310
+ "desc"
1311
+ ]
1312
+ }
1313
+ },
1314
+ "required": [
1315
+ "profileUuid",
1316
+ "conditions",
1317
+ "logic"
1318
+ ]
1319
+ },
1320
+ "security": [
1321
+ {
1322
+ "apiToken": []
1323
+ }
1324
+ ],
1325
+ "group": "reach"
1326
+ },
1183
1327
  {
1184
1328
  "name": "reach_listProfileSegmentsV1",
1185
1329
  "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.",
@@ -1742,6 +1886,54 @@ const tools: OpenApiTool[] = [
1742
1886
  ],
1743
1887
  "group": "reach"
1744
1888
  },
1889
+ {
1890
+ "name": "reach_getConnectedSendingDomainV1",
1891
+ "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.",
1892
+ "method": "GET",
1893
+ "path": "/api/reach/v1/profiles/{profileUuid}/domains",
1894
+ "inputSchema": {
1895
+ "type": "object",
1896
+ "properties": {
1897
+ "profileUuid": {
1898
+ "type": "string",
1899
+ "description": "Profile uuid parameter"
1900
+ }
1901
+ },
1902
+ "required": [
1903
+ "profileUuid"
1904
+ ]
1905
+ },
1906
+ "security": [
1907
+ {
1908
+ "apiToken": []
1909
+ }
1910
+ ],
1911
+ "group": "reach"
1912
+ },
1913
+ {
1914
+ "name": "reach_listPlanFeatureAccessV1",
1915
+ "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.",
1916
+ "method": "GET",
1917
+ "path": "/api/reach/v1/profiles/{profileUuid}/features",
1918
+ "inputSchema": {
1919
+ "type": "object",
1920
+ "properties": {
1921
+ "profileUuid": {
1922
+ "type": "string",
1923
+ "description": "Profile uuid parameter"
1924
+ }
1925
+ },
1926
+ "required": [
1927
+ "profileUuid"
1928
+ ]
1929
+ },
1930
+ "security": [
1931
+ {
1932
+ "apiToken": []
1933
+ }
1934
+ ],
1935
+ "group": "reach"
1936
+ },
1745
1937
  {
1746
1938
  "name": "reach_getRemainingPlanLimitsV1",
1747
1939
  "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.",
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.46.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.46.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.46.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.46.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.46.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.46.0', 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: '1.45.5', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.46.0', tools });
package/types.d.ts CHANGED
@@ -5941,6 +5941,74 @@ Only the segment definition is removed. The contacts that matched it are left un
5941
5941
  response: any; // Response structure will depend on the API
5942
5942
  };
5943
5943
 
5944
+ /**
5945
+ * List every attribute a segment condition can filter on, with the operators each attribute
5946
+ accepts, the value format they expect and, where the value is constrained, the allowed
5947
+ values.
5948
+
5949
+ The list is profile specific: it includes the profile's custom contact fields, its tags and
5950
+ its 20 most recently published campaigns, so the valid attributes cannot be hardcoded. Read
5951
+ it before creating or updating a segment to discover the valid `attribute`, `operator` and
5952
+ `value` combinations.
5953
+ */
5954
+ "reach_listSegmentFilterAttributesV1": {
5955
+ params: {
5956
+ /**
5957
+ * Profile uuid parameter
5958
+ */
5959
+ profileUuid: string;
5960
+ };
5961
+ response: any; // Response structure will depend on the API
5962
+ };
5963
+
5964
+ /**
5965
+ * Preview the contacts matching a set of conditions without saving a segment.
5966
+
5967
+ The body is the same set of conditions accepted when creating or updating a segment, so this
5968
+ is how to check who a filter reaches, and how many, before persisting it. Nothing is stored
5969
+ and no contact is modified.
5970
+
5971
+ Call the segment filter attributes endpoint first to discover the valid `attribute`,
5972
+ `operator` and `value` combinations.
5973
+ */
5974
+ "reach_previewContactsMatchingConditionsV1": {
5975
+ params: {
5976
+ /**
5977
+ * Profile uuid parameter
5978
+ */
5979
+ profileUuid: string;
5980
+ /**
5981
+ * Conditions a contact must satisfy to appear in the preview
5982
+ */
5983
+ conditions: array;
5984
+ /**
5985
+ * How to combine multiple conditions
5986
+ */
5987
+ logic: string;
5988
+ /**
5989
+ * Page number
5990
+ */
5991
+ page?: number;
5992
+ /**
5993
+ * Number of items per page
5994
+ */
5995
+ per_page?: number;
5996
+ /**
5997
+ * Narrow the preview to contacts whose email matches
5998
+ */
5999
+ search?: string;
6000
+ /**
6001
+ * sort_by parameter
6002
+ */
6003
+ sort_by?: string;
6004
+ /**
6005
+ * sort_direction parameter
6006
+ */
6007
+ sort_direction?: string;
6008
+ };
6009
+ response: any; // Response structure will depend on the API
6010
+ };
6011
+
5944
6012
  /**
5945
6013
  * Get a paginated list of the segments defined in a profile.
5946
6014
 
@@ -6307,6 +6375,45 @@ actual records found and the suggested records required for correct email delive
6307
6375
  response: any; // Response structure will depend on the API
6308
6376
  };
6309
6377
 
6378
+ /**
6379
+ * Get the sending domain connected to the profile, its verification status and any suspended
6380
+ sender addresses.
6381
+
6382
+ Campaigns only go out once a domain is connected and active, so this is the cheapest way to
6383
+ check that precondition before building one. A profile with no domain connected returns the
6384
+ same shape with every field set to `null`. For the individual MX, SPF, DKIM and DMARC records
6385
+ behind the status, use the DNS status endpoint.
6386
+ */
6387
+ "reach_getConnectedSendingDomainV1": {
6388
+ params: {
6389
+ /**
6390
+ * Profile uuid parameter
6391
+ */
6392
+ profileUuid: string;
6393
+ };
6394
+ response: any; // Response structure will depend on the API
6395
+ };
6396
+
6397
+ /**
6398
+ * List which plan features the profile can use.
6399
+
6400
+ This is the feature lock matrix, not a usage quota. `available` means the feature can be
6401
+ used right now and `locked` means it is not part of the base plan, so an upgrade is needed.
6402
+ For remaining emails, recipients and AI credits use the limits endpoint instead.
6403
+
6404
+ Worth checking before building something that cannot be activated afterwards, such as an
6405
+ automation on a plan without automation activation.
6406
+ */
6407
+ "reach_listPlanFeatureAccessV1": {
6408
+ params: {
6409
+ /**
6410
+ * Profile uuid parameter
6411
+ */
6412
+ profileUuid: string;
6413
+ };
6414
+ response: any; // Response structure will depend on the API
6415
+ };
6416
+
6310
6417
  /**
6311
6418
  * Get how much of the plan is left for the current period.
6312
6419