@seranking/n8n-nodes-seranking 1.5.13 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/README.md +60 -29
  2. package/dist/credentials/SeRankingApi.credentials.js +2 -2
  3. package/dist/nodes/SeRanking/SeRanking.node.js +3 -39
  4. package/dist/nodes/SeRanking/projectApi/descriptions/AiResultTrackerDescription.js +11 -0
  5. package/dist/nodes/SeRanking/projectApi/descriptions/BacklinkCheckerDescription.js +14 -0
  6. package/dist/nodes/SeRanking/projectApi/descriptions/ProjectManagementDescription.js +127 -0
  7. package/dist/nodes/SeRanking/projectApi/descriptions/WebsiteAuditDescription.js +107 -1
  8. package/dist/nodes/SeRanking/projectApi/operations/AccountSystemOperations.js +2 -2
  9. package/dist/nodes/SeRanking/projectApi/operations/AiResultTrackerOperations.js +20 -18
  10. package/dist/nodes/SeRanking/projectApi/operations/AirtGroupsOperations.js +9 -9
  11. package/dist/nodes/SeRanking/projectApi/operations/AnalyticsTrafficOperations.js +3 -3
  12. package/dist/nodes/SeRanking/projectApi/operations/BacklinkCheckerOperations.js +19 -20
  13. package/dist/nodes/SeRanking/projectApi/operations/CompetitorsOperations.js +11 -8
  14. package/dist/nodes/SeRanking/projectApi/operations/GeneralDataOperations.js +7 -8
  15. package/dist/nodes/SeRanking/projectApi/operations/KeywordGroupsOperations.js +7 -7
  16. package/dist/nodes/SeRanking/projectApi/operations/MarketingPlanOperations.js +5 -5
  17. package/dist/nodes/SeRanking/projectApi/operations/ProjectGroupsOperations.js +6 -6
  18. package/dist/nodes/SeRanking/projectApi/operations/ProjectManagementOperations.js +70 -32
  19. package/dist/nodes/SeRanking/projectApi/operations/SearchVolumeOperations.js +5 -22
  20. package/dist/nodes/SeRanking/projectApi/operations/SubAccountOperations.js +13 -8
  21. package/dist/nodes/SeRanking/projectApi/operations/UrlTagsOperations.js +4 -4
  22. package/dist/nodes/SeRanking/projectApi/operations/WebsiteAuditOperations.js +57 -16
  23. package/dist/nodes/SeRanking/utils/apiRequest.js +6 -30
  24. package/package.json +3 -4
  25. package/dist/credentials/SeRankingProjectApi.credentials.d.ts +0 -9
  26. package/dist/credentials/SeRankingProjectApi.credentials.js +0 -39
package/README.md CHANGED
@@ -89,9 +89,10 @@ Open `http://localhost:5678` and add the SE Ranking node to your workflow.
89
89
  ### Step 4: Configure Credentials
90
90
 
91
91
  1. Add SE Ranking node
92
- 2. Click "Create New Credential" for **SE Ranking API** (Data API) — enter your Data API token
93
- 3. (Optional) Click "Create New Credential" for **SE Ranking Project API** — enter your Project API token
94
- 4. Save
92
+ 2. Click "Create New Credential" for **SE Ranking API** — enter your API token
93
+ 3. Save
94
+
95
+ > **v2.0.0 note:** SE Ranking unified its two APIs (Data API + Project API) onto a single host (`api.seranking.com`) with a single token in 2026-05. The node now uses one credential type for everything. If you're upgrading from v1.x, see the Migration section below.
95
96
 
96
97
  ### Docker Installation
97
98
 
@@ -156,19 +157,25 @@ Then restart n8n
156
157
 
157
158
  To use this node, you need:
158
159
 
