n8n-nodes-apivault-website-traffic-database 0.1.0 → 0.2.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
|
@@ -1,47 +1,60 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
# n8n-nodes-apivault-website-traffic-database
|
|
2
|
+
|
|
3
|
+
An [n8n](https://n8n.io) community node for **Websites by Traffic Volume 2026**, powered by the [`apivault_labs/website-traffic-database` Apify Actor](https://apify.com/apivault_labs/website-traffic-database).
|
|
4
|
+
|
|
5
|
+
The reverse of SimilarWeb: instead of one domain's stats, get every website in a traffic range. Filter 40M+ sites by monthly visits, category, country, rank, traffic channel, engagement, growth, or the keywords they rank for. A cheaper SimilarWeb/Semrush alternative for bulk site discovery. $5/1K.
|
|
6
|
+
|
|
7
|
+
The node is a thin connector: collection, analysis, retries and billing run in the hosted Actor. It contains no private scraper implementation or embedded credentials.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
1. Open **Settings → Community Nodes** in your n8n instance.
|
|
12
|
+
2. Select **Install**.
|
|
13
|
+
3. Enter `n8n-nodes-apivault-website-traffic-database` and confirm.
|
|
14
|
+
|
|
15
|
+
## Credentials
|
|
16
|
+
|
|
17
|
+
Create an **Apify API** credential in n8n and paste your personal token from [Apify Console → Integrations](https://console.apify.com/account/integrations). The token is sent to Apify as a bearer credential and is never bundled with this package.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
Add **Websites by Traffic Volume 2026** to a workflow, fill the public Actor inputs below, and execute the node. Every Dataset result becomes one n8n item, so it can flow into Sheets, databases, CRMs, alerts or your own code. The node respects n8n's **Continue On Fail** behavior.
|
|
22
|
+
|
|
23
|
+
| Input | Type | Description |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| `workflow` | `string` | Choose one way to find websites. Auto-detect preserves existing integrations and uses this priority: domain lookup, similar sites, global rank, then traffic filters. |
|
|
26
|
+
| `minVisits` | `integer` | Return sites with at least this many visits in the most recent month (e.g. 1000 = 1K+ visits/month). Used only in traffic mode. If you use ‘Top sites by Global Rank’ in section ②, |
|
|
27
|
+
| `maxVisits` | `integer` | Return sites with at most this many visits in the most recent month. Leave empty for no upper limit. |
|
|
28
|
+
| `topGlobalRank` | `integer` | Enter 1000 to get the world's top 1000 sites — global ranks 1 through 1000, ordered from rank 1 (rank 1 = the most visited site in the world). Just fill this one field: the monthly |
|
|
29
|
+
| `category` | `string` | Keep only sites whose category contains this text (e.g. 'finance', 'health', 'games'). Category is known for a subset of sites, so this narrows results. Leave empty for all. |
|
|
30
|
+
| `country` | `string` | Keep only sites whose #1 visitor country matches this code (e.g. 'US', 'DE', 'GB'). Leave empty for all countries. |
|
|
31
|
+
| `minSearchShare` | `integer` | Keep only sites where organic search is at least this % of traffic (e.g. 50 = SEO-dependent sites). Leave empty to ignore. |
|
|
32
|
+
| `hasAiTraffic` | `boolean` | Keep only sites that get visits from AI assistants (ChatGPT, Perplexity, etc.). |
|
|
33
|
+
| `onlyGrowing` | `boolean` | Keep only sites whose most recent month is higher than their earliest tracked month (positive trend). |
|
|
34
|
+
| `minGrowthPercent` | `integer` | Keep only sites growing at least this % from their earliest to most recent tracked month (e.g. 20 = fast-growing / trending sites). Leave empty to ignore. |
|
|
35
|
+
| `keyword` | `string` | Keep only sites that have this keyword among their top search keywords (reverse keyword lookup, e.g. 'crypto wallet'). Best combined with other filters. Leave empty to ignore. |
|
|
36
|
+
| `trafficSource` | `string` | Which traffic channel to filter by (used together with 'Minimum channel share' below). E.g. pick 'social' + 40 to find sites where social is 40%+ of traffic. |
|
|
37
|
+
| `minSourceShare` | `integer` | Keep only sites where the chosen 'Traffic channel' is at least this % of total traffic (e.g. 40). Leave empty to ignore this filter. |
|
|
38
|
+
| `maxBounce` | `integer` | Keep only sites with a bounce rate at or below this % (lower = more engaged visitors, e.g. 40). Leave empty to ignore. |
|
|
39
|
+
| `minPagesPerVisit` | `integer` | Keep only sites where visitors view at least this many pages per visit (engagement, e.g. 3). Leave empty to ignore. |
|
|
40
|
+
| `minTimeOnSite` | `integer` | Keep only sites with an average visit duration of at least this many seconds (e.g. 120 = 2 min). Leave empty to ignore. |
|
|
41
|
+
| `maxResults` | `integer` | Maximum number of websites to return — this is also your cost control, since you pay per result. Up to 50,000 are returned as an accurate global top-N; larger values (up to 1,000,0 |
|
|
42
|
+
| `sortBy` | `string` | Which field to sort results by. |
|
|
43
|
+
| `sortOrder` | `string` | Highest first (descending) or lowest first (ascending). |
|
|
44
|
+
| `outputPreset` | `string` | Compact returns core traffic and ranking facts. Outreach adds engagement, growth and channel mix. Full keeps monthly history, countries, keywords and every available field. Calls t |
|
|
45
|
+
| `domains` | `array` | Enter one or more domains (e.g. 'stripe.com', 'https://www.nike.com/') to get their traffic data directly. Only domains already tracked in the database return a row. When you fill |
|
|
46
|
+
| `similarTo` | `string` | Enter ONE domain (e.g. 'stripe.com') to get its competitors: other sites in the same category with comparable monthly traffic. The domain must be in the database and have a known c |
|
|
47
|
+
|
|
48
|
+
## Pricing
|
|
49
|
+
|
|
50
|
+
The package is free. Actor runs are billed by Apify using the pricing shown on the [Actor page](https://apify.com/apivault_labs/website-traffic-database); platform usage may also apply.
|
|
51
|
+
|
|
52
|
+
## Resources
|
|
53
|
+
|
|
54
|
+
- [Actor and live input schema](https://apify.com/apivault_labs/website-traffic-database)
|
|
55
|
+
- [Source repository](https://github.com/apivault-labs/n8n-nodes-apivault-website-traffic-database)
|
|
56
|
+
- [n8n community-node documentation](https://docs.n8n.io/integrations/community-nodes/)
|
|
44
57
|
|
|
45
58
|
## License
|
|
46
59
|
|
|
47
|
-
MIT. Actor
|
|
60
|
+
MIT. The hosted Actor is a separate paid service governed by Apify terms.
|
|
@@ -6,18 +6,47 @@ const ACTOR_ID = 'apivault_labs~website-traffic-database';
|
|
|
6
6
|
class WebsiteTrafficDatabase {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.description = {
|
|
9
|
-
displayName:
|
|
10
|
-
name:
|
|
9
|
+
displayName: 'Websites by Traffic Volume 2026',
|
|
10
|
+
name: 'websiteTrafficDatabase',
|
|
11
11
|
icon: 'file:websitetrafficdatabase.svg',
|
|
12
12
|
group: ['transform'],
|
|
13
13
|
version: 1,
|
|
14
|
-
description:
|
|
15
|
-
defaults: { name:
|
|
14
|
+
description: 'The reverse of SimilarWeb: instead of one domain\'s stats, get every website in a traffic range. Filter 40M+ sites by monthly visits, category, country, rank, traffic channel, engagement, growth, or the keywords they rank for. A cheaper SimilarWeb/Semrush alternative for bulk site discovery. $5/1K.',
|
|
15
|
+
defaults: { name: 'Websites by Traffic Volume 2026' },
|
|
16
16
|
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
17
17
|
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
18
18
|
usableAsTool: true,
|
|
19
19
|
credentials: [{ name: 'apifyApi', required: true }],
|
|
20
20
|
properties: [
|
|
21
|
+
{
|
|
22
|
+
"displayName": "Workflow",
|
|
23
|
+
"name": "workflow",
|
|
24
|
+
"description": "Choose one way to find websites. Auto-detect preserves existing integrations and uses this priority: domain lookup, similar sites, global rank, then traffic filters.",
|
|
25
|
+
"type": "options",
|
|
26
|
+
"options": [
|
|
27
|
+
{
|
|
28
|
+
"name": "Auto-detect (recommended)",
|
|
29
|
+
"value": "auto"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "Filter by traffic",
|
|
33
|
+
"value": "traffic"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "Top sites by global rank",
|
|
37
|
+
"value": "globalRank"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "Look up domains",
|
|
41
|
+
"value": "domains"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "Find similar sites",
|
|
45
|
+
"value": "similarSites"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"default": "auto"
|
|
49
|
+
},
|
|
21
50
|
{
|
|
22
51
|
"displayName": "Minimum monthly visits",
|
|
23
52
|
"name": "minVisits",
|
|
@@ -180,9 +209,9 @@ class WebsiteTrafficDatabase {
|
|
|
180
209
|
{
|
|
181
210
|
"displayName": "Max results",
|
|
182
211
|
"name": "maxResults",
|
|
183
|
-
"description": "Maximum number of websites to return. Up to 50,000 are returned as an accurate global top-N; larger values (up to 1,000,000) switch to a streaming bulk export for full-list pulls.",
|
|
212
|
+
"description": "Maximum number of websites to return — this is also your cost control, since you pay per result. Up to 50,000 are returned as an accurate global top-N; larger values (up to 1,000,000) switch to a streaming bulk export for full-list pulls.",
|
|
184
213
|
"type": "number",
|
|
185
|
-
"default":
|
|
214
|
+
"default": 25,
|
|
186
215
|
"typeOptions": {
|
|
187
216
|
"minValue": 1,
|
|
188
217
|
"maxValue": 1000000
|
|
@@ -246,14 +275,32 @@ class WebsiteTrafficDatabase {
|
|
|
246
275
|
],
|
|
247
276
|
"default": "desc"
|
|
248
277
|
},
|
|
278
|
+
{
|
|
279
|
+
"displayName": "Output detail",
|
|
280
|
+
"name": "outputPreset",
|
|
281
|
+
"description": "Compact returns core traffic and ranking facts. Outreach adds engagement, growth and channel mix. Full keeps monthly history, countries, keywords and every available field. Calls that omit this field retain the legacy full output.",
|
|
282
|
+
"type": "options",
|
|
283
|
+
"options": [
|
|
284
|
+
{
|
|
285
|
+
"name": "Compact — AI friendly",
|
|
286
|
+
"value": "compact"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"name": "Outreach — recommended",
|
|
290
|
+
"value": "outreach"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"name": "Full — every field",
|
|
294
|
+
"value": "full"
|
|
295
|
+
}
|
|
296
|
+
],
|
|
297
|
+
"default": "outreach"
|
|
298
|
+
},
|
|
249
299
|
{
|
|
250
300
|
"displayName": "Domains to look up",
|
|
251
301
|
"name": "domains",
|
|
252
|
-
"description": "Enter one or more domains (e.g. 'stripe.com', 'https://www.nike.com/') to get their traffic data directly. Only domains already tracked in the database return a row. When you fill this, the filter fields above are ignored.
|
|
302
|
+
"description": "Enter one or more domains (e.g. 'stripe.com', 'https://www.nike.com/') to get their traffic data directly. Only domains already tracked in the database return a row. When you fill this, the filter fields above are ignored. (comma or new-line separated)",
|
|
253
303
|
"type": "string",
|
|
254
|
-
"typeOptions": {
|
|
255
|
-
"rows": 3
|
|
256
|
-
},
|
|
257
304
|
"default": ""
|
|
258
305
|
},
|
|
259
306
|
{
|
|
@@ -262,115 +309,75 @@ class WebsiteTrafficDatabase {
|
|
|
262
309
|
"description": "Enter ONE domain (e.g. 'stripe.com') to get its competitors: other sites in the same category with comparable monthly traffic. The domain must be in the database and have a known category. When you fill this, everything above is ignored.",
|
|
263
310
|
"type": "string",
|
|
264
311
|
"default": ""
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
"displayName": "Additional Actor Input (JSON)",
|
|
268
|
-
"name": "additionalInput",
|
|
269
|
-
"description": "Optional advanced fields to merge into the Actor input. Explicit fields above take precedence.",
|
|
270
|
-
"type": "json",
|
|
271
|
-
"default": "{}"
|
|
272
312
|
}
|
|
273
313
|
],
|
|
274
314
|
};
|
|
275
315
|
}
|
|
276
316
|
async execute() {
|
|
317
|
+
var _b;
|
|
277
318
|
const items = this.getInputData();
|
|
278
319
|
const returnData = [];
|
|
279
320
|
for (let i = 0; i < items.length; i++) {
|
|
280
321
|
try {
|
|
281
322
|
const body = {};
|
|
282
|
-
|
|
283
|
-
if (extra) {
|
|
284
|
-
try {
|
|
285
|
-
Object.assign(body, typeof extra === 'string' ? JSON.parse(extra) : extra);
|
|
286
|
-
}
|
|
287
|
-
catch {
|
|
288
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Additional Actor Input must be valid JSON', { itemIndex: i });
|
|
289
|
-
}
|
|
290
|
-
}
|
|
323
|
+
body["workflow"] = this.getNodeParameter("workflow", i);
|
|
291
324
|
body["minVisits"] = this.getNodeParameter("minVisits", i);
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
{
|
|
298
|
-
const value = this.getNodeParameter("topGlobalRank", i, 0);
|
|
299
|
-
if (value !== 0)
|
|
300
|
-
body["topGlobalRank"] = value;
|
|
301
|
-
}
|
|
302
|
-
{
|
|
303
|
-
const value = this.getNodeParameter("category", i, '');
|
|
304
|
-
if (value.trim())
|
|
305
|
-
body["category"] = value.trim();
|
|
306
|
-
}
|
|
307
|
-
{
|
|
308
|
-
const value = this.getNodeParameter("country", i, '');
|
|
309
|
-
if (value.trim())
|
|
310
|
-
body["country"] = value.trim();
|
|
311
|
-
}
|
|
312
|
-
{
|
|
313
|
-
const value = this.getNodeParameter("minSearchShare", i, 0);
|
|
314
|
-
if (value !== 0)
|
|
315
|
-
body["minSearchShare"] = value;
|
|
316
|
-
}
|
|
325
|
+
body["maxVisits"] = this.getNodeParameter("maxVisits", i);
|
|
326
|
+
body["topGlobalRank"] = this.getNodeParameter("topGlobalRank", i);
|
|
327
|
+
body["category"] = this.getNodeParameter("category", i);
|
|
328
|
+
body["country"] = this.getNodeParameter("country", i);
|
|
329
|
+
body["minSearchShare"] = this.getNodeParameter("minSearchShare", i);
|
|
317
330
|
body["hasAiTraffic"] = this.getNodeParameter("hasAiTraffic", i);
|
|
318
331
|
body["onlyGrowing"] = this.getNodeParameter("onlyGrowing", i);
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
if (value !== 0)
|
|
322
|
-
body["minGrowthPercent"] = value;
|
|
323
|
-
}
|
|
324
|
-
{
|
|
325
|
-
const value = this.getNodeParameter("keyword", i, '');
|
|
326
|
-
if (value.trim())
|
|
327
|
-
body["keyword"] = value.trim();
|
|
328
|
-
}
|
|
332
|
+
body["minGrowthPercent"] = this.getNodeParameter("minGrowthPercent", i);
|
|
333
|
+
body["keyword"] = this.getNodeParameter("keyword", i);
|
|
329
334
|
body["trafficSource"] = this.getNodeParameter("trafficSource", i);
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
}
|
|
335
|
-
{
|
|
336
|
-
const value = this.getNodeParameter("maxBounce", i, 0);
|
|
337
|
-
if (value !== 0)
|
|
338
|
-
body["maxBounce"] = value;
|
|
339
|
-
}
|
|
340
|
-
{
|
|
341
|
-
const value = this.getNodeParameter("minPagesPerVisit", i, 0);
|
|
342
|
-
if (value !== 0)
|
|
343
|
-
body["minPagesPerVisit"] = value;
|
|
344
|
-
}
|
|
345
|
-
{
|
|
346
|
-
const value = this.getNodeParameter("minTimeOnSite", i, 0);
|
|
347
|
-
if (value !== 0)
|
|
348
|
-
body["minTimeOnSite"] = value;
|
|
349
|
-
}
|
|
335
|
+
body["minSourceShare"] = this.getNodeParameter("minSourceShare", i);
|
|
336
|
+
body["maxBounce"] = this.getNodeParameter("maxBounce", i);
|
|
337
|
+
body["minPagesPerVisit"] = this.getNodeParameter("minPagesPerVisit", i);
|
|
338
|
+
body["minTimeOnSite"] = this.getNodeParameter("minTimeOnSite", i);
|
|
350
339
|
body["maxResults"] = this.getNodeParameter("maxResults", i);
|
|
351
340
|
body["sortBy"] = this.getNodeParameter("sortBy", i);
|
|
352
341
|
body["sortOrder"] = this.getNodeParameter("sortOrder", i);
|
|
342
|
+
body["outputPreset"] = this.getNodeParameter("outputPreset", i);
|
|
353
343
|
{
|
|
354
|
-
const
|
|
355
|
-
const
|
|
356
|
-
if (
|
|
357
|
-
body["domains"] =
|
|
358
|
-
}
|
|
359
|
-
{
|
|
360
|
-
const value = this.getNodeParameter("similarTo", i, '');
|
|
361
|
-
if (value.trim())
|
|
362
|
-
body["similarTo"] = value.trim();
|
|
344
|
+
const _v = this.getNodeParameter("domains", i, '');
|
|
345
|
+
const _a = _v.split(/[,\n]/).map(s => s.trim()).filter(s => s.length > 0);
|
|
346
|
+
if (_a.length)
|
|
347
|
+
body["domains"] = _a;
|
|
363
348
|
}
|
|
349
|
+
body["similarTo"] = this.getNodeParameter("similarTo", i);
|
|
364
350
|
const options = {
|
|
365
351
|
method: 'POST',
|
|
366
|
-
url: `https://api.apify.com/v2/acts/${ACTOR_ID}/
|
|
352
|
+
url: `https://api.apify.com/v2/acts/${ACTOR_ID}/runs`,
|
|
367
353
|
body,
|
|
368
354
|
json: true,
|
|
369
355
|
};
|
|
370
|
-
const
|
|
371
|
-
const
|
|
372
|
-
|
|
373
|
-
|
|
356
|
+
const started = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', options);
|
|
357
|
+
const runId = (_b = started === null || started === void 0 ? void 0 : started.data) === null || _b === void 0 ? void 0 : _b.id;
|
|
358
|
+
if (!runId)
|
|
359
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Apify did not return a run ID', { itemIndex: i });
|
|
360
|
+
let run = started.data;
|
|
361
|
+
const deadline = Date.now() + 60 * 60 * 1000;
|
|
362
|
+
while (!['SUCCEEDED', 'FAILED', 'ABORTED', 'TIMED-OUT'].includes(run.status)) {
|
|
363
|
+
if (Date.now() >= deadline)
|
|
364
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Waiting timed out; check the existing run in Apify before retrying', { itemIndex: i });
|
|
365
|
+
const polled = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', { method: 'GET', url: `https://api.apify.com/v2/actor-runs/${runId}?waitForFinish=20`, json: true });
|
|
366
|
+
run = polled.data;
|
|
367
|
+
}
|
|
368
|
+
if (run.status !== 'SUCCEEDED')
|
|
369
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Apify run ended with status ' + run.status, { itemIndex: i });
|
|
370
|
+
let offset = 0;
|
|
371
|
+
while (true) {
|
|
372
|
+
const page = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', { method: 'GET', url: `https://api.apify.com/v2/datasets/${run.defaultDatasetId}/items?clean=1&limit=1000&offset=${offset}`, json: true });
|
|
373
|
+
if (!Array.isArray(page))
|
|
374
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Unexpected Dataset response', { itemIndex: i });
|
|
375
|
+
for (const result of page)
|
|
376
|
+
returnData.push({ json: result, pairedItem: { item: i } });
|
|
377
|
+
offset += page.length;
|
|
378
|
+
if (page.length < 1000)
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
374
381
|
}
|
|
375
382
|
catch (error) {
|
|
376
383
|
if (this.continueOnFail()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsiteTrafficDatabase.node.js","sourceRoot":"","sources":["../../../nodes/WebsiteTrafficDatabase/WebsiteTrafficDatabase.node.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"WebsiteTrafficDatabase.node.js","sourceRoot":"","sources":["../../../nodes/WebsiteTrafficDatabase/WebsiteTrafficDatabase.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><rect width="64" height="64" rx="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64"><rect width="64" height="64" rx="12" fill="#4f46e5"/><text x="32" y="40" font-family="Arial" font-size="28" font-weight="700" fill="#fff" text-anchor="middle">W</text></svg>
|
package/package.json
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-apivault-website-traffic-database",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "n8n community node for
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "n8n community node for Websites by Traffic Volume 2026 — backed by the Apify Actor apivault_labs/website-traffic-database. No login. Pay-as-you-go via Apify.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://apify.com/apivault_labs/website-traffic-database",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"n8n-community-node-package",
|
|
9
9
|
"n8n",
|
|
10
|
+
"website-traffic-database",
|
|
10
11
|
"apify",
|
|
12
|
+
"no-code",
|
|
11
13
|
"automation",
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"traffic",
|
|
15
|
-
"database"
|
|
14
|
+
"data-analysis",
|
|
15
|
+
"workflow-automation"
|
|
16
16
|
],
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "apivault_labs"
|
|
19
19
|
},
|
|
20
20
|
"repository": {
|
|
21
21
|
"type": "git",
|
|
22
|
-
"url": "https://github.com/apivault-labs/
|
|
22
|
+
"url": "https://github.com/apivault-labs/n8n-nodes-apivault-website-traffic-database.git"
|
|
23
23
|
},
|
|
24
24
|
"main": "index.js",
|
|
25
25
|
"scripts": {
|
|
@@ -48,4 +48,4 @@
|
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"n8n-workflow": "*"
|
|
50
50
|
}
|
|
51
|
-
}
|
|
51
|
+
}
|