159
- 1. **SE Ranking Account** - Sign up at [seranking.com](https://seranking.com/)
160
- 2. **API Token** - Generate from your [SE Ranking API Dashboard](https://online.seranking.com/admin.api.dashboard.html)
160
+ 1. **SE Ranking Account** Sign up at [seranking.com](https://seranking.com/)
161
+ 2. **API Token** Generate from your [SE Ranking API Dashboard](https://online.seranking.com/admin.api.dashboard.html)
161
162
 
162
163
  ### Setting up credentials in n8n
163
164
 
164
165
  1. Open any workflow and add the **SE Ranking** node
165
- 2. In the **SE Ranking API** credential slot, click "Create New Credential" and enter your **Data API token** — required for all Data API resources
166
- 3. In the **SE Ranking Project API** credential slot, click "Create New Credential" and enter your **Project API token** — only needed for Project API resources
167
- 4. Click **Save**
166
+ 2. In the **SE Ranking API** credential slot, click "Create New Credential" and enter your API token
167
+ 3. Click **Save** the credential is tested by hitting `GET /v1/account/subscription`
168
+
169
+ ### Migrating from v1.x
170
+
171
+ v1.x used two separate credential types (`seRankingApi` for Data API and `seRankingProjectApi` for Project API) with two different base URLs and two different tokens. As of v2.0.0:
168
172
 
169
- Each credential is tested independently when saved. The node automatically routes requests to the correct API and credential based on the resource you select.
173
+ - One credential type covers everything: **SE Ranking API**
174
+ - One token works against all endpoints — get the unified token from the [API Dashboard](https://online.seranking.com/admin.api.dashboard.html)
175
+ - Old base URL `api4.seranking.com` is deprecated; everything now lives under `api.seranking.com/v1`
176
+ - Project API endpoints moved under `/v1/project-management/...` path prefix
170
177
 
171
- > **Note:** Data API and Project API use different tokens. Data API tokens are UUID format; Project API tokens are 40-character hex format. Get both from your [SE Ranking API Dashboard](https://online.seranking.com/admin.api.dashboard.html).
178
+ If you're upgrading and have saved credentials of type `seRankingProjectApi`, you'll need to re-save them as `seRankingApi` on each affected node. The v1.5.13 release is preserved on npm for rollback (`npm install @seranking/n8n-nodes-seranking@1.5.13`).
172
179
 
173
180
  ---
174
181
 
@@ -176,11 +183,11 @@ Each credential is tested independently when saved. The node automatically route
176
183
 
177
184
  - **n8n version**: 1.0.0 or higher
178
185
  - **Node.js version**: 18.x or higher
179
- - **SE Ranking API**: v1 (Data API) + Project API (`api4.seranking.com`)
186
+ - **SE Ranking API**: unified host `api.seranking.com/v1`
180
187
 
181
188
  ## Operations
182
189
 
183
- This node provides access to **20 SE Ranking resources** with **172 total operations** across two API types:
190
+ This node provides access to **21 SE Ranking resources** with **190 total operations** on the unified API:
184
191
 
185
192
  ### Data API (6 resources, 65 operations)
186
193
 
@@ -696,33 +703,57 @@ return dominated;
696
703
 
697
704
  ## API Documentation
698
705
 
699
- This node implements the following SE Ranking APIs:
706
+ This node implements the SE Ranking unified API (`api.seranking.com/v1`):
700
707
 
701
- **Data API** (`api.seranking.com/v1`):
702
- - [AI Search API](https://seranking.com/api/data/ai-search/)
703
- - [Backlinks API](https://seranking.com/api/data/backlinks/)
704
- - [Domain Analysis API](https://seranking.com/api/data/domain-analysis/)
705
- - [Keyword Research API](https://seranking.com/api/data/keyword-research/)
706
- - [Website Audit API](https://seranking.com/api/data/website-audit/)
707
- - [SERP API](https://seranking.com/api/data/serp/)
708
+ **Data API resources:**
709
+ - [AI Search](https://seranking.com/api/data/ai-search/)
710
+ - [Backlinks](https://seranking.com/api/data/backlinks/)
711
+ - [Domain Analysis](https://seranking.com/api/data/domain-analysis/)
712
+ - [Keyword Research](https://seranking.com/api/data/keyword-research/)
713
+ - [Website Audit](https://seranking.com/api/data/website-audit/)
708
714
 
709
- **Project API** (`api4.seranking.com`):
710
- - [Project API Documentation](https://seranking.com/api/project/)
715
+ **Project API resources** (under `/v1/project-management/`):
716
+ - [Project Management](https://seranking.com/api/project/project-management/)
717
+ - [AI Result Tracker](https://seranking.com/api/project/ai-result-tracker/)
718
+ - [Competitors](https://seranking.com/api/project/competitors/)
719
+ - [Backlink Checker](https://seranking.com/api/project/backlink-checker/)
720
+ - [Website Audit (Project)](https://seranking.com/api/project/audit/)
721
+ - [And more...](https://seranking.com/api/project/)
711
722
 
712
- For detailed API specifications, visit [SE Ranking API Documentation](https://seranking.com/api.html).
723
+ For detailed API specifications, visit [SE Ranking API Documentation](https://seranking.com/api/).
713
724
 
714
725
  ---
715
726
 
716
727
  ## Version History
717
728
 
718
- ### v1.5.8 (Current)
729
+ ### v2.0.1 (Current)
730
+
731
+ * 🐛 **FIX: Keyword Groups → Move Keywords** — was returning 400; API expects body key `keywords_ids` (plural), not `keyword_ids`
732
+ * 🐛 **FIX: Sub-Account → Share Projects** — `site_ids` must be a single integer per request; now loops one call per site so multiple IDs work
733
+ * 🐛 **FIX: Backlink Checker → Move to Group** — added missing Target Group ID field to the UI
734
+
735
+ ### v2.0.0
736
+
737
+ * **BREAKING: API Unification** — single credential, single host (`api.seranking.com`). Old `seRankingProjectApi` credential type removed. Re-save affected nodes with unified `SE Ranking API` credential.
738
+ * ✅ **10 new operations** — List Check Dates, Get Ranking Trends, Audit Settings (get/update/reset), Audit Sitemaps (list/add/delete), Audit Source Pages (list/delete), AIRT Rankings group mode
739
+ * 🐛 **FIX: Update Audit Title** — was returning 400 since April 2026, now works
740
+ * 🐛 **FIX: Run Position Check** — /api/ prefix bug resolved by unification
741
+ * ⚠️ **Deprecated: Search Volume + Volume Regions** — 6 ops return 404 on unified host (friendly error with guidance)
742
+ * 📊 **Total: 190 operations across 21 resources**
743
+
744
+ ### v1.5.13
745
+
746
+ * ✅ **NEW: AIRT Groups resource (8 operations)** — manage AI Result Tracker prompt groups
747
+ * ✅ **NEW: Dynamic Issue Code dropdown** — Get Pages by Issue auto-populates from audit report
748
+ * 🐛 **FIX: Run Position Check URL** — removed incorrect `/api/` prefix
749
+
750
+ ### v1.5.8
719
751
 
720
- * ✅ **NEW: Get Prompt Answer (AI Result Tracker)** - Returns full AI answer text, cited source URLs, detected brand mentions, and (for Google AI Overview) top organic URLs for a tracked prompt on a given date. Cost: 0 credits.
721
- * 📝 **Note on SE Ranking docs quirk** - The endpoint's path param is documented as `keyword_id` but actually requires `k2site_llm_id` from `List Prompts`. The node field is labeled accordingly.
752
+ * ✅ **NEW: Get Prompt Answer (AI Result Tracker)** - Returns full AI answer text, cited source URLs, detected brand mentions, and organic URLs for a tracked prompt.
722
753
 
723
754
  ### v1.3.6
724
755
 
725
- * 🔧 **FIX: Rate limiting compatibility** - Replaced setTimeout with n8n-workflow sleep function for n8n verified node compliance
756
+ * 🔧 **FIX: Rate limiting compatibility** - Replaced setTimeout with n8n-workflow sleep function
726
757
 
727
758
  ### v1.3.5
728
759
 
@@ -795,7 +826,7 @@ For detailed API specifications, visit [SE Ranking API Documentation](https://se
795
826
 
796
827
  ## Features
797
828
 
798
- ✅ **172 Operations** - Comprehensive coverage across 20 resources (Data API + Project API)
829
+ ✅ **190 Operations** - Comprehensive coverage across 21 resources (unified API)
799
830
 
800
831
  ✅ **Pingback Webhooks** - Event-driven notifications for SERP task completion
801
832
 
@@ -878,7 +909,7 @@ For more details, see [n8n's rate limiting documentation](https://docs.n8n.io/in
878
909
  **Solution**:
879
910
 
880
911
  1. Verify API token is correct (copy from SE Ranking dashboard)
881
- 2. For Project API resources, ensure the SE Ranking Project API credential is configured
912
+ 2. Ensure your SE Ranking API credential has the correct unified token
882
913
  3. Check token hasn't expired
883
914
  4. Regenerate token in SE Ranking dashboard if needed
884
915
  5. Test credentials using the "Test" button in n8n
@@ -5,7 +5,7 @@ class SeRankingApi {
5
5
  constructor() {
6
6
  this.name = 'seRankingApi';
7
7
  this.displayName = 'SE Ranking API';
8
- this.documentationUrl = 'https://seranking.com/api-google-organic.html';
8
+ this.documentationUrl = 'https://seranking.com/api/';
9
9
  this.properties = [
10
10
  {
11
11
  displayName: 'API Token',
@@ -16,7 +16,7 @@ class SeRankingApi {
16
16
  },
17
17
  default: '',
18
18
  required: true,
19
- description: 'Your SE Ranking Data API token from the API Dashboard',
19
+ description: 'Your SE Ranking API token from the API Dashboard. As of 2026-05 a single unified token authenticates both Data API and Project API endpoints.',
20
20
  },
21
21
  ];
22
22
  this.authenticate = {
@@ -64,43 +64,6 @@ class SeRanking {
64
64
  {
65
65
  name: 'seRankingApi',
66
66
  required: true,
67
- displayOptions: {
68
- show: {
69
- resource: [
70
- 'aiSearch',
71
- 'backlinks',
72
- 'domainAnalysis',
73
- 'keywordResearch',
74
- 'serpClassic',
75
- 'websiteAudit',
76
- ],
77
- },
78
- },
79
- },
80
- {
81
- name: 'seRankingProjectApi',
82
- required: true,
83
- displayOptions: {
84
- show: {
85
- resource: [
86
- 'accountSystem',
87
- 'aiResultTracker',
88
- 'airtGroups',
89
- 'analyticsTraffic',
90
- 'backlinkChecker',
91
- 'competitors',
92
- 'generalData',
93
- 'keywordGroups',
94
- 'marketingPlan',
95
- 'projectGroups',
96
- 'projectManagement',
97
- 'searchVolume',
98
- 'subAccount',
99
- 'urlTags',
100
- 'websiteAuditProject',
101
- ],
102
- },
103
- },
104
67
  },
105
68
  ],
106
69
  properties: [
@@ -269,9 +232,10 @@ class SeRanking {
269
232
  if (!auditId) {
270
233
  return [];
271
234
  }
272
- const response = await this.helpers.httpRequestWithAuthentication.call(this, 'seRankingProjectApi', {
235
+ const response = await this.helpers.httpRequestWithAuthentication.call(this, 'seRankingApi', {
273
236
  method: 'GET',
274
- url: `https://api4.seranking.com/audit/${auditId}/report`,
237
+ url: 'https://api.seranking.com/v1/project-management/audits/report',
238
+ qs: { audit_id: auditId },
275
239
  json: true,
276
240
  });
277
241
  const codes = new Set();
@@ -429,6 +429,17 @@ exports.aiResultTrackerFields = [
429
429
  default: 0,
430
430
  description: 'Offset from the beginning of the list',
431
431
  },
432
+ {
433
+ displayName: 'Mode',
434
+ name: 'mode',
435
+ type: 'options',
436
+ options: [
437
+ { name: 'Per Prompt (Default)', value: '' },
438
+ { name: 'Aggregated by Group', value: 'groups' },
439
+ ],
440
+ default: '',
441
+ description: 'Set to "groups" to get aggregated time-series per prompt group (mention_presence/link_presence as percentages) instead of per-prompt rankings',
442
+ },
432
443
  ],
433
444
  },
434
445
  {
@@ -510,6 +510,20 @@ exports.backlinkCheckerFields = [
510
510
  default: '',
511
511
  description: 'New name for the backlink group',
512
512
  },
513
+ {
514
+ displayName: 'Target Group ID',
515
+ name: 'targetGroupId',
516
+ type: 'number',
517
+ required: true,
518
+ displayOptions: {
519
+ show: {
520
+ resource: ['backlinkChecker'],
521
+ operation: ['moveToGroup'],
522
+ },
523
+ },
524
+ default: 0,
525
+ description: 'Destination backlink group ID to move backlinks/groups into',
526
+ },
513
527
  {
514
528
  displayName: 'Backlink IDs',
515
529
  name: 'backlinkIds',
@@ -187,6 +187,18 @@ exports.projectManagementOperations = [
187
187
  description: 'Set a ranking position for a keyword on a date',
188
188
  action: 'Set manual keyword position',
189
189
  },
190
+ {
191
+ name: 'List Check Dates',
192
+ value: 'listCheckDates',
193
+ description: 'Get actual ranking check dates for a project',
194
+ action: 'List check dates',
195
+ },
196
+ {
197
+ name: 'Get Ranking Trends',
198
+ value: 'getRankingTrends',
199
+ description: 'Get ranking trend time series (avg position, visibility, top10)',
200
+ action: 'Get ranking trends',
201
+ },
190
202
  ],
191
203
  default: 'listProjects',
192
204
  },
@@ -216,6 +228,8 @@ exports.projectManagementFields = [
216
228
  'deleteKeywords',
217
229
  'setManualPosition',
218
230
  'runRecheck',
231
+ 'listCheckDates',
232
+ 'getRankingTrends',
219
233
  ],
220
234
  },
221
235
  },
@@ -807,4 +821,117 @@ exports.projectManagementFields = [
807
821
  default: '[{"site_engine_id":1,"keyword_id":2}]',
808
822
  description: 'JSON array of objects: { site_engine_id, keyword_id }',
809
823
  },
824
+ {
825
+ displayName: 'Additional Fields',
826
+ name: 'additionalFields',
827
+ type: 'collection',
828
+ placeholder: 'Add Field',
829
+ default: {},
830
+ displayOptions: {
831
+ show: {
832
+ resource: ['projectManagement'],
833
+ operation: ['listCheckDates'],
834
+ },
835
+ },
836
+ options: [
837
+ {
838
+ displayName: 'Site Engine ID',
839
+ name: 'siteEngineId',
840
+ type: 'number',
841
+ default: 0,
842
+ description: 'Limit to a single search engine',
843
+ },
844
+ {
845
+ displayName: 'Date From',
846
+ name: 'dateFrom',
847
+ type: 'string',
848
+ default: '',
849
+ placeholder: '2026-01-01',
850
+ description: 'Start date (YYYY-MM-DD). Defaults to 7 days ago.',
851
+ },
852
+ {
853
+ displayName: 'Date To',
854
+ name: 'dateTo',
855
+ type: 'string',
856
+ default: '',
857
+ placeholder: '2026-01-31',
858
+ description: 'End date (YYYY-MM-DD). Defaults to today.',
859
+ },
860
+ ],
861
+ },
862
+ {
863
+ displayName: 'Additional Fields',
864
+ name: 'additionalFields',
865
+ type: 'collection',
866
+ placeholder: 'Add Field',
867
+ default: {},
868
+ displayOptions: {
869
+ show: {
870
+ resource: ['projectManagement'],
871
+ operation: ['getRankingTrends'],
872
+ },
873
+ },
874
+ options: [
875
+ {
876
+ displayName: 'Site Engine ID',
877
+ name: 'siteEngineId',
878
+ type: 'number',
879
+ default: 0,
880
+ description: 'Limit to a single search engine (drops the cross-engine average row)',
881
+ },
882
+ {
883
+ displayName: 'Date From',
884
+ name: 'dateFrom',
885
+ type: 'string',
886
+ default: '',
887
+ placeholder: '2026-01-01',
888
+ description: 'Start date (YYYY-MM-DD). Defaults to 7 days ago.',
889
+ },
890
+ {
891
+ displayName: 'Date To',
892
+ name: 'dateTo',
893
+ type: 'string',
894
+ default: '',
895
+ placeholder: '2026-01-31',
896
+ description: 'End date (YYYY-MM-DD). Defaults to today.',
897
+ },
898
+ {
899
+ displayName: 'Metric Type',
900
+ name: 'metricType',
901
+ type: 'options',
902
+ options: [
903
+ { name: 'Average Position', value: 'avg_pos' },
904
+ { name: 'Visibility (Raw Score)', value: 'visibility' },
905
+ { name: 'Visibility (%)', value: 'visibility_percent' },
906
+ { name: 'Top 10 (Count)', value: 'top10' },
907
+ { name: 'Top 10 (%)', value: 'top10_percent' },
908
+ ],
909
+ default: 'avg_pos',
910
+ description: 'Which ranking metric to retrieve',
911
+ },
912
+ {
913
+ displayName: 'Group ID',
914
+ name: 'groupId',
915
+ type: 'number',
916
+ default: 0,
917
+ description: 'Filter to a keyword group',
918
+ },
919
+ {
920
+ displayName: 'Keyword IDs',
921
+ name: 'keywordsIds',
922
+ type: 'string',
923
+ default: '',
924
+ placeholder: '123,456,789',
925
+ description: 'Comma-separated keyword IDs to filter',
926
+ },
927
+ {
928
+ displayName: 'Tag IDs',
929
+ name: 'tagsIds',
930
+ type: 'string',
931
+ default: '',
932
+ placeholder: '1,2,3',
933
+ description: 'Comma-separated landing-page tag IDs to filter',
934
+ },
935
+ ],
936
+ },
810
937
  ];
@@ -85,6 +85,54 @@ exports.websiteAuditOperations = [
85
85
  description: 'Update the title of an audit',
86
86
  action: 'Update audit title',
87
87
  },
88
+ {
89
+ name: 'Get Audit Settings',
90
+ value: 'getAuditSettings',
91
+ description: 'Get the full configuration of an audit',
92
+ action: 'Get audit settings',
93
+ },
94
+ {
95
+ name: 'Update Audit Settings',
96
+ value: 'updateAuditSettings',
97
+ description: 'Partially update audit configuration',
98
+ action: 'Update audit settings',
99
+ },
100
+ {
101
+ name: 'Reset Audit Settings',
102
+ value: 'resetAuditSettings',
103
+ description: 'Restore all audit settings to defaults',
104
+ action: 'Reset audit settings',
105
+ },
106
+ {
107
+ name: 'List Audit Sitemaps',
108
+ value: 'listAuditSitemaps',
109
+ description: 'List configured sitemaps for an audit',
110
+ action: 'List audit sitemaps',
111
+ },
112
+ {
113
+ name: 'Add Audit Sitemap',
114
+ value: 'addAuditSitemap',
115
+ description: 'Register a sitemap URL as a crawl source',
116
+ action: 'Add audit sitemap',
117
+ },
118
+ {
119
+ name: 'Delete Audit Sitemap',
120
+ value: 'deleteAuditSitemap',
121
+ description: 'Remove a sitemap from crawl sources',
122
+ action: 'Delete audit sitemap',
123
+ },
124
+ {
125
+ name: 'List Audit Source Pages',
126
+ value: 'listAuditSourcePages',
127
+ description: 'List uploaded custom page lists',
128
+ action: 'List audit source pages',
129
+ },
130
+ {
131
+ name: 'Delete Audit Source Pages',
132
+ value: 'deleteAuditSourcePages',
133
+ description: 'Remove an uploaded custom page list',
134
+ action: 'Delete audit source pages',
135
+ },
88
136
  ],
89
137
  default: 'listAudits',
90
138
  },
@@ -98,7 +146,7 @@ exports.websiteAuditFields = [
98
146
  displayOptions: {
99
147
  show: {
100
148
  resource: ['websiteAuditProject'],
101
- operation: ['getStatus', 'getReport', 'getPages', 'getPagesByIssue', 'getIssues', 'getLinks', 'getHistory', 'updateTitle', 'deleteAudit', 'recheckAudit'],
149
+ operation: ['getStatus', 'getReport', 'getPages', 'getPagesByIssue', 'getIssues', 'getLinks', 'getHistory', 'updateTitle', 'deleteAudit', 'recheckAudit', 'getAuditSettings', 'updateAuditSettings', 'resetAuditSettings', 'listAuditSitemaps', 'addAuditSitemap', 'deleteAuditSitemap', 'listAuditSourcePages', 'deleteAuditSourcePages'],
102
150
  },
103
151
  },
104
152
  default: 0,
@@ -379,4 +427,62 @@ exports.websiteAuditFields = [
379
427
  default: '',
380
428
  description: 'New title for the audit report (max 300 characters)',
381
429
  },
430
+ {
431
+ displayName: 'Settings JSON',
432
+ name: 'settingsJson',
433
+ type: 'string',
434
+ typeOptions: { rows: 5 },
435
+ required: true,
436
+ displayOptions: {
437
+ show: {
438
+ resource: ['websiteAuditProject'],
439
+ operation: ['updateAuditSettings'],
440
+ },
441
+ },
442
+ default: '{}',
443
+ description: 'JSON object of settings to update (partial update — only send changed fields). E.g. {"max_pages": 5000, "schedule_type": "week"}',
444
+ },
445
+ {
446
+ displayName: 'Sitemap URL',
447
+ name: 'sitemapUrl',
448
+ type: 'string',
449
+ required: true,
450
+ displayOptions: {
451
+ show: {
452
+ resource: ['websiteAuditProject'],
453
+ operation: ['addAuditSitemap'],
454
+ },
455
+ },
456
+ default: '',
457
+ placeholder: 'https://example.com/sitemap.xml',
458
+ description: 'Absolute URL of the sitemap to register as a crawl source',
459
+ },
460
+ {
461
+ displayName: 'Sitemap ID',
462
+ name: 'sitemapId',
463
+ type: 'number',
464
+ required: true,
465
+ displayOptions: {
466
+ show: {
467
+ resource: ['websiteAuditProject'],
468
+ operation: ['deleteAuditSitemap'],
469
+ },
470
+ },
471
+ default: 0,
472
+ description: 'ID of the sitemap to remove (from List Audit Sitemaps)',
473
+ },
474
+ {
475
+ displayName: 'Source Pages List ID',
476
+ name: 'sourcePagesListId',
477
+ type: 'string',
478
+ required: true,
479
+ displayOptions: {
480
+ show: {
481
+ resource: ['websiteAuditProject'],
482
+ operation: ['deleteAuditSourcePages'],
483
+ },
484
+ },
485
+ default: '',
486
+ description: 'ID of the uploaded page list to remove (from List Audit Source Pages)',
487
+ },
382
488
  ];
@@ -6,10 +6,10 @@ async function AccountSystemOperations(index) {
6
6
  const operation = this.getNodeParameter('operation', index);
7
7
  switch (operation) {
8
8
  case 'getBalance': {
9
- return await apiRequest_1.apiRequest.call(this, 'GET', '/account/balance', {}, {}, index);
9
+ return await apiRequest_1.apiRequest.call(this, 'GET', '/account/subscription', {}, {}, index);
10
10
  }
11
11
  case 'getProfile': {
12
- return await apiRequest_1.apiRequest.call(this, 'GET', '/account/profile', {}, {}, index);
12
+ return await apiRequest_1.apiRequest.call(this, 'GET', '/project-management/users/me', {}, {}, index);
13
13
  }
14
14
  case 'getSubscription': {
15
15
  return await apiRequest_1.apiRequest.call(this, 'GET', '/account/subscription', {}, {}, index);